From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001
From: Daniel Baumann
Date: Sun, 7 Apr 2024 19:32:43 +0200
Subject: Adding upstream version 1:115.7.0.
Signed-off-by: Daniel Baumann
---
.../tests/conformance-checkers/tools/dl.py | 99 +++++
.../conformance-checkers/tools/ins-del-datetime.py | 175 +++++++++
.../tests/conformance-checkers/tools/picture.py | 366 ++++++++++++++++++
.../tests/conformance-checkers/tools/url.py | 425 +++++++++++++++++++++
4 files changed, 1065 insertions(+)
create mode 100644 testing/web-platform/tests/conformance-checkers/tools/dl.py
create mode 100644 testing/web-platform/tests/conformance-checkers/tools/ins-del-datetime.py
create mode 100644 testing/web-platform/tests/conformance-checkers/tools/picture.py
create mode 100644 testing/web-platform/tests/conformance-checkers/tools/url.py
(limited to 'testing/web-platform/tests/conformance-checkers/tools')
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 = """
+
+"""
+
+errors = {
+ "dl-in-p": "- text
- text
",
+ "header-in-dt": "- text
",
+ "footer-in-dt": "- text
",
+ "article-in-dt": "text
- text
",
+ "aside-in-dt": "- text
",
+ "nav-in-dt": "- text
",
+ "section-in-dt": "- text
",
+ "h1-in-dt": "text
- text
",
+ "h2-in-dt": "text
- text
",
+ "h3-in-dt": "text
- text
",
+ "h4-in-dt": "text
- text
",
+ "h5-in-dt": "text
- text
",
+ "h6-in-dt": "text
- text
",
+ "hgroup-in-dt": "text
- text
",
+ "only-dt": "- 1
",
+ "only-dd": "- a
",
+ "first-dd": "- a
- 2
- b
",
+ "last-dt": "- 1
- a
- 2
",
+ "dd-in-template": "- 1
- a
",
+ "dt-in-template": "- 1
- a
",
+ "dl-contains-text": "- 1
x
",
+ "dl-contains-text-2": "- 1
- a
x
",
+ "dl-contains-dl": "- 1
- a
",
+ # div
+ "empty-div": "
",
+ "empty-div-2": "- 2
- b
",
+ "mixed-dt-dd-div": "- 1
- a
- 2
- b
",
+ "mixed-div-dt-dd": "- 1
- a
- 2
- b
",
+ "nested-divs": "
",
+ "div-splitting-groups": "- 1
- a
",
+ "div-splitting-groups-2": "- 1
- a
- b
",
+ "div-splitting-groups-3": "- 1
- 2
- b
",
+ "div-contains-text": "x
- 2
- b
",
+ "div-contains-dl": "- 2
- b
",
+ "div-multiple-groups": "- 1
- a
- 2
- a
- b
- 3
- 4
- 5
- a
",
+}
+
+non_errors_in_head = {
+ "parent-template-in-head": "- text
- text
",
+}
+
+non_errors = {
+ "basic": "- text
- text
",
+ "empty": "
",
+ "empty-dt-dd": "
",
+ "multiple-groups": "- 1
- a
- 2
- a
- b
- 3
- 4
- 5
- a
",
+ "header-in-dd": "- text
",
+ "footer-in-dd": "- text
",
+ "article-in-dd": "- text
text
",
+ "aside-in-dd": "- text
",
+ "nav-in-dd": "- text
",
+ "section-in-dd": "- text
",
+ "h1-in-dd": "- text
text
",
+ "h2-in-dd": "- text
text
",
+ "h3-in-dd": "- text
text
",
+ "h4-in-dd": "- text
text
",
+ "h5-in-dd": "- text
text
",
+ "h6-in-dd": "- text
text
",
+ "p-in-dt": "1
1
- a
",
+ "dl-in-dt": "- 1
- a
- b
",
+ "dl-in-dd": "- 1
- 2
- a
",
+ "interactive": "- 1
- a
",
+ "script": "
",
+ "dt-script-dd": "- 1
- a
",
+ "dt-template-dd": "- 1
- a
",
+ # div
+ "div-basic": "- 1
- a
",
+ "div-script": "- 1
- a
",
+ "div-script-2": "- 1
- a
",
+ "div-template": "- 1
- a
",
+ "div-template-2": "- 1
- a
",
+ "div-multiple-groups": "- 1
- a
- 2
- a
- b
- 3
- 4
- 5
- a
",
+}
+
+for key in errors.keys():
+ template_error = template
+ template_error += 'invalid %s\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 + 'valid dl\n')
+for key in non_errors_in_head.keys():
+ file.write('%s \n' % (non_errors_in_head[key], key))
+file.write('\n')
+for key in non_errors.keys():
+ file.write('%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 = """
+
+"""
+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",
+ "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 += '%s\n' % key
+ template_del += '%s\n' % key
+ template_ins += '' % errors[key]
+ template_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 += '%s\n' % key
+ template_del += '%s\n' % key
+ template_ins += '' % warnings[key]
+ template_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 + 'valid datetime\n')
+del_file.write(template + 'valid datetime\n')
+for key in non_errors.keys():
+ non_error = non_errors[key]
+ ins_file.write(' \n' % (non_errors[key], key))
+ del_file.write(' \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 = """
+
+
+"""
+
+errors = {
+ # missing src on img
+ "img-no-src": "",
+ "img-no-src-with-srcset": "",
+ "img-no-src-with-picture": "",
+ "img-no-src-with-srcset-and-picture": "",
+ "img-no-src-with-source": "",
+ # junk content in picture
+ "junk-text-before-img": "",
+ "junk-text-after-img": "",
+ "junk-text-before-source": "",
+ "junk-text-after-source": "",
+ "junk-br-before-img": "",
+ "junk-br-after-img": "",
+ "junk-br-before-source": "",
+ "junk-br-after-source": "",
+ "junk-video-before": "",
+ "junk-video-no-img": "",
+ "junk-p-before": "",
+ "junk-p-after": "",
+ "junk-p-wrapping": "",
+ "junk-span-before": "",
+ "junk-span-after": "",
+ "junk-span-wrapping": "",
+ "junk-picture-before": "",
+ "junk-picture-wrapping": "",
+ "junk-figure-wrapping": "",
+ "junk-input-type-hidden": "",
+ "junk-style-scroped": "",
+ "junk-noscript": "",
+ "junk-noscript-after-source-no-img": "",
+ "junk-svg": "",
+ "junk-svg-no-img": "",
+ "junk-math-nog-img": "",
+ # parents
+ "parent-ul": "",
+ "parent-dl": "
",
+ "parent-hgroup": "x
",
+ "parent-noscript-in-head": "",
+ "parent-rp": "x",
+ # invalid html syntax
+ "html-syntax-source-end-tag": "",
+ "html-syntax-img-end-tag": "",
+ "html-syntax-picture-no-end-tag": "",
+ "html-syntax-picture-slash": "",
+ "html-syntax-picture-slash-no-end-tag": "",
+ # missing img in picture
+ "missing-img-empty-picture": "",
+ "missing-img-only-source": "",
+ "missing-img-only-script": "",
+ "missing-img-script-and-source": "",
+ "missing-img-source-and-script": "",
+ # multiple img in picture
+ "multiple-img": "",
+ "multiple-img-with-script": "",
+ "multiple-img-with-source": "",
+ "multiple-img-with-source-and-script": "",
+ # source after img
+ "source-after-img": "",
+ "source-before-and-after-img": "",
+ # source with following sibling source element or img element with a srcset attribute
+ "always-matching-source-with-following-img-srcset": "",
+ "always-matching-source-with-following-source-srcset": "",
+ "always-matching-source-with-following-source-media": "",
+ "always-matching-source-with-following-source-type": "",
+ "always-matching-source-media-empty-with-following-source-srcset": "",
+ "always-matching-source-media-spaces-with-following-source-srcset": "",
+ "always-matching-source-media-all-with-following-source-srcset": "",
+ "always-matching-source-media-uppercase-with-following-source-srcset": "",
+ "always-matching-source-media-all-spaces-with-following-source-srcset": "",
+ "always-matching-source-sizes-with-following-source-srcset": "",
+ # sizes present
+ "img-srcset-no-descriptor-with-sizes": "",
+ "img-srcset-w-and-x-width-sizes": "",
+ "source-srcset-x-with-sizes": "",
+ "source-srcset-h-with-sizes": "",
+ "source-srcset-w-and-x-with-sizes": "",
+ "img-with-sizes-no-srcset": "",
+ # width descriptor without sizes
+ "img-srcset-w-no-sizes": "",
+ "source-srcset-w-no-sizes": "",
+ "source-type-srcset-w": "",
+ # invalid attributes on source
+ "source-src": "",
+ "source-src-srcset": "",
+ "source-alt": "",
+ "source-usemap": "",
+ "source-ismap": "",
+ "source-crossorigin": "",
+ "source-name": "",
+ "source-align": "",
+ "source-hspace": "",
+ "source-vspace": "",
+ "source-longdesc": "",
+ "source-border": "",
+ # missing srcset on source
+ "source-no-srcset": "",
+ "source-no-srcset-with-sizes": "",
+ "source-no-srcset-with-media": "",
+ "source-no-srcset-with-type": "",
+ # invalid attributes on picture
+ "picture-src": "",
+ "picture-srcset": "",
+ "picture-media": "",
+ "picture-sizes": "",
+ "picture-alt": "",
+ "picture-width": "",
+ "picture-height": "",
+ "picture-usemap": "",
+ "picture-ismap": "",
+ "picture-crossorigin": "",
+ "picture-name": "",
+ "picture-lowsrc": "",
+ "picture-align": "",
+ "picture-hspace": "",
+ "picture-vspace": "",
+ "picture-longdesc": "",
+ "picture-border": "",
+ # invalid attributes on source in video
+ "video-source-srcset": "",
+ "video-source-srcset-src": "",
+ "video-source-sizes-srcset": "",
+ "video-source-media-src": "",
+ # srcset on other elements
+ "link-rel-icon-srcset": "",
+ "input-type-image-srcset": "",
+ "object-srcset": "",
+ "video-srcset": "",
+ "audio-srcset": "",
+ "track-srcset": "",
+ "svg-image-srcset": "",
+ # invalid attributes on img
+ "img-type": "",
+ "img-type-with-picture": "",
+ # sizes microsyntax
+ "sizes-microsyntax-media-all": "",
+ "sizes-microsyntax-media-all-and-min-width": "",
+ "sizes-microsyntax-media-min-width-no-parenthesis": "",
+ "sizes-microsyntax-media-general-enclosed-junk": "",
+ "sizes-microsyntax-media-bad-junk": "",
+ "sizes-microsyntax-two-defaults": "",
+ "sizes-microsyntax-default-first": "",
+ "sizes-microsyntax-trailing-comma": "",
+ "sizes-microsyntax-trailing-junk": "",
+ "sizes-microsyntax-junk-in-default": "",
+ "sizes-microsyntax-junk-in-source-size": "",
+ "sizes-microsyntax-percent-in-source-size-value": "",
+ "sizes-microsyntax-no-unit-in-source-size-value": "",
+ "sizes-microsyntax-deg-source-size-value": "",
+ "sizes-microsyntax-grad-source-size-value": "",
+ "sizes-microsyntax-rad-source-size-value": "",
+ "sizes-microsyntax-turn-source-size-value": "",
+ "sizes-microsyntax-s-source-size-value": "",
+ "sizes-microsyntax-ms-source-size-value": "",
+ "sizes-microsyntax-hz-source-size-value": "",
+ "sizes-microsyntax-khz-source-size-value": "",
+ "sizes-microsyntax-dpi-source-size-value": "",
+ "sizes-microsyntax-dpcm-source-size-value": "",
+ "sizes-microsyntax-dppx-source-size-value": "",
+ "sizes-microsyntax-auto-source-size-value": "",
+ "sizes-microsyntax-inherit-source-size-value": "",
+ "sizes-microsyntax-initial-source-size-value": "",
+ "sizes-microsyntax-default-source-size-value": "",
+ "sizes-microsyntax-foo-bar-source-size-value": "",
+ "sizes-microsyntax-negative-source-size-value": "",
+ "sizes-microsyntax-empty": "",
+ "sizes-microsyntax-comma": "",
+ "sizes-microsyntax-css-comment-after-plus": "",
+ "sizes-microsyntax-css-comment-before-unit": "",
+ "sizes-microsyntax-scientific-notation-negative": "",
+ "sizes-microsyntax-scientific-notation-non-integer-in-exponent": "",
+ # srcset microsyntax
+ "srcset-microsyntax-leading-comma": "",
+ "srcset-microsyntax-leading-comma-multiple": "",
+ "srcset-microsyntax-trailing-comma": "",
+ "srcset-microsyntax-trailing-comma-multiple": "",
+ "srcset-microsyntax-broken-url": "",
+ "srcset-microsyntax-non-integer-w": "",
+ "srcset-microsyntax-uppercase-w": "",
+ "srcset-microsyntax-plus-w": "",
+ "srcset-microsyntax-scientific-notation-w": "",
+ "srcset-microsyntax-zero-w": "",
+ "srcset-microsyntax-negative-zero-w": "",
+ "srcset-microsyntax-negative-w": "",
+ "srcset-microsyntax-plus-x": "",
+ "srcset-microsyntax-negative-x": "",
+ "srcset-microsyntax-zero-x": "",
+ "srcset-microsyntax-negative-zero-x": "",
+ "srcset-microsyntax-nan-x": "",
+ "srcset-microsyntax-infinity-x": "",
+ "srcset-microsyntax-x-and-w": "",
+ "srcset-microsyntax-x-and-h": "",
+ "srcset-microsyntax-w-and-h": "",
+ "srcset-microsyntax-h": "",
+ "srcset-microsyntax-function": "",
+ "srcset-microsyntax-parenthesis-junk": "",
+ "srcset-microsyntax-square-bracket-junk": "",
+ "srcset-microsyntax-curly-bracket-junk": "",
+ "srcset-microsyntax-pipe-junk": "",
+ "srcset-microsyntax-w-and-no-descriptor": "",
+ "srcset-microsyntax-unique-descriptors-1x-and-omitted": "",
+ "srcset-microsyntax-unique-descriptors-2x": "",
+ "srcset-microsyntax-unique-descriptors-integer-and-decimals-x": "",
+ "srcset-microsyntax-unique-descriptors-w": "",
+ "srcset-microsyntax-empty": "",
+ "srcset-microsyntax-comma": "",
+ "srcset-microsyntax-css-comment-after-descriptor": "",
+ # aria
+ "picture-aria-role-img": "",
+ "picture-aria-role-button": "",
+ "picture-aria-role-region": "",
+ "picture-aria-role-application": "",
+ "source-aria-role-img": "",
+ "picture-aria-role-presentation": "",
+ "source-aria-role-presentation": "",
+}
+
+non_errors_in_head = {
+ "parent-template-in-head": "",
+}
+
+non_errors = {
+ # basic
+ "basic-img-src": "",
+ "basic-picture-img-src": "",
+ "basic-picture-source": "",
+ # source with height and width
+ "source-height": "",
+ "source-width": "",
+ # inter-element whitespace
+ "inter-element-whitespace": " ",
+ # parents
+ "parent-p": "
",
+ "parent-h1": "
",
+ "parent-noscript-in-body": "",
+ "parent-object": "",
+ "parent-video": "",
+ "parent-section": "x
",
+ "parent-main": "",
+ "parent-canvas": "",
+ "parent-template-in-body": "",
+ "parent-ruby": "",
+ "parent-rt": "x",
+ "parent-a": "",
+ "parent-button": "",
+ "parent-td": " |
",
+ # script-supporting elements
+ "script-first": "",
+ "template-first": "",
+ "script-between": "",
+ "script-after": "",
+ "script-before-after": "",
+ "script-before-between-after": "",
+ "script-and-template": "",
+ # source with following sibling source element or img element with a srcset attribute
+ "source-with-media-img-with-srcset": "",
+ "source-with-media-uppercase-img-with-srcset": "",
+ "source-with-media-spaces-img-with-srcset": "",
+ "source-with-media-source-with-srcset": "",
+ "source-with-type-img-with-srcset": "",
+ "source-with-type-source-with-srcset": "",
+ # sizes present
+ "img-with-sizes": "",
+ "source-with-sizes": "",
+ # embed allows any attributes
+ "embed-srcset-empty": "