@svelte-vitals/core 0.45.0 → 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -34,21 +34,21 @@ function isPenalized(detection, treatDynamicAs) {
34
34
  }
35
35
 
36
36
  // src/summary.ts
37
- function classify(result3, config) {
38
- if (isPenalized(result3.detection, config.treatDynamicAs)) return "fail";
39
- if (result3.detection.value === "dynamic") return "dynamic";
37
+ function classify(result5, config) {
38
+ if (isPenalized(result5.detection, config.treatDynamicAs)) return "fail";
39
+ if (result5.detection.value === "dynamic") return "dynamic";
40
40
  return "pass";
41
41
  }
42
- function effectiveSeverity(result3, config) {
43
- if (result3.detection.value === "dynamic" && config.treatDynamicAs === "warn") return "warning";
44
- return result3.severity;
42
+ function effectiveSeverity(result5, config) {
43
+ if (result5.detection.value === "dynamic" && config.treatDynamicAs === "warn") return "warning";
44
+ return result5.severity;
45
45
  }
46
46
  function summarize(results, config) {
47
47
  const summary = { critical: 0, warning: 0, info: 0, passed: 0, dynamic: 0 };
48
- for (const result3 of results) {
49
- const cls = classify(result3, config);
48
+ for (const result5 of results) {
49
+ const cls = classify(result5, config);
50
50
  if (cls === "fail") {
51
- summary[effectiveSeverity(result3, config)] += 1;
51
+ summary[effectiveSeverity(result5, config)] += 1;
52
52
  } else {
53
53
  summary.passed += 1;
54
54
  if (cls === "dynamic") summary.dynamic += 1;
@@ -620,8 +620,15 @@ function settingSeverity(setting) {
620
620
  function settingOptions(setting) {
621
621
  return setting !== void 0 && typeof setting !== "string" ? setting.options : void 0;
622
622
  }
623
+ function configuredSeverity(rule, config) {
624
+ const setting = config.rules[rule.id];
625
+ if (setting === void 0) return rule.defaultOff ? void 0 : rule.severity;
626
+ const severity = settingSeverity(setting);
627
+ if (severity === "off") return void 0;
628
+ return severity ?? rule.severity;
629
+ }
623
630
  function selectRules(rules, config) {
624
- return rules.filter((rule) => settingSeverity(config.rules[rule.id]) !== "off");
631
+ return rules.filter((rule) => configuredSeverity(rule, config) !== void 0);
625
632
  }
626
633
  function withFailedRulesOff(config, failedRuleIds) {
627
634
  if (failedRuleIds.length === 0) return config;
@@ -637,9 +644,9 @@ function formatFailedRuleWarning(f) {
637
644
  return `rule ${f.id} failed and was skipped: ${f.message.split("\n")[0]}`;
638
645
  }
639
646
  function applyRuleSeverities(results, config) {
640
- return results.map((result3) => {
641
- const severity = settingSeverity(config.rules[result3.id]);
642
- return severity !== void 0 && severity !== "off" ? { ...result3, severity } : result3;
647
+ return results.map((result5) => {
648
+ const severity = settingSeverity(config.rules[result5.id]);
649
+ return severity !== void 0 && severity !== "off" ? { ...result5, severity } : result5;
643
650
  });
644
651
  }
645
652
  function routeGlobToRegExp(pattern) {
@@ -666,15 +673,15 @@ function applyOverrides(results, config) {
666
673
  const compiled = compileOverrides(config);
667
674
  if (compiled.length === 0) return results;
668
675
  const out = [];
669
- for (const result3 of results) {
676
+ for (const result5 of results) {
670
677
  let severity;
671
678
  for (const o of compiled) {
672
- if (!overrideMatches(o, { route: result3.route, file: result3.location })) continue;
673
- const sev = settingSeverity(o.rules[result3.id]) ?? settingSeverity(o.rules[result3.category ?? "seo"]);
679
+ if (!overrideMatches(o, { route: result5.route, file: result5.location })) continue;
680
+ const sev = settingSeverity(o.rules[result5.id]) ?? settingSeverity(o.rules[result5.category ?? "seo"]);
674
681
  if (sev !== void 0) severity = sev;
675
682
  }
676
- if (severity === void 0) out.push(result3);
677
- else if (severity !== "off") out.push({ ...result3, severity });
683
+ if (severity === void 0) out.push(result5);
684
+ else if (severity !== "off") out.push({ ...result5, severity });
678
685
  }
679
686
  return out;
680
687
  }
@@ -750,6 +757,10 @@ function validateRuleOptions(ruleId, spec, options, baseline, skipRangeCheck) {
750
757
  } else if (s.kind === "string-list") {
751
758
  if (!Array.isArray(value) || !value.every(isNonEmptyString)) {
752
759
  errors.push(`${ruleId}.${key} must be an array of non-empty strings.`);
760
+ } else if (s.pattern) {
761
+ for (const v of value) {
762
+ if (!s.pattern.regex.test(v)) errors.push(`${ruleId}.${key}: '${v}' is not ${s.pattern.describe}.`);
763
+ }
753
764
  }
754
765
  } else if (typeof value !== "object" || value === null || Array.isArray(value) || !Object.values(value).every(isNonEmptyString)) {
755
766
  errors.push(`${ruleId}.${key} must be an object of string \u2192 non-empty string.`);
@@ -1512,7 +1523,7 @@ function lengthRule(opts) {
1512
1523
  const o = resolveRuleOptions(opts.id, spec, ctx.config, { route: head.route, file: location }, compiled);
1513
1524
  const min = intOption(o, "min", opts.min);
1514
1525
  const max = intOption(o, "max", opts.max);
1515
- const recommendation12 = typeof opts.recommendation === "function" ? opts.recommendation(o) : opts.recommendation;
1526
+ const recommendation14 = typeof opts.recommendation === "function" ? opts.recommendation(o) : opts.recommendation;
1516
1527
  const len = visibleLength(tag.text);
1517
1528
  let problem;
1518
1529
  if (len < min) problem = `${opts.noun} is too short (${len} chars; aim for ${min}\u2013${max})`;
@@ -1526,7 +1537,7 @@ function lengthRule(opts) {
1526
1537
  route: head.route,
1527
1538
  location,
1528
1539
  message: problem,
1529
- recommendation: recommendation12,
1540
+ recommendation: recommendation14,
1530
1541
  docsUrl: docsUrl12
1531
1542
  } : {
1532
1543
  id: opts.id,
@@ -1540,7 +1551,7 @@ function lengthRule(opts) {
1540
1551
  // it to also apply `severity: 'off'`.
1541
1552
  location,
1542
1553
  message: opts.label,
1543
- recommendation: recommendation12,
1554
+ recommendation: recommendation14,
1544
1555
  docsUrl: docsUrl12
1545
1556
  }
1546
1557
  );
@@ -1752,6 +1763,7 @@ function uniquenessRule(opts) {
1752
1763
  category: "seo",
1753
1764
  severity: "warning",
1754
1765
  scope: "route",
1766
+ crossRoute: true,
1755
1767
  rationale: opts.rationale,
1756
1768
  async check(ctx) {
1757
1769
  const entries = [];
@@ -1884,6 +1896,7 @@ function fileRule(spec) {
1884
1896
  title: spec.title,
1885
1897
  category: spec.category,
1886
1898
  severity: spec.severity,
1899
+ passLabel: spec.label,
1887
1900
  scope: "component",
1888
1901
  rationale: spec.rationale,
1889
1902
  ...spec.fix ? { fix: spec.fix } : {},
@@ -1894,7 +1907,7 @@ function fileRule(spec) {
1894
1907
  for (const f of spec.facts(ctx) ?? []) {
1895
1908
  const o = resolveRuleOptions(spec.id, spec.options, ctx.config, { route: f.file, file: f.file }, compiled);
1896
1909
  if (!spec.applies(f, o, ctx)) continue;
1897
- const recommendation12 = typeof spec.recommendation === "function" ? spec.recommendation(o) : spec.recommendation;
1910
+ const recommendation14 = typeof spec.recommendation === "function" ? spec.recommendation(o) : spec.recommendation;
1898
1911
  const bad = spec.bad(f, o, ctx).filter((b) => !(b.line > 0 && isSuppressed(f.suppressions, spec.id, b.line)));
1899
1912
  if (bad.length === 0) {
1900
1913
  out.push({
@@ -1905,7 +1918,7 @@ function fileRule(spec) {
1905
1918
  route: f.file,
1906
1919
  location: f.file,
1907
1920
  message: spec.label,
1908
- recommendation: recommendation12,
1921
+ recommendation: recommendation14,
1909
1922
  docsUrl: docsUrl12
1910
1923
  });
1911
1924
  continue;
@@ -1914,13 +1927,13 @@ function fileRule(spec) {
1914
1927
  out.push({
1915
1928
  id: spec.id,
1916
1929
  category: spec.category,
1917
- severity: spec.severity,
1930
+ severity: b.severity ?? spec.severity,
1918
1931
  detection: PENALIZED,
1919
1932
  route: f.file,
1920
1933
  location: f.file,
1921
1934
  ...b.line > 0 ? { line: b.line } : {},
1922
1935
  message: b.message,
1923
- recommendation: recommendation12,
1936
+ recommendation: recommendation14,
1924
1937
  docsUrl: docsUrl12,
1925
1938
  ...spec.fix ? { fix: { ...spec.fix } } : {}
1926
1939
  });
@@ -2638,10 +2651,19 @@ function splitTokens(value) {
2638
2651
  var LANDMARK_ROLES = /* @__PURE__ */ new Set(["main", "banner", "contentinfo", "complementary"]);
2639
2652
  var IDREF_ATTRS = [
2640
2653
  "for",
2654
+ "list",
2655
+ "headers",
2656
+ "form",
2657
+ "popovertarget",
2658
+ "commandfor",
2641
2659
  "aria-labelledby",
2642
2660
  "aria-describedby",
2643
2661
  "aria-controls",
2644
- "aria-activedescendant"
2662
+ "aria-activedescendant",
2663
+ "aria-owns",
2664
+ "aria-details",
2665
+ "aria-errormessage",
2666
+ "aria-flowto"
2645
2667
  ];
2646
2668
  function isTopFragment(id) {
2647
2669
  return id.toLowerCase() === "top";
@@ -2659,6 +2681,9 @@ function isRootRelativePath(value) {
2659
2681
  return value.startsWith("/") && !value.startsWith("//");
2660
2682
  }
2661
2683
 
2684
+ // src/html-spec/generated.ts
2685
+ var HTML_SPEC = JSON.parse(`{"elements":{"a":{"categories":["#flow","#phrasing","#interactive","#palpable"],"contentModel":{"contents":[{"transparent":":not(:model(interactive), a, [tabindex], :has(:model(interactive), a, [tabindex]))"}]},"aria":{"implicitRole":"link","permittedRoles":["button","checkbox","menuitem","menuitemcheckbox","menuitemradio","option","radio","switch","tab","treeitem"],"conditions":{":not([href])":{"implicitRole":"generic","namingProhibited":true}}},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#HTMLLinkAndFetchingAttrs"],"attributes":{"attributionsrc":{"deprecated":true},"charset":{"deprecated":true},"coords":{"deprecated":true},"download":{},"href":{},"hreflang":{},"interestfor":{"type":"DOMID","nonStandard":true,"experimental":true},"name":{"deprecated":true},"ping":{},"referrerpolicy":{},"rel":{},"rev":{"deprecated":true},"shape":{"deprecated":true},"target":{},"type":{}}},"abbr":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"acronym":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"address":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(flow):not(address, :model(heading), :model(sectioning), header, foooter, :has(address, :model(heading), :model(sectioning), header, foooter))"}]},"aria":{"implicitRole":"group","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"applet":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"area":{"categories":["#flow","#phrasing"],"contentModel":{"contents":false,"descendantOf":"map"},"aria":{"implicitRole":"link","permittedRoles":[],"conditions":{":not([href])":{"implicitRole":"generic","namingProhibited":true}}},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#HTMLLinkAndFetchingAttrs"],"attributes":{"alt":{"type":"Any","required":true,"condition":"[href]"},"coords":{"type":{"token":"Number","disallowToSurroundBySpaces":true,"separator":"comma"}},"download":{},"href":{},"interestfor":{"type":"DOMID","nonStandard":true,"experimental":true},"ping":{},"referrerpolicy":{},"rel":{},"shape":{"type":{"enum":["rect","circle","poly","default"],"missingValueDefault":"rect","invalidValueDefault":"rect"}},"target":{}}},"article":{"categories":["#flow","#sectioning","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"implicitRole":"article","permittedRoles":["application","document","feed","main","none","presentation","region"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"aside":{"categories":["#flow","#sectioning","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"implicitRole":"complementary","permittedRoles":["feed","none","note","presentation","region","search"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"audio":{"categories":["#flow","#phrasing","#embedded","#interactive","#palpable"],"contentModel":{"contents":[{"zeroOrMore":"source"},{"zeroOrMore":"track"},{"transparent":":not(audio, video, :has(audio, video))"}],"conditional":[{"condition":"[src]","contents":[{"zeroOrMore":"track"},{"transparent":":not(audio, video, :has(audio, video))"}]}]},"aria":{"permittedRoles":["application"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLEmbededAndMediaContentAttrs","#HTMLGlobalAttrs","#HTMLLinkAndFetchingAttrs"],"attributes":{"autoplay":{},"controls":{},"controlslist":{},"crossorigin":{},"disableremoteplayback":{},"loop":{},"muted":{},"preload":{},"src":{}}},"b":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"generic","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"base":{"categories":["#metadata"],"contentModel":{"contents":false},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#HTMLLinkAndFetchingAttrs"],"attributes":{"href":{"type":"BaseURL"},"target":{}}},"basefont":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"bdi":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"generic","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"bdo":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"generic","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"dir":{}}},"bgsound":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"big":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"blink":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"blockquote":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"implicitRole":"blockquote","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"cite":{"type":"URL"}}},"body":{"categories":[],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"implicitRole":"generic","permittedRoles":[],"namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"alink":{"deprecated":true},"background":{"deprecated":true},"bgcolor":{"deprecated":true},"bottommargin":{"deprecated":true},"leftmargin":{"deprecated":true},"link":{"deprecated":true},"onafterprint":{"type":"FunctionBody"},"onbeforeprint":{"type":"FunctionBody"},"onbeforeunload":{"type":"FunctionBody"},"onhashchange":{"type":"FunctionBody"},"onlanguagechange":{"type":"FunctionBody"},"onmessage":{"type":"FunctionBody"},"onmessageerror":{"type":"FunctionBody"},"onoffline":{"type":"FunctionBody"},"ononline":{"type":"FunctionBody"},"onpagehide":{"type":"FunctionBody"},"onpagereveal":{"type":"FunctionBody"},"onpageshow":{"type":"FunctionBody"},"onpageswap":{"type":"FunctionBody"},"onpopstate":{"type":"FunctionBody"},"onrejectionhandled":{"type":"FunctionBody"},"onstorage":{"type":"FunctionBody"},"onunhandledrejection":{"type":"FunctionBody"},"onunload":{"type":"FunctionBody"},"rightmargin":{"deprecated":true},"text":{"deprecated":true},"topmargin":{"deprecated":true},"vlink":{"deprecated":true}}},"br":{"categories":["#flow","#phrasing"],"contentModel":{"contents":false},"aria":{"permittedRoles":["none","presentation"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"clear":{"deprecated":true}}},"button":{"categories":["#flow","#phrasing","#interactive","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing):not(:model(interactive), :has(:model(interactive)))"}]},"aria":{"implicitRole":"button","permittedRoles":["checkbox","combobox","gridcell","link","menuitem","menuitemcheckbox","menuitemradio","option","radio","separator","slider","switch","tab","treeitem"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLFormControlElementAttrs","#HTMLGlobalAttrs"],"attributes":{"autofocus":{},"command":{"type":[{"enum":["toggle-popover","show-popover","hide-popover","close","request-close","show-modal"],"invalidValueDefault":"unknown","missingValueDefault":"unknown"},"ValidCustomCommand"]},"commandfor":{"type":"DOMID"},"disabled":{},"form":{},"formaction":{},"formenctype":{},"formmethod":{},"formnovalidate":{},"formtarget":{},"interestfor":{"type":"DOMID","nonStandard":true,"experimental":true},"name":{},"popovertarget":{"type":"DOMID"},"popovertargetaction":{"type":{"enum":["toggle","show","hide"],"disallowToSurroundBySpaces":true,"invalidValueDefault":"toggle","missingValueDefault":"toggle"}},"type":{"type":{"enum":["submit","reset","button"],"invalidValueDefault":"submit","missingValueDefault":"submit"}},"value":{"type":"Any"}}},"canvas":{"categories":["#flow","#phrasing","#embedded","#palpable"],"contentModel":{"contents":[{"transparent":":not(:model(interactive), :has(:model(interactive)))"}]},"aria":{"permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLEmbededAndMediaContentAttrs","#HTMLGlobalAttrs"],"attributes":{"height":{},"moz-opaque":{"deprecated":true,"nonStandard":true},"width":{}}},"caption":{"categories":[],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"implicitRole":"caption","permittedRoles":[],"namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"align":{"deprecated":true}}},"center":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"cite":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"code":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"code","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"col":{"categories":[],"contentModel":{"contents":false},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"align":{"deprecated":true},"bgcolor":{"deprecated":true},"char":{"deprecated":true},"charoff":{"deprecated":true},"span":{"type":{"type":"integer","gt":0,"lte":1000,"clampable":true}},"valign":{"deprecated":true},"width":{"deprecated":true}}},"colgroup":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":"col"}],"conditional":[{"condition":"[span]","contents":false}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"align":{"deprecated":true},"bgcolor":{"deprecated":true},"char":{"deprecated":true},"charoff":{"deprecated":true},"span":{"type":{"type":"integer","gt":0,"lte":1000,"clampable":true}},"valign":{"deprecated":true},"width":{"deprecated":true}}},"data":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"generic","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"value":{"type":"Any","required":true}}},"datalist":{"categories":["#flow","#phrasing"],"contentModel":{"contents":[{"choice":[[{"oneOrMore":":model(phrasing)"}],[{"zeroOrMore":["option",":model(script-supporting)"]}]]}]},"aria":{"implicitRole":"listbox","permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"dd":{"categories":[],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"del":{"categories":["#flow","#phrasing"],"contentModel":{"contents":[{"transparent":"*"}]},"aria":{"implicitRole":"deletion","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"cite":{"type":"URL"},"datetime":{"type":"DateTime"}}},"details":{"categories":["#flow","#interactive","#palpable"],"contentModel":{"contents":[{"require":"summary"},{"oneOrMore":":model(flow)"}]},"aria":{"implicitRole":"group","permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"name":{"type":"NoEmptyAny"},"open":{"type":"Boolean"}}},"dfn":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing):not(dfn, :has(dfn))"}]},"aria":{"implicitRole":"term","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"dialog":{"categories":["#flow"],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"implicitRole":"dialog","permittedRoles":["alertdialog"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"closedby":{"type":{"enum":["any","closerequest","none"],"invalidValueDefault":"auto","missingValueDefault":"auto"}},"open":{"type":"Boolean"},"tabindex":{"noUse":true}}},"dir":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{"compact":{"deprecated":true}}},"div":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}],"conditional":[{"condition":"dl > div","contents":[{"oneOrMore":[{"zeroOrMore":":model(script-supporting)"},{"oneOrMore":"dt"},{"zeroOrMore":":model(script-supporting)"},{"oneOrMore":"dd"},{"zeroOrMore":":model(script-supporting)"}]}]}]},"aria":{"implicitRole":"generic","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"dl":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"choice":[[{"oneOrMore":[{"zeroOrMore":":model(script-supporting)"},{"oneOrMore":"dt"},{"zeroOrMore":":model(script-supporting)"},{"oneOrMore":"dd"},{"zeroOrMore":":model(script-supporting)"}]}],[{"zeroOrMore":":model(script-supporting)"},{"oneOrMore":"div"},{"zeroOrMore":":model(script-supporting)"}]]}]},"aria":{"permittedRoles":["group","list","none","presentation"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"compact":{"deprecated":true}}},"dt":{"categories":[],"contentModel":{"contents":[{"oneOrMore":":model(flow):not(header, footer, :model(sectioning), :model(heading), :has(header, footer, :model(sectioning), :model(heading)))"}]},"aria":{"permittedRoles":["listitem"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"em":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"emphasis","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"embed":{"categories":["#flow","#phrasing","#embedded","#interactive","#palpable"],"contentModel":{"contents":false},"aria":{"permittedRoles":["application","document","img","none","presentation"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLEmbededAndMediaContentAttrs","#HTMLGlobalAttrs"],"attributes":{"height":{},"src":{"type":"URL","required":"[itemprop]"},"type":{"type":"MIMEType"},"width":{}}},"fieldset":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"optional":"legend"},{"oneOrMore":":model(flow)"}]},"aria":{"implicitRole":"group","permittedRoles":["radiogroup","presentation","none"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLFormControlElementAttrs","#HTMLGlobalAttrs"],"attributes":{"disabled":{},"form":{},"name":{}}},"figcaption":{"categories":[],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"permittedRoles":["group","none","presentation"],"namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"figure":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"choice":[[{"require":"figcaption"},{"oneOrMore":":model(flow)"}],[{"oneOrMore":":model(flow)"},{"require":"figcaption"}],[{"oneOrMore":":model(flow)"}]]}]},"aria":{"implicitRole":"figure","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"font":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{"color":{"deprecated":true},"face":{"deprecated":true},"size":{"deprecated":true}}},"footer":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(flow):not(header, footer, :has(header, footer))"}]},"aria":{"implicitRole":"contentinfo","permittedRoles":["group","presentation","none"],"conditions":{":has(article, aside, main, nav, section, [role=article], [role=complementary], [role=main], [role=navigation], [role=region])":{"implicitRole":"generic","namingProhibited":true}}},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"form":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(flow):not(form, :has(form))"}]},"aria":{"permittedRoles":["search","none","presentation"],"conditions":{":aria(has name)":{"implicitRole":"form"}}},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"accept":{"deprecated":true},"accept-charset":{"type":{"enum":["utf-8"],"caseInsensitive":true}},"action":{"type":"URL"},"autocapitalize":{},"autocomplete":{"type":{"enum":["on","off"],"invalidValueDefault":"on","missingValueDefault":"on"}},"enctype":{"type":{"enum":["application/x-www-form-urlencoded","multipart/form-data","text/plain"],"invalidValueDefault":"application/x-www-form-urlencoded","missingValueDefault":"application/x-www-form-urlencoded"}},"method":{"type":{"enum":["post","get","dialog"],"invalidValueDefault":"get","missingValueDefault":"get"}},"name":{"type":"NoEmptyAny"},"novalidate":{"type":"Boolean"},"rel":{"type":"LinkTypeForFormElement"},"target":{"type":"NavigableTargetNameOrKeyword"}}},"frame":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{"frameborder":{"deprecated":true},"marginheight":{"deprecated":true},"marginwidth":{"deprecated":true},"name":{"deprecated":true},"noresize":{"deprecated":true},"scrolling":{"deprecated":true},"src":{"deprecated":true}}},"frameset":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{"cols":{"deprecated":true},"rows":{"deprecated":true}}},"h1":{"categories":["#flow","#heading","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"heading","permittedRoles":["tab","presentation","none"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"h2":{"categories":["#flow","#heading","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"heading","permittedRoles":["tab","presentation","none"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"h3":{"categories":["#flow","#heading","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"heading","permittedRoles":["tab","presentation","none"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"h4":{"categories":["#flow","#heading","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"heading","permittedRoles":["tab","presentation","none"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"h5":{"categories":["#flow","#heading","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"heading","permittedRoles":["tab","presentation","none"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"h6":{"categories":["#flow","#heading","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"heading","permittedRoles":["tab","presentation","none"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"head":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":":model(metadata):not(title)"},{"require":"title"},{"zeroOrMore":":model(metadata):not(title)"}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"profile":{"deprecated":true}}},"header":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(flow):not(header, footer, :has(header, footer))"}]},"aria":{"implicitRole":"banner","permittedRoles":["group","presentation","none"],"conditions":{":has(article, aside, main, nav, section, [role=article], [role=complementary], [role=main], [role=navigation], [role=region])":{"implicitRole":"generic","namingProhibited":true}}},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"hgroup":{"categories":["#flow","#heading","#palpable"],"contentModel":{"contents":[{"zeroOrMore":":model(script-supporting)"},{"zeroOrMore":"p"},{"zeroOrMore":":model(script-supporting)"},{"require":["h1","h2","h3","h4","h5","h6"]},{"zeroOrMore":":model(script-supporting)"},{"zeroOrMore":"p"},{"zeroOrMore":":model(script-supporting)"}]},"aria":{"implicitRole":"generic","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"hr":{"categories":["#flow"],"contentModel":{"contents":false},"aria":{"implicitRole":"separator","permittedRoles":["presentation","none"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"align":{"deprecated":true,"nonStandard":true},"color":{"deprecated":true,"nonStandard":true},"noshade":{"deprecated":true,"nonStandard":true},"size":{"deprecated":true,"nonStandard":true},"width":{"deprecated":true,"nonStandard":true}}},"html":{"categories":[],"contentModel":{"contents":[{"require":"head"},{"require":"body"}]},"aria":{"implicitRole":"generic","permittedRoles":["document","generic"],"namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"version":{"deprecated":true},"xmlns":{}}},"i":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"generic","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"iframe":{"categories":["#flow","#phrasing","#embedded","#interactive","#palpable"],"contentModel":{"contents":false},"aria":{"permittedRoles":["application","document","img","none","presentation"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLEmbededAndMediaContentAttrs","#HTMLGlobalAttrs","#HTMLLinkAndFetchingAttrs"],"attributes":{"align":{"deprecated":true},"allow":{"type":"SerializedPermissionsPolicy"},"allowfullscreen":{"type":"Boolean"},"allowpaymentrequest":{"deprecated":true,"nonStandard":true},"browsingtopics":{"deprecated":true,"nonStandard":true},"credentialless":{"experimental":true},"csp":{"experimental":true},"frameborder":{"deprecated":true},"height":{},"loading":{},"longdesc":{"deprecated":true},"marginheight":{"deprecated":true},"marginwidth":{"deprecated":true},"name":{"type":"NavigableTargetName"},"privateToken":{"type":"Any","experimental":true},"referrerpolicy":{},"sandbox":{"type":{"token":{"enum":["allow-forms","allow-modals","allow-orientation-lock","allow-pointer-lock","allow-popups","allow-popups-to-escape-sandbox","allow-presentation","allow-same-origin","allow-scripts","allow-top-navigation","allow-top-navigation-by-user-activation","allow-downloads","allow-custom-protocols-navigation"]},"caseInsensitive":true,"ordered":true,"unique":true,"separator":"space"}},"scrolling":{"deprecated":true},"src":{"required":"[itemprop]","ineffective":"[srcdoc]"},"srcdoc":{"type":"Any"},"width":{}}},"img":{"categories":["#flow","#phrasing","#embedded","#interactive","#palpable"],"contentModel":{"contents":false},"aria":{"implicitRole":"img","permittedRoles":["button","checkbox","link","math","menuitem","menuitemcheckbox","menuitemradio","meter","option","progressbar","radio","scrollbar","separator","slider","switch","tab","treeitem"],"conditions":{"[alt=\\"\\"]":{"implicitRole":"presentation"},":not([alt]):aria(has no name)":{"implicitRole":"img"}}},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLEmbededAndMediaContentAttrs","#HTMLGlobalAttrs","#HTMLLinkAndFetchingAttrs"],"attributes":{"align":{"deprecated":true},"alt":{"type":"Any"},"attributionsrc":{"deprecated":true},"border":{"deprecated":true},"crossorigin":{},"decoding":{"type":{"enum":["sync","async","auto"],"invalidValueDefault":"auto","missingValueDefault":"auto"}},"elementtiming":{},"fetchpriority":{},"height":{},"hspace":{"deprecated":true},"ismap":{"type":"Boolean","condition":"a[href] img"},"loading":{},"longdesc":{"deprecated":true},"name":{"deprecated":true},"referrerpolicy":{},"sizes":{},"src":{"type":"URL","requiredEither":["srcset"]},"srcset":{"type":"Srcset","requiredEither":["src"]},"usemap":{"type":"HashName","condition":":is(:not(a):not(button)) img"},"vspace":{"deprecated":true},"width":{}}},"input":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":false},"aria":{"implicitRole":"textbox","permittedRoles":["combobox","searchbox","spinbutton"],"conditions":{"[type='button' i]":{"implicitRole":"button"},"[type='checkbox' i]":{"implicitRole":"checkbox"},"[type='checkbox' i][aria-pressed]":{"implicitRole":"checkbox"},"[type='color' i]":{"implicitRole":false},"[type='date' i]":{"implicitRole":false},"[type='email' i]:not([list])":{"implicitRole":"textbox"},"[type='file' i]":{"implicitRole":false},"[type='hidden' i]":{"implicitRole":false},"[type='image' i]":{"implicitRole":"button"},"[type='month' i]":{"implicitRole":false},"[type='number' i]":{"implicitRole":"spinbutton"},"[type='password' i]":{"implicitRole":false},"[type='radio' i]":{"implicitRole":"radio"},"[type='range' i]":{"implicitRole":"slider"},"[type='reset' i]":{"implicitRole":"button"},"[type='search' i]:not([list])":{"implicitRole":"searchbox"},"[type='submit' i]":{"implicitRole":"button"},"[type='tel' i]:not([list])":{"implicitRole":"textbox"},":is(:not([type]), [type='text' i], [type='search' i], [type='tel' i], [type='url' i], [type='email' i])[list]":{"implicitRole":"combobox"},"[type='time' i]":{"implicitRole":false},"[type='url' i]:not([list])":{"implicitRole":"textbox"},"[type='week' i]":{"implicitRole":false}}},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLEmbededAndMediaContentAttrs","#HTMLFormControlElementAttrs","#HTMLGlobalAttrs"],"attributes":{"accept":{"type":{"token":"Accept","caseInsensitive":true,"unique":true,"separator":"comma"},"condition":"[type='file' i]"},"alpha":{"type":"Boolean","experimental":true,"condition":"[type='color' i]"},"alt":{"type":"Any","condition":"[type='image' i]"},"autocapitalize":{},"autocomplete":{"condition":[":not([type])","[type='hidden' i]","[type='text' i]","[type='search' i]","[type='url' i]","[type='tel' i]","[type='email' i]","[type='password' i]","[type='date' i]","[type='month' i]","[type='week' i]","[type='time' i]","[type='datetime-local' i]","[type='number' i]","[type='range' i]","[type='color' i]"]},"autofocus":{},"capture":{},"checked":{"type":"Boolean","condition":["[type='checkbox' i]","[type='radio' i]"]},"colorspace":{"type":{"enum":["limited-srgb","display-p3"],"invalidValueDefault":"limited-srgb","missingValueDefault":"limited-srgb"},"experimental":true,"condition":"[type='color' i]"},"dirname":{"condition":[":not([type])","[type='hidden' i]","[type='text' i]","[type='search' i]","[type='tel' i]","[type='url' i]","[type='email' i]","[type='password' i]","[type='submit' i]"]},"disabled":{},"form":{},"formaction":{},"formenctype":{},"formmethod":{},"formnovalidate":{},"formtarget":{},"height":{"condition":"[type='image' i]"},"id":{},"incremental":{"nonStandard":true},"inputmode":{},"list":{"type":"DOMID","condition":[":not([type])","[type='text' i]","[type='search' i]","[type='url' i]","[type='tel' i]","[type='email' i]","[type='date' i]","[type='month' i]","[type='week' i]","[type='time' i]","[type='datetime-local' i]","[type='number' i]","[type='range' i]","[type='color' i]"]},"max":{"type":["DateTime","Number"],"condition":["[type='date' i]","[type='month' i]","[type='week' i]","[type='time' i]","[type='datetime-local' i]","[type='number' i]","[type='range' i]"]},"maxlength":{"condition":[":not([type])","[type='text' i]","[type='search' i]","[type='url' i]","[type='tel' i]","[type='email' i]","[type='password' i]"]},"min":{"type":["DateTime","Number"],"condition":["[type='date' i]","[type='month' i]","[type='week' i]","[type='time' i]","[type='datetime-local' i]","[type='number' i]","[type='range' i]"]},"minlength":{"condition":[":not([type])","[type='text' i]","[type='search' i]","[type='url' i]","[type='tel' i]","[type='email' i]","[type='password' i]"]},"multiple":{"type":"Boolean","condition":["[type='email' i]","[type='file' i]"]},"name":{},"orient":{"nonStandard":true},"pattern":{"type":"Pattern","condition":[":not([type])","[type='text' i]","[type='search' i]","[type='url' i]","[type='tel' i]","[type='email' i]","[type='password' i]"]},"placeholder":{"type":"OneLineAny","condition":[":not([type])","[type='text' i]","[type='search' i]","[type='url' i]","[type='tel' i]","[type='email' i]","[type='password' i]","[type='number' i]"]},"popovertarget":{"type":"DOMID","condition":["[type='button' i]","[type='image' i]","[type='reset' i]","[type='submit' i]"]},"popovertargetaction":{"type":{"enum":["toggle","show","hide"],"disallowToSurroundBySpaces":true,"invalidValueDefault":"toggle","missingValueDefault":"toggle"},"condition":["[type='button' i]","[type='image' i]","[type='reset' i]","[type='submit' i]"]},"readonly":{"condition":[":not([type])","[type='text' i]","[type='search' i]","[type='url' i]","[type='tel' i]","[type='email' i]","[type='password' i]","[type='date' i]","[type='month' i]","[type='week' i]","[type='time' i]","[type='datetime-local' i]","[type='number' i]"]},"required":{"condition":[":not([type])","[type='text' i]","[type='search' i]","[type='url' i]","[type='tel' i]","[type='email' i]","[type='password' i]","[type='date' i]","[type='month' i]","[type='week' i]","[type='time' i]","[type='datetime-local' i]","[type='number' i]","[type='checkbox' i]","[type='radio' i]","[type='file' i]"]},"results":{"nonStandard":true},"size":{"type":{"type":"integer","gt":0},"condition":[":not([type])","[type='text' i]","[type='search' i]","[type='url' i]","[type='tel' i]","[type='email' i]","[type='password' i]"]},"src":{"condition":"[type='image' i]"},"step":{"type":["Number",{"enum":["any"],"caseInsensitive":true}],"condition":["[type='date' i]","[type='month' i]","[type='week' i]","[type='time' i]","[type='datetime-local' i]","[type='number' i]","[type='range' i]"]},"switch":{"type":"Boolean","experimental":true,"condition":["[type='checkbox' i]"]},"tabindex":{},"title":{},"type":{"type":{"enum":["hidden","text","search","tel","url","email","password","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"],"invalidValueDefault":"text","missingValueDefault":"text"}},"value":{"type":"Any"},"webkitdirectory":{"nonStandard":true},"width":{"condition":"[type='image' i]"}}},"ins":{"categories":["#flow","#phrasing"],"contentModel":{"contents":[{"transparent":"*"}]},"aria":{"implicitRole":"insertion","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"cite":{"type":"URL"},"datetime":{"type":"DateTime"}}},"isindex":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"kbd":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"keygen":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"label":{"categories":["#flow","#phrasing","#interactive","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing):not(label, :has(label))"}]},"aria":{"permittedRoles":[],"namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"for":{"type":"DOMID"}}},"legend":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(phrasing)",":model(heading)"]}]},"aria":{"permittedRoles":[],"namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"li":{"categories":[],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"implicitRole":"listitem","permittedRoles":["menuitem","menuitemcheckbox","menuitemradio","option","none","presentation","radio","separator","tab","treeitem"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"type":{"deprecated":true},"value":{"type":"Int","condition":"ol > li"}}},"link":{"categories":["#metadata","#flow","#phrasing"],"contentModel":{"contents":false},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#HTMLLinkAndFetchingAttrs"],"attributes":{"as":{"type":{"enum":["fetch","audio","audioworklet","document","embed","font","frame","iframe","image","manifest","object","paintworklet","report","script","serviceworker","sharedworker","style","track","video","worker","xslt"]},"condition":["[rel='preload' i]","[rel='modulepreload' i]"]},"blocking":{"type":{"token":{"enum":["render"]},"separator":"space","unique":true},"condition":"[rel~='stylesheet' i]"},"charset":{"deprecated":true,"obsolete":true},"color":{"type":"<color>","condition":"[rel~='mask-icon' i]"},"crossorigin":{},"disabled":{"type":"Boolean"},"fetchpriority":{},"href":{},"hreflang":{},"imagesizes":{"type":"SourceSizeList","required":"[imagesrcset]","condition":"[imagesrcset][rel~='preload' i][as='image' i]"},"imagesrcset":{"type":"Srcset","required":"[imagesizes]","condition":"[imagesizes][rel~='preload' i][as='image' i]"},"integrity":{"condition":["[rel~='stylesheet' i]","[rel~='preload' i]","[rel~='modulepreload' i]"]},"itemprop":{"requiredEither":["rel"]},"media":{},"referrerpolicy":{},"rel":{"type":"LinkTypeForLinkElement","requiredEither":["itemprop"]},"rev":{"deprecated":true,"obsolete":true},"sizes":{"type":{"token":"IconSize","caseInsensitive":true,"ordered":false,"unique":true,"separator":"space"},"condition":["[rel~='icon' i]","[rel~='apple-touch-icon' i]"]},"target":{"deprecated":true},"title":{},"type":{}}},"listing":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"main":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"implicitRole":"main","permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"map":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"transparent":"*"}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"name":{"type":"NoEmptyAny"}}},"mark":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"marquee":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{"behavior":{"deprecated":true},"bgcolor":{"deprecated":true},"direction":{"deprecated":true},"height":{"deprecated":true},"hspace":{"deprecated":true},"loop":{"deprecated":true},"scrollamount":{"deprecated":true},"scrolldelay":{"deprecated":true},"truespeed":{"deprecated":true},"vspace":{"deprecated":true},"width":{"deprecated":true}}},"math":{"categories":[],"contentModel":{"contents":true},"aria":{"implicitRole":"math","permittedRoles":[]},"globalAttrs":["#ARIAAttrs"],"attributes":{}},"menu":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"zeroOrMore":["li",":model(script-supporting)"]}]},"aria":{"implicitRole":"list","permittedRoles":["group","listbox","menu","menubar","none","presentation","radiogroup","tablist","toolbar","tree","directory"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"compact":{"deprecated":true}}},"menuitem":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"meta":{"categories":["#metadata","#flow","#phrasing"],"contentModel":{"contents":false},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#HTMLLinkAndFetchingAttrs"],"attributes":{"charset":{"type":{"enum":["utf-8"],"caseInsensitive":true},"condition":[":not([itemprop])",":not([name])",":not([http-equiv])"]},"content":{"type":"Any","required":["[name]","[http-equiv]","[itemprop]"],"condition":["[name]","[http-equiv]","[itemprop]"]},"http-equiv":{"type":{"enum":["content-type","default-style","refresh","x-ua-compatible","content-security-policy"]},"requiredEither":["itemprop","name","charset"],"condition":[":not([itemprop])",":not([name])",":not([charset])"]},"itemprop":{"requiredEither":["name","http-equiv","charset"],"condition":[":not([name])",":not([http-equiv])",":not([charset])"]},"media":{"condition":"[name='theme-color']"},"name":{"type":"Any","requiredEither":["itemprop","http-equiv","charset"],"condition":[":not([itemprop])",":not([http-equiv])",":not([charset])"]}}},"meter":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing):not(meter, :has(meter))"}]},"aria":{"implicitRole":"meter","permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"high":{"type":"Number"},"low":{"type":"Number"},"max":{"type":"Number"},"min":{"type":"Number"},"optimum":{"type":"Number"},"value":{"type":"Number"}}},"multicol":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"nav":{"categories":["#flow","#sectioning","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"implicitRole":"navigation","permittedRoles":["menu","menubar","none","presentation","tablist"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"nextid":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"nobr":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"noembed":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"noframes":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"noscript":{"categories":["#metadata","#flow","#phrasing"],"contentModel":{"contents":[{"transparent":":not(noscript)"}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"object":{"categories":["#flow","#phrasing","#embedded","#interactive","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"permittedRoles":["application","document","img"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLEmbededAndMediaContentAttrs","#HTMLFormControlElementAttrs","#HTMLGlobalAttrs"],"attributes":{"archive":{"deprecated":true},"border":{"deprecated":true},"classid":{"deprecated":true},"codebase":{"deprecated":true},"codetype":{"deprecated":true},"data":{"type":"URL","requiredEither":["type"]},"declare":{"deprecated":true},"form":{},"height":{},"name":{"type":"NavigableTargetName"},"standby":{"deprecated":true},"type":{"type":"MIMEType","requiredEither":["data"]},"usemap":{"deprecated":true},"width":{}}},"ol":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"zeroOrMore":["li",":model(script-supporting)"]}]},"aria":{"implicitRole":"list","permittedRoles":["group","listbox","menu","menubar","none","presentation","radiogroup","tablist","toolbar","tree","directory"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"compact":{"deprecated":true,"nonStandard":true},"reversed":{"type":"Boolean"},"start":{"type":"Int"},"type":{"type":{"enum":["1","a","A","i","I"],"caseInsensitive":false,"invalidValueDefault":"decimal","missingValueDefault":"decimal"}}}},"optgroup":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":"option"}]},"aria":{"implicitRole":"group","permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLFormControlElementAttrs","#HTMLGlobalAttrs"],"attributes":{"disabled":{},"label":{"type":"Any","required":true}}},"option":{"categories":[],"contentModel":{"contents":[{"optional":"#text"}],"conditional":[{"condition":"[label][value]","contents":false},{"condition":"label","contents":[{"optional":"#text"}]},{"condition":"datalist > [label]","contents":[{"optional":"#text"}]}]},"aria":{"permittedRoles":[],"conditions":{":is(select, select > option, datalist) > option":{"implicitRole":"option"}}},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLFormControlElementAttrs","#HTMLGlobalAttrs"],"attributes":{"disabled":{},"label":{"type":"Any"},"selected":{"type":"Boolean"},"value":{"type":"Any"}}},"output":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"status","permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLFormControlElementAttrs","#HTMLGlobalAttrs"],"attributes":{"for":{"type":{"token":"DOMID","separator":"space","unique":true,"caseInsensitive":true}},"form":{},"name":{}}},"p":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"paragraph","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"param":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{"name":{"deprecated":true},"type":{"deprecated":true},"value":{"deprecated":true},"valuetype":{"deprecated":true}}},"picture":{"categories":["#flow","#phrasing","#embedded"],"contentModel":{"contents":[{"zeroOrMore":":model(script-supporting)"},{"zeroOrMore":"source"},{"zeroOrMore":":model(script-supporting)"},{"require":"img"},{"zeroOrMore":":model(script-supporting)"}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"plaintext":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"pre":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"generic","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"width":{"deprecated":true,"nonStandard":true},"wrap":{"deprecated":true,"nonStandard":true}}},"progress":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing):not(progress, :has(progress))"}]},"aria":{"implicitRole":"progressbar","permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"max":{"type":"Number"},"value":{"type":"Number"}}},"q":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"generic","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"cite":{"type":"URL"}}},"rb":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"rp":{"categories":[],"contentModel":{"contents":[{"oneOrMore":"#text"}]},"aria":{"permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"rt":{"categories":[],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"rtc":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"ruby":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":[{"oneOrMore":[":model(phrasing):not(ruby, :has(ruby))","ruby:not(:has(ruby))"]},{"choice":[[{"oneOrMore":"rt"}],[{"require":"rp"},{"oneOrMore":[{"require":"rt"},{"require":"rp"}]}]]}]}]},"aria":{"permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"s":{"categories":["#flow","#phrasing"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"deletion","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"samp":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"generic","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"script":{"categories":["#metadata","#flow","#phrasing"],"contentModel":{"contents":[{"zeroOrMore":"#text"}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#HTMLLinkAndFetchingAttrs"],"attributes":{"async":{"type":"Boolean","ineffective":":not([src]):not([type='module' i])","condition":["[src]","[type='module' i]"]},"attributionsrc":{"deprecated":true},"blocking":{"type":{"token":{"enum":["render"]},"separator":"space","unique":true}},"charset":{"deprecated":true},"crossorigin":{},"defer":{"type":"Boolean","ineffective":["[type='module' i]",":not([src])","[async]"],"condition":"[src]"},"fetchpriority":{},"integrity":{"condition":"[src]"},"language":{"deprecated":true,"nonStandard":true},"nomodule":{"type":"Boolean","condition":":not([type='module' i])"},"nonce":{},"referrerpolicy":{},"src":{"type":"URL"},"type":{"type":["MIMEType",{"enum":["module","importmap"],"caseInsensitive":true}]}}},"search":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"implicitRole":"search","permittedRoles":["form","group","none","presentation","region"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"section":{"categories":["#flow","#sectioning","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"permittedRoles":["alert","alertdialog","application","banner","complementary","contentinfo","dialog","document","feed","group","log","main","marquee","navigation","none","note","presentation","search","status","tabpanel"],"conditions":{":aria(has name)":{"implicitRole":"region"}}},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"select":{"categories":["#flow","#phrasing","#interactive"],"contentModel":{"contents":[{"zeroOrMore":["option","optgroup","hr","#script-supporting"]}]},"aria":{"implicitRole":"combobox","permittedRoles":["menu"],"conditions":{"[multiple], [size]:not([size=1])":{"implicitRole":"listbox"}}},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLFormControlElementAttrs","#HTMLGlobalAttrs"],"attributes":{"autocomplete":{},"autofocus":{},"disabled":{},"form":{},"multiple":{"type":"Boolean"},"name":{},"required":{},"size":{"type":{"type":"integer","gt":0}}}},"slot":{"categories":["#flow","#phrasing"],"contentModel":{"contents":[{"transparent":"*"}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"name":{"type":"NoEmptyAny"}}},"small":{"categories":["#flow","#phrasing"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"generic","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"source":{"categories":[],"contentModel":{"contents":false},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLEmbededAndMediaContentAttrs","#HTMLGlobalAttrs"],"attributes":{"height":{"condition":"picture > source"},"media":{"type":"<media-query-list>"},"sizes":{"condition":"picture > source"},"src":{"type":"URL","required":":is(video, audio) > source","condition":":is(video, audio) > source"},"srcset":{"required":"picture > source","condition":"picture > source"},"type":{"type":"MIMEType"},"width":{"condition":"picture > source"}}},"spacer":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"span":{"categories":["#flow","#phrasing"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"generic","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"strike":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"strong":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"strong","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"style":{"categories":["#metadata"],"contentModel":{"contents":[{"zeroOrMore":"#text"}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"blocking":{"type":{"token":{"enum":["render"]},"separator":"space","unique":true}},"media":{"type":"<media-query-list>"},"nonce":{},"title":{},"type":{"deprecated":true}}},"sub":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"subscript","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"summary":{"categories":[],"contentModel":{"contents":[{"choice":[[{"oneOrMore":":model(phrasing)"}],[{"require":":model(heading)"}]]}]},"aria":{"implicitRole":"button","permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"sup":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"superscript","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"table":{"categories":["#flow"],"contentModel":{"contents":[{"zeroOrMore":":model(script-supporting)"},{"optional":"caption"},{"zeroOrMore":":model(script-supporting)"},{"zeroOrMore":"colgroup"},{"zeroOrMore":":model(script-supporting)"},{"optional":"thead"},{"zeroOrMore":":model(script-supporting)"},{"choice":[[{"zeroOrMore":"tbody"}],[{"oneOrMore":"tr"}]]},{"zeroOrMore":":model(script-supporting)"},{"optional":"tfoot"},{"zeroOrMore":":model(script-supporting)"}]},"aria":{"implicitRole":"table","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"align":{"deprecated":true},"bgcolor":{"deprecated":true},"border":{"deprecated":true},"cellpadding":{"deprecated":true},"cellspacing":{"deprecated":true},"frame":{"deprecated":true},"rules":{"deprecated":true},"summary":{"deprecated":true},"width":{"deprecated":true}}},"tbody":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":"tr"}]},"aria":{"implicitRole":"rowgroup","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"align":{"deprecated":true},"bgcolor":{"deprecated":true},"char":{"deprecated":true},"charoff":{"deprecated":true},"valign":{"deprecated":true}}},"td":{"categories":[],"contentModel":{"contents":[{"oneOrMore":":model(flow)"}]},"aria":{"permittedRoles":"any","conditions":{"table:is(:not([role]), [role=table]) > :is(thead, tfoot, tbody) > tr > td, table:is(:not([role]), [role=table]) > tr > td":{"implicitRole":"cell"},"table:is([role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > td, table:is([role=grid], [role=treegrid]) > tr > td":{"implicitRole":"gridcell"}}},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#HTMLTableCellElementAttrs"],"attributes":{"abbr":{"deprecated":true},"align":{"deprecated":true},"axis":{"deprecated":true},"bgcolor":{"deprecated":true},"char":{"deprecated":true},"charoff":{"deprecated":true},"colspan":{},"headers":{},"height":{"deprecated":true},"rowspan":{},"scope":{"deprecated":true},"valign":{"deprecated":true},"width":{"deprecated":true}}},"template":{"categories":["#metadata","#flow","#phrasing","#script-supporting"],"contentModel":{"contents":true},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"shadowrootclonable":{"type":"Boolean"},"shadowrootdelegatesfocus":{"type":"Boolean"},"shadowrootmode":{"type":{"enum":["open","closed"],"missingValueDefault":"none","invalidValueDefault":"none"}},"shadowrootreferencetarget":{"type":"DOMID","nonStandard":true,"experimental":true},"shadowrootserializable":{"type":"Boolean"}}},"textarea":{"categories":["#flow","#phrasing","#interactive"],"contentModel":{"contents":[{"optional":"#text"}]},"aria":{"implicitRole":"textbox","permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLFormControlElementAttrs","#HTMLGlobalAttrs"],"attributes":{"autocapitalize":{},"autocomplete":{},"autocorrect":{},"autofocus":{},"cols":{"type":{"type":"integer","gt":0}},"dirname":{},"disabled":{},"form":{},"maxlength":{},"minlength":{},"name":{},"placeholder":{"type":"Any"},"readonly":{},"required":{},"rows":{"type":{"type":"integer","gt":0}},"spellcheck":{},"wrap":{"type":{"enum":["soft","hard"],"missingValueDefault":"soft","invalidValueDefault":"soft"}}}},"tfoot":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":"tr"}]},"aria":{"implicitRole":"rowgroup","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"align":{"deprecated":true},"bgcolor":{"deprecated":true},"char":{"deprecated":true},"charoff":{"deprecated":true},"valign":{"deprecated":true}}},"th":{"categories":[],"contentModel":{"contents":[{"oneOrMore":":model(flow):not(header, footer, :model(sectioning), :model(heading), :has(header, footer, :model(sectioning), :model(heading)))"}]},"aria":{"permittedRoles":"any","conditions":{"table:is(:not([role]), [role=table]) > :is(thead, tfoot, tbody) > tr > th, table:is(:not([role]), [role=table]) > tr > th":{"implicitRole":"cell"},"table:is([role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > th, table:is([role=grid], [role=treegrid]) > tr > th":{"implicitRole":"gridcell"},"table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > thead > tr > th:not([scope])":{"implicitRole":"columnheader"},"table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > :is(tfoot, tbody) > tr > th:not([scope]), table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > tr > th:not([scope])":{"implicitRole":"rowheader"},"table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > th[scope=col], table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > tr > th[scope=col]":{"implicitRole":"columnheader"},"table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > th[scope=row], table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > tr > th[scope=row]":{"implicitRole":"rowheader"}}},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#HTMLTableCellElementAttrs"],"attributes":{"abbr":{"type":"Any"},"align":{"deprecated":true},"axis":{"deprecated":true},"bgcolor":{"deprecated":true},"char":{"deprecated":true},"charoff":{"deprecated":true},"colspan":{},"headers":{},"height":{"deprecated":true},"rowspan":{},"scope":{"type":{"enum":["row","col","rowgroup","colgroup"],"missingValueDefault":"auto","invalidValueDefault":"auto"}},"valign":{"deprecated":true},"width":{"deprecated":true}}},"thead":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":"tr"}]},"aria":{"implicitRole":"rowgroup","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"align":{"deprecated":true},"bgcolor":{"deprecated":true},"char":{"deprecated":true},"charoff":{"deprecated":true},"valign":{"deprecated":true}}},"time":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"time","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"datetime":{"type":"DateTime"}}},"title":{"categories":["#metadata"],"contentModel":{"contents":[{"require":"#text"}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"tr":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":["th","td",":model(script-supporting)"]}]},"aria":{"implicitRole":"row","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"align":{"deprecated":true},"bgcolor":{"deprecated":true},"char":{"deprecated":true},"charoff":{"deprecated":true},"valign":{"deprecated":true}}},"track":{"categories":[],"contentModel":{"contents":false},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"default":{"type":"Boolean"},"kind":{"type":{"enum":["subtitles","captions","descriptions","chapters","metadata"],"missingValueDefault":"metadata","invalidValueDefault":"metadata"}},"label":{"type":"NoEmptyAny"},"src":{"type":"URL","required":true},"srclang":{"type":"BCP47"}}},"tt":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"u":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"implicitRole":"generic","permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"ul":{"categories":["#flow","#palpable"],"contentModel":{"contents":[{"zeroOrMore":["li",":model(script-supporting)"]}]},"aria":{"implicitRole":"list","permittedRoles":["group","listbox","menu","menubar","none","presentation","radiogroup","tablist","toolbar","tree","directory"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{"compact":{"deprecated":true},"type":{"deprecated":true}}},"var":{"categories":["#flow","#phrasing","#palpable"],"contentModel":{"contents":[{"oneOrMore":":model(phrasing)"}]},"aria":{"permittedRoles":"any","namingProhibited":true},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"video":{"categories":["#flow","#phrasing","#embedded","#interactive","#palpable"],"contentModel":{"contents":[{"zeroOrMore":"source"},{"zeroOrMore":"track"},{"transparent":":not(audio, video, :has(audio, video))"}],"conditional":[{"condition":"[src]","contents":[{"zeroOrMore":"track"},{"transparent":":not(audio, video, :has(audio, video))"}]}]},"aria":{"permittedRoles":["application"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLEmbededAndMediaContentAttrs","#HTMLGlobalAttrs","#HTMLLinkAndFetchingAttrs"],"attributes":{"autoplay":{},"controls":{},"controlslist":{"type":{"token":{"enum":["nodownload","nofullscreen","noremoteplayback"]},"ordered":false,"caseInsensitive":true,"unique":true,"separator":"space"}},"crossorigin":{},"disablepictureinpicture":{},"disableremoteplayback":{},"height":{},"loop":{},"muted":{},"playsinline":{"type":"Boolean"},"poster":{"type":"URL"},"preload":{},"src":{},"width":{}}},"wbr":{"categories":["#flow","#phrasing"],"contentModel":{"contents":false},"aria":{"permittedRoles":["none","presentation"]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs"],"attributes":{}},"xmp":{"categories":[],"obsolete":true,"contentModel":{"contents":true},"aria":{"permittedRoles":"any"},"globalAttrs":[],"attributes":{}},"svg:a":{"categories":[],"contentModel":{"conditional":[{"condition":"svg|switch > svg|a","contents":[{"transparent":"*"}]}],"contents":[{"transparent":"*, :model(SVGDescriptive):not(svg|a, :has(svg|a))"}]},"aria":{"implicitRole":"group","permittedRoles":"any","conditions":{"[href], [xlink|href]":{"implicitRole":"link"}}},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#HTMLLinkAndFetchingAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs","#XLinkAttrs"],"attributes":{"download":{},"href":{},"hreflang":{},"interestfor":{"type":"DOMID","nonStandard":true,"experimental":true},"ping":{"experimental":true},"referrerpolicy":{},"rel":{},"target":{},"type":{},"xlink:href":{"deprecated":true}}},"svg:animate":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|script"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGAnimationAdditionAttrs","#SVGAnimationAttributeTargetAttrs","#SVGAnimationEventAttrs","#SVGAnimationTargetElementAttrs","#SVGAnimationTimingAttrs","#SVGAnimationValueAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{}},"svg:animateMotion":{"categories":[],"contentModel":{"contents":[{"choice":[[{"oneOrMore":[":model(SVGDescriptive)","svg|script"]},{"optional":"svg|mpath"}],[{"optional":"svg|mpath"},{"oneOrMore":[":model(SVGDescriptive)","svg|script"]}]]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGAnimationAdditionAttrs","#SVGAnimationEventAttrs","#SVGAnimationTargetElementAttrs","#SVGAnimationTimingAttrs","#SVGAnimationValueAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs"],"attributes":{"keyPoints":{"type":"<key-points>"},"origin":{"type":"<origin>"},"path":{"type":"<svg-path>"},"rotate":{"type":"<rotate>"}}},"svg:animateTransform":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|script"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGAnimationAdditionAttrs","#SVGAnimationAttributeTargetAttrs","#SVGAnimationEventAttrs","#SVGAnimationTargetElementAttrs","#SVGAnimationTimingAttrs","#SVGAnimationValueAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs"],"attributes":{"type":{"type":{"enum":["translate","scale","rotate","skewX","skewY"]}}}},"svg:circle":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)","svg|clipPath","svg|marker","svg|mask","svg|script","svg|style"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"cx":{},"cy":{},"pathLength":{"type":"<number>"},"r":{}}},"svg:clipPath":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGShape)","svg|text","svg|use","svg|script"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"clipPathUnits":{"type":{"enum":["userSpaceOnUse","objectBoundingBox"],"disallowToSurroundBySpaces":false}},"externalResourcesRequired":{"type":{"enum":["true","false"]}}}},"svg:defs":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)",":model(SVGShape)",":model(SVGStructural)","svg|a","svg|clipPath","svg|filter","svg|foreignObject","svg|image","svg|marker","svg|mask","svg|script","svg|style","svg|switch","svg|text","svg|view"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{}},"svg:desc":{"categories":[],"contentModel":{"contents":[{"require":[":model(SVGDescriptive)",":model(SVGNeverRendered)","#text"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGCoreAttrs"],"attributes":{}},"svg:discard":{"categories":[],"contentModel":{"contents":[{"require":[":model(SVGDescriptive)","svg|script"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs"],"attributes":{"begin":{"type":"<begin-value-list>"},"href":{"type":"URL"}}},"svg:ellipse":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)","svg|clipPath","svg|marker","svg|mask","svg|script","svg|style"]}]},"aria":{"implicitRole":"graphics-symbol","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"cx":{},"cy":{},"pathLength":{"type":"<number>"},"rx":{},"ry":{}}},"svg:feBlend":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"in2":{"type":[{"enum":["SourceGraphic","SourceAlpha","BackgroundImage","BackgroundAlpha","FillPaint","StrokePaint"],"disallowToSurroundBySpaces":false},"<custom-ident>"]},"mode":{"type":"<blend-mode>"}}},"svg:feColorMatrix":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"type":{"type":{"enum":["matrix","saturate","hueRotate","luminanceToAlpha"],"disallowToSurroundBySpaces":false}},"values":{"type":"<color-matrix>"}}},"svg:feComponentTransfer":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|feFuncA","svg|feFuncR","svg|feFuncB","svg|feFuncG","svg|script"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{}},"svg:feComposite":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"in2":{"type":[{"enum":["SourceGraphic","SourceAlpha","BackgroundImage","BackgroundAlpha","FillPaint","StrokePaint"],"disallowToSurroundBySpaces":false},"<custom-ident>"]},"k1":{"type":"<number>","ineffective":":not([operator='arithmetic' i])"},"k2":{"type":"<number>","ineffective":":not([operator='arithmetic' i])"},"k3":{"type":"<number>","ineffective":":not([operator='arithmetic' i])"},"k4":{"type":"<number>","ineffective":":not([operator='arithmetic' i])"},"operator":{"type":{"enum":["over","in","out","atop","xor","lighter","arithmetic"],"disallowToSurroundBySpaces":false}}}},"svg:feConvolveMatrix":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"bias":{"type":"<number>"},"divisor":{"type":"<number>"},"edgeMode":{"type":{"enum":["duplicate","wrap","none"],"disallowToSurroundBySpaces":false}},"kernelMatrix":{"type":"<list-of-numbers>"},"kernelUnitLength":{"type":"<number-optional-number>","deprecated":true},"order":{"type":"<number-optional-number>"},"preserveAlpha":{"type":{"enum":["true","false"],"disallowToSurroundBySpaces":false}},"targetX":{"type":"<integer>"},"targetY":{"type":"<integer>"}}},"svg:feDiffuseLighting":{"categories":[],"contentModel":{"contents":[{"choice":[[{"zeroOrMore":[":model(SVGDescriptive)","svg|script"]},{"require":":model(SVGLightSource)"}],[{"require":":model(SVGLightSource)"},{"zeroOrMore":[":model(SVGDescriptive)","svg|script"]}]]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"diffuseConstant":{"type":"<number>"},"kernelUnitLength":{"type":"<number-optional-number>","deprecated":true},"surfaceScale":{"type":"<number>"}}},"svg:feDisplacementMap":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"in2":{"type":[{"enum":["SourceGraphic","SourceAlpha","BackgroundImage","BackgroundAlpha","FillPaint","StrokePaint"],"disallowToSurroundBySpaces":false},"<custom-ident>"]},"scale":{"type":"<number>"},"xChannelSelector":{"type":{"enum":["R","G","B","A"],"disallowToSurroundBySpaces":false}},"yChannelSelector":{"type":{"enum":["R","G","B","A"],"disallowToSurroundBySpaces":false}}}},"svg:feDistantLight":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs"],"attributes":{"azimuth":{"type":"<number>"},"elevation":{"type":"<number>"}}},"svg:feDropShadow":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"dx":{"type":"<number>"},"dy":{"type":"<number>"},"stdDeviation":{"type":"<number-optional-number>"}}},"svg:feFlood":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"flood-color":{"type":"<color>"},"flood-opacity":{"type":"<alpha-value>"}}},"svg:feFuncA":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGTransferFunctionAttrs"],"attributes":{}},"svg:feFuncB":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGTransferFunctionAttrs"],"attributes":{}},"svg:feFuncG":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGTransferFunctionAttrs"],"attributes":{}},"svg:feFuncR":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGTransferFunctionAttrs"],"attributes":{}},"svg:feGaussianBlur":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"edgeMode":{"type":{"enum":["duplicate","wrap","none"],"disallowToSurroundBySpaces":false}},"stdDeviation":{"type":"<number-optional-number>"}}},"svg:feImage":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|animateTransform","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"crossorigin":{"type":{"enum":["anonymous","use-credentials"],"disallowToSurroundBySpaces":false}},"externalResourcesRequired":{"type":{"enum":["true","false"],"disallowToSurroundBySpaces":false}},"href":{"type":"URL"},"preserveAspectRatio":{"type":"<preserve-aspect-ratio>"},"xlink:href":{"type":"URL","deprecated":true}}},"svg:feMerge":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|feMergeNode","svg|script"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{}},"svg:feMergeNode":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs"],"attributes":{}},"svg:feMorphology":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"operator":{"type":{"enum":["erode","dilate"],"disallowToSurroundBySpaces":false}},"radius":{"type":"<number-optional-number>"}}},"svg:feOffset":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"dx":{"type":"<number>"},"dy":{"type":"<number>"}}},"svg:fePointLight":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs"],"attributes":{"x":{"type":"<number>"},"y":{"type":"<number>"},"z":{"type":"<number>"}}},"svg:feSpecularLighting":{"categories":[],"contentModel":{"contents":[{"choice":[[{"zeroOrMore":[":model(SVGDescriptive)","svg|script"]},{"require":":model(SVGLightSource)"}],[{"require":":model(SVGLightSource)"},{"zeroOrMore":[":model(SVGDescriptive)","svg|script"]}]]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"kernelUnitLength":{"type":"<number-optional-number>"},"specularConstant":{"type":"<number>"},"specularExponent":{"type":"<number>"},"surfaceScale":{"type":"<number>"}}},"svg:feSpotLight":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs"],"attributes":{"limitingConeAngle":{"type":"<number>"},"pointsAtX":{"type":"<number>"},"pointsAtY":{"type":"<number>"},"pointsAtZ":{"type":"<number>"},"specularExponent":{"type":"<number>"},"x":{"type":"<number>"},"y":{"type":"<number>"},"z":{"type":"<number>"}}},"svg:feTile":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{}},"svg:feTurbulence":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"baseFrequency":{"type":"<number-optional-number>"},"numOctaves":{"type":"<integer>"},"seed":{"type":"<number>"},"stitchTiles":{"type":{"enum":["noStitch","stitch"]}},"type":{"type":{"enum":["fractalNoise","turbulence"]}}}},"svg:filter":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)",":model(SVGFilterPrimitive)","svg|animate","svg|script","svg|set"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"externalResourcesRequired":{"type":{"enum":["true","false"],"disallowToSurroundBySpaces":false}},"filterRes":{"type":"<number-optional-number>","deprecated":true},"filterUnits":{"type":{"enum":["userSpaceOnUse","objectBoundingBox"],"disallowToSurroundBySpaces":false}},"height":{},"primitiveUnits":{"type":{"enum":["userSpaceOnUse","objectBoundingBox"]}},"width":{},"x":{},"y":{}}},"svg:foreignObject":{"categories":[],"contentModel":{"contents":true},"aria":{"implicitRole":"group","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"height":{},"width":{},"x":{},"y":{}}},"svg:g":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)",":model(SVGShape)",":model(SVGStructural)","svg|a","svg|clipPath","svg|filter","svg|foreignObject","svg|image","svg|marker","svg|mask","svg|script","svg|style","svg|switch","svg|text","svg|view"]}]},"aria":{"implicitRole":"group","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{}},"svg:image":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)","svg|clipPath","svg|mask","svg|script","svg|style"]}]},"aria":{"implicitRole":"img","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs","#XLinkAttrs"],"attributes":{"crossorigin":{"type":{"enum":["","anonymous","use-credentials"],"sameStates":{"anonymous":[""]}}},"decoding":{},"fetchpriority":{"nonStandard":true,"experimental":true},"height":{},"href":{"type":"URL"},"preserveAspectRatio":{"type":"<preserve-aspect-ratio>"},"width":{},"x":{},"xlink:href":{"deprecated":true},"y":{}}},"svg:line":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)","svg|clipPath","svg|marker","svg|mask","svg|script","svg|style"]}]},"aria":{"implicitRole":"graphics-symbol","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"pathLength":{"type":"<number>"},"x1":{"type":["<svg-length>","<percentage>","<number>"]},"x2":{"type":["<svg-length>","<percentage>","<number>"]},"y1":{"type":["<svg-length>","<percentage>","<number>"]},"y2":{"type":["<svg-length>","<percentage>","<number>"]}}},"svg:linearGradient":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|animateTransform","svg|script","svg|set","svg|stop","svg|style"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGCoreAttrs","#SVGPresentationAttrs","#XLinkAttrs"],"attributes":{"gradientTransform":{"type":"<transform-list>"},"gradientUnits":{"type":{"enum":["userSpaceOnUse","objectBoundingBox"],"disallowToSurroundBySpaces":false}},"href":{"type":"URL"},"spreadMethod":{"type":{"enum":["pad","reflect","repeat"],"disallowToSurroundBySpaces":false}},"x1":{"type":["<svg-length>","<percentage>"]},"x2":{"type":["<svg-length>","<percentage>"]},"xlink:href":{"deprecated":true},"y1":{"type":["<svg-length>","<percentage>"]},"y2":{"type":["<svg-length>","<percentage>"]}}},"svg:marker":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)",":model(SVGShape)",":model(SVGStructural)","svg|a","svg|clipPath","svg|filter","svg|foreignObject","svg|image","svg|marker","svg|mask","svg|script","svg|style","svg|switch","svg|text","svg|view"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"markerHeight":{"type":["<svg-length>","<percentage>","<number>"]},"markerUnits":{"type":{"enum":["userSpaceOnUse","strokeWidth"],"disallowToSurroundBySpaces":false}},"markerWidth":{"type":["<svg-length>","<percentage>","<number>"]},"orient":{"type":[{"enum":["auto","auto-start-reverse"],"disallowToSurroundBySpaces":false},"<angle>","<number>"]},"preserveAspectRatio":{"type":"<preserve-aspect-ratio>"},"refX":{"type":["<percentage>","<number>",{"enum":["left","center","right"],"disallowToSurroundBySpaces":false}]},"refY":{"type":["<percentage>","<number>",{"enum":["left","center","right"],"disallowToSurroundBySpaces":false}]},"viewBox":{"type":"<view-box>"}}},"svg:mask":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGShape)",":model(SVGStructural)",":model(SVGGradient)","svg|a","svg|altGlyphDef","svg|clipPath","svg|color-profile","svg|cursor","svg|filter","svg|font","svg|font-face","svg|foreignObject","svg|image","svg|marker","svg|mask","svg|pattern","svg|script","svg|style","svg|switch","svg|text","svg|view"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGFilterPrimitiveAttrs","#SVGPresentationAttrs"],"attributes":{"height":{},"mask-type":{},"maskContentUnits":{"type":{"enum":["userSpaceOnUse","objectBoundingBox"]}},"maskUnits":{"type":{"enum":["userSpaceOnUse","objectBoundingBox"],"disallowToSurroundBySpaces":false}},"width":{},"x":{},"y":{}}},"svg:metadata":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)",":model(SVGNeverRendered)","#text"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGCoreAttrs"],"attributes":{}},"svg:mpath":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|script"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGCoreAttrs"],"attributes":{"href":{"type":"URL"}}},"svg:path":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)","svg|clipPath","svg|marker","svg|mask","svg|script","svg|style"]}]},"aria":{"implicitRole":"graphics-symbol","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs","#XLinkAttrs"],"attributes":{"d":{},"pathLength":{"type":"<number>"}}},"svg:pattern":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)",":model(SVGShape)",":model(SVGStructural)","svg|a","svg|clipPath","svg|filter","svg|foreignObject","svg|image","svg|marker","svg|mask","svg|script","svg|style","svg|switch","svg|text","svg|view"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGCoreAttrs","#SVGPresentationAttrs","#XLinkAttrs"],"attributes":{"height":{},"href":{"type":"URL"},"patternContentUnits":{"type":{"enum":["userSpaceOnUse","objectBoundingBox"],"disallowToSurroundBySpaces":false}},"patternTransform":{"type":"<transform-list>"},"patternUnits":{"type":{"enum":["userSpaceOnUse","objectBoundingBox"],"disallowToSurroundBySpaces":false}},"preserveAspectRatio":{"type":"<preserve-aspect-ratio>"},"viewBox":{"type":"<view-box>"},"width":{},"x":{},"xlink:href":{"deprecated":true},"y":{}}},"svg:polygon":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)","svg|clipPath","svg|marker","svg|mask","svg|script","svg|style"]}]},"aria":{"implicitRole":"graphics-symbol","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"pathLength":{"type":"<number>"},"points":{"type":"<points>"}}},"svg:polyline":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)","svg|clipPath","svg|marker","svg|mask","svg|script","svg|style"]}]},"aria":{"implicitRole":"graphics-symbol","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"pathLength":{"type":"<number>"},"points":{"type":"<points>"}}},"svg:radialGradient":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|animate","svg|animateTransform","svg|script","svg|set","svg|stop","svg|style"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGCoreAttrs","#SVGPresentationAttrs","#XLinkAttrs"],"attributes":{"cx":{"type":["<svg-length>","<percentage>"]},"cy":{"type":["<svg-length>","<percentage>"]},"fr":{"type":["<svg-length>","<percentage>"]},"fx":{"type":["<svg-length>","<percentage>"]},"fy":{"type":["<svg-length>","<percentage>"]},"gradientTransform":{"type":"<transform-list>"},"gradientUnits":{"type":{"enum":["userSpaceOnUse","objectBoundingBox"],"disallowToSurroundBySpaces":false}},"href":{"type":"URL"},"r":{"type":["<svg-length>","<percentage>"]},"spreadMethod":{"type":{"enum":["pad","reflect","repeat"],"disallowToSurroundBySpaces":false}},"xlink:href":{"deprecated":true}}},"svg:rect":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)","svg|clipPath","svg|marker","svg|mask","svg|script","svg|style"]}]},"aria":{"implicitRole":"graphics-symbol","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"height":{},"pathLength":{"type":"<number>"},"rx":{},"ry":{},"width":{},"x":{},"y":{}}},"svg:script":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGNeverRendered)",":model(SVGStructurallyExternal)","#text"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGCoreAttrs","#XLinkAttrs"],"attributes":{"crossorigin":{"type":{"enum":["anonymous","use-credentials",""],"disallowToSurroundBySpaces":false}},"fetchpriority":{"nonStandard":true,"experimental":true},"href":{"type":"URL"},"type":{"type":"MIMEType"},"xlink:href":{"deprecated":true}}},"svg:set":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)","svg|script"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGAnimationAttributeTargetAttrs","#SVGAnimationEventAttrs","#SVGAnimationTargetElementAttrs","#SVGAnimationTimingAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs"],"attributes":{"to":{"type":"NoEmptyAny"}}},"svg:stop":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":["svg:animate","svg|animateColor","svg|script","svg|set","svg|style"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"offset":{"type":["<number>","<percentage>"]},"stop-color":{"type":"<color>"},"stop-opacity":{"type":"<'opacity'>"}}},"svg:style":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":"#text"}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGCoreAttrs"],"attributes":{"media":{"type":"<media-query-list>"},"title":{"type":"Any"},"type":{"type":"MIMEType"}}},"svg:svg":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)",":model(SVGShape)",":model(SVGStructural)","svg|a","svg|clipPath","svg|filter","svg|foreignObject","svg|image","svg|marker","svg|mask","svg|script","svg|style","svg|switch","svg|text","svg|view"]}]},"aria":{"implicitRole":"graphics-document","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"baseProfile":{"type":"Any","deprecated":true},"contentScriptType":{"type":"Any","deprecated":true},"contentStyleType":{"type":"Any","deprecated":true},"height":{},"onunload":{"type":"FunctionBody"},"preserveAspectRatio":{"type":"<preserve-aspect-ratio>"},"version":{"type":"Any","deprecated":true},"viewBox":{"type":"<view-box>"},"width":{},"x":{},"y":{}}},"svg:switch":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGShape)","svg|a","svg|foreignObject","svg|g","svg|image","svg|svg","svg|switch","svg|text","svg|use"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"requiredExtensions":{},"systemLanguage":{}}},"svg:symbol":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)",":model(SVGShape)",":model(SVGStructural)","svg|a","svg|clipPath","svg|filter","svg|foreignObject","svg|image","svg|marker","svg|mask","svg|script","svg|style","svg|switch","svg|text","svg|view"]}]},"aria":{"implicitRole":"graphics-object","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"height":{},"preserveAspectRatio":{"type":"<preserve-aspect-ratio>"},"refX":{"type":["<svg-length>","<percentage>","<number>",{"enum":["left","center","right"]}]},"refY":{"type":["<svg-length>","<percentage>","<number>",{"enum":["top","center","bottom"]}]},"viewBox":{"type":"<view-box>"},"width":{},"x":{},"y":{}}},"svg:text":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":["#text",":model(SVGAnimation)",":model(SVGDescriptive)",":model(SVGPaintServer)",":model(SVGTextContentChild)","svg|a","svg|clipPath","svg|marker","svg|mask","svg|script","svg|style"]}]},"aria":{"implicitRole":"group","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"dx":{"type":"<text-coordinate>"},"dy":{"type":"<text-coordinate>"},"lengthAdjust":{"type":{"enum":["spacing","spacingAndGlyphs"],"disallowToSurroundBySpaces":false}},"rotate":{"type":"<list-of-numbers>"},"textLength":{"type":["<svg-length>","<percentage>"]},"x":{"type":"<text-coordinate>"},"y":{"type":"<text-coordinate>"}}},"svg:textPath":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":["#text",":model(SVGDescriptive)",":model(SVGPaintServer)","svg|a","svg|animate","svg|clipPath","svg|marker","svg|mask","svg|script","svg|set","svg|style","svg|tspan"]}]},"aria":{"implicitRole":"group","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs","#XLinkAttrs"],"attributes":{"href":{"type":"URL"},"lengthAdjust":{"type":{"enum":["spacing","spacingAndGlyphs"],"disallowToSurroundBySpaces":false}},"method":{"type":{"enum":["align","stretch"],"disallowToSurroundBySpaces":false}},"path":{"type":"<svg-path>","experimental":true},"side":{"type":{"enum":["left","right"],"disallowToSurroundBySpaces":false},"experimental":true},"spacing":{"type":{"enum":["auto","exact"],"disallowToSurroundBySpaces":false}},"startOffset":{"type":["<svg-length>","<percentage>"]},"textLength":{"type":["<svg-length>","<percentage>"]}}},"svg:title":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGDescriptive)",":model(SVGNeverRendered)","#text"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#GlobalEventAttrs","#SVGCoreAttrs"],"attributes":{}},"svg:tspan":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":["#text",":model(SVGDescriptive)",":model(SVGPaintServer)","svg|a","svg|animate","svg|script","svg|set","svg|style","svg|tspan"]}]},"aria":{"implicitRole":"group","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs"],"attributes":{"dx":{"type":"<text-coordinate>"},"dy":{"type":"<text-coordinate>"},"lengthAdjust":{"type":{"enum":["spacing","spacingAndGlyphs"],"disallowToSurroundBySpaces":false}},"rotate":{"type":"<list-of-numbers>"},"textLength":{"type":["<svg-length>","<percentage>"]},"x":{"type":"<text-coordinate>"},"y":{"type":"<text-coordinate>"}}},"svg:use":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)","svg|clipPath","svg|mask","svg|script","svg|style"]}]},"aria":{"implicitRole":"graphics-object","permittedRoles":"any"},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGConditionalProcessingAttrs","#SVGCoreAttrs","#SVGPresentationAttrs","#XLinkAttrs"],"attributes":{"height":{},"href":{"type":"URL"},"width":{},"x":{},"xlink:href":{"deprecated":true},"y":{}}},"svg:view":{"categories":[],"contentModel":{"contents":[{"zeroOrMore":[":model(SVGAnimation)",":model(SVGDescriptive)","svg|script","svg|style"]}]},"aria":{"permittedRoles":[]},"globalAttrs":["#ARIAAttrs","#GlobalEventAttrs","#HTMLGlobalAttrs","#SVGCoreAttrs"],"attributes":{"preserveAspectRatio":{"type":"<preserve-aspect-ratio>"},"viewBox":{"type":"<view-box>"},"viewTarget":{"type":"Any","deprecated":true},"zoomAndPan":{"type":{"enum":["disable","magnify"]},"deprecated":true}}}},"contentModels":{"#metadata":["base","link","meta","noscript","script","style","template","title"],"#flow":["a","abbr","address","area","article","aside","audio","b","bdi","bdo","blockquote","br","button","canvas","cite","code","data","datalist","del","details","dfn","dialog","div","dl","em","embed","fieldset","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","input","ins","kbd","label","link[itemprop]","link[rel=dns-prefetch]","link[rel=modulepreload]","link[rel=pingback]","link[rel=preconnect]","link[rel=prefetch]","link[rel=preload]","link[rel=prerender]","link[rel=stylesheet]","main","map","mark","math","menu","meta[itemprop]","meter","nav","noscript","object","ol","output","p","picture","pre","progress","q","ruby","s","samp","script","search","section","select","slot","small","span","strong","sub","sup","svg|svg","table","template","textarea","time","u","ul","var","video","wbr","#custom","#text"],"#sectioning":["article","aside","nav","section"],"#heading":["h1","h2","h3","h4","h5","h6","hgroup:has(h1,h2,h3,h4,h5,h6)"],"#phrasing":["a","abbr","area","audio","b","bdi","bdo","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","label","link[itemprop]","link[rel=dns-prefetch]","link[rel=modulepreload]","link[rel=pingback]","link[rel=preconnect]","link[rel=prefetch]","link[rel=preload]","link[rel=prerender]","link[rel=stylesheet]","map","mark","math","meta[itemprop]","meter","noscript","object","output","picture","progress","q","ruby","s","samp","script","select","slot","small","span","strong","sub","sup","svg|svg","template","textarea","time","u","var","video","wbr","#custom","#text"],"#embedded":["audio","canvas","embed","iframe","img","math","object","picture","svg|svg","video"],"#interactive":["a[href]","audio[controls]","button","details","embed","iframe","img[usemap]","input:not([type='hidden' i])","label","select","textarea","video[controls]"],"#palpable":["a","abbr","address","article","aside","audio[controls]","b","bdi","bdo","blockquote","button","canvas","cite","code","data","del","details","dfn","div","dl:has(>:is(dt+dd))","em","embed","fieldset","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","i","iframe","img","input:not([type='hidden' i])","ins","kbd","label","main","map","mark","math","menu:has(>li)","meter","nav","object","ol:has(>li)","output","p","picture","pre","progress","q","ruby","s","samp","search","section","select","small","span","strong","sub","sup ","svg","table","textarea","time","u","ul:has(>li)","var","video","#custom","#text"],"#script-supporting":["script","template"],"#SVGAnimation":["svg|animate","svg|animateColor","svg|animateMotion","svg|animateTransform","svg|discard","svg|mpath","svg|set"],"#SVGBasicShapes":["svg|circle","svg|ellipse","svg|line","svg|polygon","svg|polyline","svg|rect"],"#SVGContainer":["svg|a","svg|defs","svg|g","svg|marker","svg|mask","svg|missing-glyph","svg|pattern","svg|svg","svg|switch","svg|symbol"],"#SVGDescriptive":["svg|desc","svg|metadata","svg|title"],"#SVGFilterPrimitive":["svg|feBlend","svg|feColorMatrix","svg|feComponentTransfer","svg|feComposite","svg|feConvolveMatrix","svg|feDiffuseLighting","svg|feDisplacementMap","svg|feDropShadow","svg|feFlood","svg|feFuncA","svg|feFuncB","svg|feFuncG","svg|feFuncR","svg|feGaussianBlur","svg|feImage","svg|feMerge","svg|feMergeNode","svg|feMorphology","svg|feOffset","svg|feSpecularLighting","svg|feTile","svg|feTurbulence"],"#SVGFont":["svg|font","svg|font-face","svg|font-face-format","svg|font-face-name","svg|font-face-src","svg|font-face-uri","svg|hkern","svg|vkern"],"#SVGGradient":["svg|linearGradient","svg|radialGradient","svg|stop"],"#SVGGraphics":["svg|circle","svg|ellipse","svg|image","svg|line","svg|path","svg|polygon","svg|polyline","svg|rect","svg|text","svg|use"],"#SVGGraphicsReferencing":["svg|use"],"#SVGLightSource":["svg|feDistantLight","svg|fePointLight","svg|feSpotLight"],"#SVGNeverRendered":["svg|clipPath","svg|defs","svg|linearGradient","svg|marker","svg|mask","svg|metadata","svg|pattern","svg|radialGradient","svg|script","svg|style","svg|symbol","svg|title"],"#SVGPaintServer":["svg|linearGradient","svg|pattern","svg|radialGradient","svg|solidcolor"],"#SVGRenderable":["svg|a","svg|circle","svg|ellipse","svg|foreignObject","svg|g","svg|image","svg|line","svg|path","svg|polygon","svg|polyline","svg|rect","svg|svg","svg|switch","svg|symbol","svg|text","svg|textPath","svg|tspan","svg|unknown","svg|use"],"#SVGShape":["svg|circle","svg|ellipse","svg|line","svg|path","svg|polygon","svg|polyline","svg|rect"],"#SVGStructural":["svg|defs","svg|g","svg|svg","svg|symbol","svg|use"],"#SVGStructurallyExternal":[],"#SVGTextContent":["svg|altGlyph","svg|altGlyphDef","svg|altGlyphItem","svg|glyph","svg|glyphRef","svg|textPath","svg|text","svg|tref","svg|tspan"],"#SVGTextContentChild":["svg|altGlyph","svg|textPath","svg|tref","svg|tspan"]},"globalAttrs":{"#HTMLGlobalAttrs":{"accesskey":{"type":{"token":"OneCodePointChar","ordered":true,"unique":true,"number":"zeroOrMore","separator":"space"}},"autocapitalize":{"type":{"enum":["off","on","none","sentences","words","characters"],"disallowToSurroundBySpaces":true,"invalidValueDefault":"sentences","missingValueDefault":"default","sameStates":{"none":["off"],"sentences":["on"]}}},"autocorrect":{"type":{"enum":["","on","off"],"disallowToSurroundBySpaces":true,"invalidValueDefault":"on","missingValueDefault":"on","sameStates":{"on":[""]}}},"autofocus":{"type":"Boolean"},"contenteditable":{"type":{"enum":["","true","false","plaintext-only"],"disallowToSurroundBySpaces":true,"invalidValueDefault":"inherit","missingValueDefault":"inherit","sameStates":{"true":[""]}}},"dir":{"type":{"enum":["ltr","rtl","auto"]}},"draggable":{"type":{"enum":["true","false"],"invalidValueDefault":"auto","missingValueDefault":"auto"}},"enterkeyhint":{"type":{"enum":["enter","done","go","next","previous","search","send"]}},"headingoffset":{"type":{"type":"integer","gte":0,"lte":8}},"headingreset":{"type":"Boolean"},"hidden":{"type":{"enum":["","hidden","until-found"]}},"inert":{"type":"Boolean"},"inputmode":{"type":{"enum":["none","text","tel","url","email","numeric","decimal","search"]}},"is":{"type":"CustomElementName"},"itemid":{"type":"URL"},"itemprop":{"type":{"token":"ItemProp","ordered":false,"unique":true,"separator":"space"}},"itemref":{"type":{"token":"DOMID","separator":"space"},"condition":"[itemscope]"},"itemscope":{"type":"Boolean"},"itemtype":{"type":{"token":"AbsoluteURL","ordered":false,"unique":true,"separator":"space"}},"lang":{"type":"BCP47"},"nonce":{"type":"Any"},"popover":{"type":{"enum":["","auto","manual","hint"],"disallowToSurroundBySpaces":true,"invalidValueDefault":"manual","missingValueDefault":"no popover","sameStates":{"auto":[""]}}},"spellcheck":{"type":{"enum":["","true","false"],"disallowToSurroundBySpaces":true,"invalidValueDefault":"default","missingValueDefault":"default","sameStates":{"true":[""]}}},"style":{"type":"<css-declaration-list>"},"tabindex":{"type":"TabIndex"},"title":{"type":"Any"},"translate":{"type":{"enum":["","yes","no"],"disallowToSurroundBySpaces":true,"invalidValueDefault":"inherit","missingValueDefault":"inherit","sameStates":{"yes":[""]}}},"writingsuggestions":{"type":{"enum":["","true","false"],"disallowToSurroundBySpaces":true,"invalidValueDefault":"default","missingValueDefault":"default","sameStates":{"true":[""]}}},"class":{"type":"Any"},"id":{"type":"DOMID"},"slot":{"type":"NoEmptyAny"},"xmlns":{"type":"URL","ineffective":"*"},"xml:lang":{"type":"BCP47","deprecated":true},"xml:space":{"type":{"enum":["default","preserve"]},"deprecated":true},"elementtiming":{"type":"NoEmptyAny","experimental":true}},"#GlobalEventAttrs":{"onabort":{"type":"FunctionBody"},"onauxclick":{"type":"FunctionBody"},"onbeforeinput":{"type":"FunctionBody"},"onbeforematch":{"type":"FunctionBody"},"onbeforetoggle":{"type":"FunctionBody"},"onblur":{"type":"FunctionBody"},"oncancel":{"type":"FunctionBody"},"oncanplay":{"type":"FunctionBody"},"oncanplaythrough":{"type":"FunctionBody"},"onchange":{"type":"FunctionBody"},"onclick":{"type":"FunctionBody"},"onclose":{"type":"FunctionBody"},"oncommand":{"type":"FunctionBody"},"oncontextlost":{"type":"FunctionBody"},"oncompositionstart":{"type":"FunctionBody"},"oncompositionupdate":{"type":"FunctionBody"},"oncompositionend":{"type":"FunctionBody"},"oncontextmenu":{"type":"FunctionBody"},"oncontextrestored":{"type":"FunctionBody"},"oncopy":{"type":"FunctionBody"},"oncuechange":{"type":"FunctionBody"},"oncut":{"type":"FunctionBody"},"ondblclick":{"type":"FunctionBody"},"ondrag":{"type":"FunctionBody"},"ondragend":{"type":"FunctionBody"},"ondragenter":{"type":"FunctionBody"},"ondragleave":{"type":"FunctionBody"},"ondragover":{"type":"FunctionBody"},"ondragstart":{"type":"FunctionBody"},"ondrop":{"type":"FunctionBody"},"ondurationchange":{"type":"FunctionBody"},"onemptied":{"type":"FunctionBody"},"onended":{"type":"FunctionBody"},"onerror":{"type":"FunctionBody"},"onfocus":{"type":"FunctionBody"},"onformdata":{"type":"FunctionBody"},"onfocusin":{"type":"FunctionBody"},"onfocusout":{"type":"FunctionBody"},"oninput":{"type":"FunctionBody"},"oninvalid":{"type":"FunctionBody"},"onkeydown":{"type":"FunctionBody"},"onkeypress":{"type":"FunctionBody"},"onkeyup":{"type":"FunctionBody"},"onload":{"type":"FunctionBody"},"onloadeddata":{"type":"FunctionBody"},"onloadedmetadata":{"type":"FunctionBody"},"onloadstart":{"type":"FunctionBody"},"onmousedown":{"type":"FunctionBody"},"onmouseenter":{"type":"FunctionBody"},"onmouseleave":{"type":"FunctionBody"},"onmousemove":{"type":"FunctionBody"},"onmouseout":{"type":"FunctionBody"},"onmouseover":{"type":"FunctionBody"},"onmouseup":{"type":"FunctionBody"},"onpaste":{"type":"FunctionBody"},"onpause":{"type":"FunctionBody"},"onplay":{"type":"FunctionBody"},"onplaying":{"type":"FunctionBody"},"onprogress":{"type":"FunctionBody"},"onratechange":{"type":"FunctionBody"},"onreset":{"type":"FunctionBody"},"onresize":{"type":"FunctionBody"},"onscroll":{"type":"FunctionBody"},"onscrollend":{"type":"FunctionBody"},"onsecuritypolicyviolation":{"type":"FunctionBody"},"onseeked":{"type":"FunctionBody"},"onseeking":{"type":"FunctionBody"},"onselect":{"type":"FunctionBody"},"onslotchange":{"type":"FunctionBody"},"onstalled":{"type":"FunctionBody"},"onsubmit":{"type":"FunctionBody"},"onsuspend":{"type":"FunctionBody"},"ontimeupdate":{"type":"FunctionBody"},"ontoggle":{"type":"FunctionBody"},"onvolumechange":{"type":"FunctionBody"},"onwaiting":{"type":"FunctionBody"},"onunload":{"type":"FunctionBody"},"onwheel":{"type":"FunctionBody"},"onanimationstart":{"type":"FunctionBody"},"onanimationiteration":{"type":"FunctionBody"},"onanimationend":{"type":"FunctionBody"},"onanimationcancel":{"type":"FunctionBody"},"ontransitionrun":{"type":"FunctionBody"},"ontransitionstart":{"type":"FunctionBody"},"ontransitionend":{"type":"FunctionBody"},"ontransitioncancel":{"type":"FunctionBody"},"onwebkitanimationend":{"type":"FunctionBody","deprecated":true},"onwebkitanimationiteration":{"type":"FunctionBody","deprecated":true},"onwebkitanimationstart":{"type":"FunctionBody","deprecated":true},"onwebkittransitionend":{"type":"FunctionBody","deprecated":true}},"#HTMLLinkAndFetchingAttrs":{"href":{"type":"URL"},"target":{"type":"NavigableTargetNameOrKeyword","condition":"[href]"},"download":{"type":"Any","condition":"[href]"},"ping":{"type":{"token":"HTTPSchemaURL","separator":"space"},"condition":"[href]"},"rel":{"type":"LinkTypeForAnchorAndAreaElement","condition":"[href]"},"hreflang":{"type":"BCP47","condition":"[href]"},"type":{"type":"MIMEType","condition":"[href]"},"referrerpolicy":{"type":{"enum":["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]},"condition":"[href], [src]"},"loading":{"type":{"enum":["lazy","eager"],"invalidValueDefault":"eager","missingValueDefault":"eager"}},"integrity":{"type":"Any"},"media":{"type":"<media-query-list>"},"crossorigin":{"type":{"enum":["","anonymous","use-credentials"],"invalidValueDefault":"anonymous","missingValueDefault":"No CORS","sameStates":{"anonymous":[""]}}},"fetchpriority":{"type":{"enum":["high","low","auto"],"invalidValueDefault":"auto","missingValueDefault":"auto"}}},"#HTMLEmbededAndMediaContentAttrs":{"src":{"type":"URL"},"preload":{"type":{"enum":["none","metadata","auto"],"invalidValueDefault":"implementation-defined","missingValueDefault":"implementation-defined"}},"autoplay":{"type":"Boolean"},"loop":{"type":"Boolean"},"muted":{"type":"Boolean"},"controls":{"type":"Boolean"},"height":{"type":"Uint"},"srcset":{"type":"Srcset"},"sizes":{"type":"SourceSizeList"},"width":{"type":"Uint"}},"#HTMLFormControlElementAttrs":{"autocomplete":{"type":"AutoComplete"},"dirname":{"type":"NoEmptyAny"},"disabled":{"type":"Boolean"},"form":{"type":"DOMID"},"formaction":{"type":"URL"},"formenctype":{"type":{"enum":["application/x-www-form-urlencoded","multipart/form-data","text/plain"],"invalidValueDefault":"application/x-www-form-urlencoded"}},"formmethod":{"type":{"enum":["post","get","dialog"],"invalidValueDefault":"get"}},"formnovalidate":{"type":"Boolean"},"formtarget":{"type":"NavigableTargetNameOrKeyword"},"name":{"type":"NoEmptyAny"},"maxlength":{"type":"Uint"},"minlength":{"type":"Uint"},"readonly":{"type":"Boolean"},"required":{"type":"Boolean"}},"#HTMLTableCellElementAttrs":{"colspan":{"type":{"type":"integer","gt":0,"lte":1000}},"rowspan":{"type":{"type":"integer","gt":0,"lte":65534}},"headers":{"type":{"token":"DOMID","ordered":false,"unique":true,"separator":"space"}}},"#ARIAAttrs":{"role":{"type":{"token":"NoEmptyAny","separator":"space"}}},"#SVGAnimationAdditionAttrs":{"additive":{"type":{"enum":["replace","sum"]}},"accumulate":{"type":{"enum":["none","sum"]}}},"#SVGAnimationAttributeTargetAttrs":{"attributeName":{"type":"XMLName"},"attributeType":{"type":{"enum":["CSS","XML","auto"]},"noUse":true}},"#SVGAnimationEventAttrs":{"onbegin":{"type":"FunctionBody"},"onend":{"type":"FunctionBody"},"onrepeat":{"type":"FunctionBody"}},"#SVGAnimationTargetElementAttrs":{"href":{"type":"URL"},"xlink:href":{"type":"URL","deprecated":true}},"#SVGAnimationTimingAttrs":{"begin":{"type":"<begin-value-list>"},"dur":{"type":["<clock-value>",{"enum":["media","indefinite"]}]},"end":{"type":"<end-value-list>"},"min":{"type":"<clock-value>"},"max":{"type":"<clock-value>"},"restart":{"type":{"enum":["always","whenNotActive","never"]}},"repeatCount":{"type":["<number>",{"enum":["indefinite"]}]},"repeatDur":{"type":["<clock-value>",{"enum":["indefinite"]}]},"fill":{"type":{"enum":["freeze","remove"]}}},"#SVGAnimationValueAttrs":{"calcMode":{"type":{"enum":["discrete","linear","paced","spline"]}},"values":{"type":"<list-of-value>"},"keyTimes":{"type":"<key-times>"},"keySplines":{"type":"<key-splines>"},"from":{"type":"<animatable-value>"},"to":{"type":"<animatable-value>"},"by":{"type":"<animatable-value>"},"accelerate":{"type":"<number-zero-one>"},"decelerate":{"type":"<number-zero-one>"},"autoReverse":{"type":{"enum":["true","false"]}},"speed":{"type":"<number>"}},"#SVGConditionalProcessingAttrs":{"requiredExtensions":{"type":{"token":"URL","unique":true,"separator":"space"}},"systemLanguage":{"type":{"token":"BCP47","unique":true,"separator":"comma"}},"requiredFeatures":{"type":"<list-of-svg-feature-string>","deprecated":true}},"#SVGCoreAttrs":{"id":{"type":"DOMID"},"tabindex":{"type":"TabIndex"},"autofocus":{"type":"Boolean"},"lang":{"type":"BCP47"},"class":{"type":"Any"},"style":{"type":"<css-declaration-list>"},"xmlns":{"type":"URL","ineffective":":not(:root)"},"xml:space":{"type":{"enum":["default","preserve"]},"deprecated":true},"xml:lang":{"type":"BCP47","deprecated":true},"xml:base":{"type":"URL","deprecated":true}},"#SVGFilterPrimitiveAttrs":{"x":{"type":["<svg-length>","<percentage>"]},"y":{"type":["<svg-length>","<percentage>"]},"width":{"type":["<svg-length>","<percentage>"]},"height":{"type":["<svg-length>","<percentage>"]},"result":{"type":"<custom-ident>"},"in":{"type":[{"enum":["SourceGraphic","SourceAlpha","BackgroundImage","BackgroundAlpha","FillPaint","StrokePaint"],"disallowToSurroundBySpaces":false},"<custom-ident>"]}},"#SVGPresentationAttrs":{"cx":{"type":["<svg-length>","<percentage>"]},"cy":{"type":["<svg-length>","<percentage>"]},"height":{"type":["<svg-length>","<'height'>"]},"width":{"type":["<svg-length>","<'width'>"]},"x":{"type":["<svg-length>","<percentage>"]},"y":{"type":["<svg-length>","<percentage>"]},"r":{"type":["<svg-length>","<percentage>"]},"rx":{"type":["<svg-length>","<percentage>",{"enum":["auto"]}]},"ry":{"type":["<svg-length>","<percentage>",{"enum":["auto"]}]},"d":{"type":"<svg-path>"},"transform":{"type":"<'transform'>"},"transform-origin":{"type":"<'transform-origin'>"},"patternTransform":{"type":"<transform-list>"},"gradientTransform":{"type":"<transform-list>"},"alignment-baseline":{"type":"<'alignment-baseline'>"},"baseline-shift":{"type":"<'baseline-shift'>"},"clip-path":{"type":"<'clip-path'>"},"clip-rule":{"type":"<'clip-rule'>"},"color":{"type":"<color>"},"color-interpolation":{"type":{"enum":["auto","sRGB","linearRGB"],"disallowToSurroundBySpaces":false}},"color-interpolation-filters":{"type":{"enum":["auto","sRGB","linearRGB"],"disallowToSurroundBySpaces":false}},"cursor":{"type":"<'cursor'>"},"direction":{"type":"<'direction'>"},"display":{"type":"<'display'>"},"dominant-baseline":{"type":"<'dominant-baseline'>"},"fill":{"type":"<'fill'>"},"fill-opacity":{"type":"<'fill-opacity'>"},"fill-rule":{"type":"<'fill-rule'>"},"filter":{"type":"<'filter'>"},"flood-color":{"type":"<color>"},"flood-opacity":{"type":"<alpha-value>"},"font":{"type":"<'font'>"},"font-family":{"type":"<'font-family'>"},"font-size":{"type":"<svg-font-size>"},"font-size-adjust":{"type":"<svg-font-size-adjust>"},"font-stretch":{"type":"<'font-stretch'>"},"font-style":{"type":"<'font-style'>"},"font-variant":{"type":"<'font-variant'>"},"font-weight":{"type":"<'font-weight'>"},"glyph-orientation-horizontal":{"type":"<'glyph-orientation-horizontal'>","deprecated":true},"glyph-orientation-vertical":{"type":"<'glyph-orientation-vertical'>","deprecated":true},"image-rendering":{"type":"<'image-rendering'>"},"isolation":{"type":"<'isolation'>"},"letter-spacing":{"type":"<'letter-spacing'>"},"lighting-color":{"type":"<color>"},"marker":{"type":"<'marker'>"},"marker-end":{"type":"<'marker-end'>"},"marker-mid":{"type":"<'marker-mid'>"},"marker-start":{"type":"<'marker-start'>"},"mask":{"type":"<'mask'>"},"mask-type":{"type":"<'mask-type'>"},"opacity":{"type":"<alpha-value>"},"overflow":{"type":"<'overflow'>"},"paint-order":{"type":"<'paint-order'>"},"pointer-events":{"type":"<'pointer-events'>"},"shape-rendering":{"type":"<'shape-rendering'>"},"stop-color":{"type":"<'color'>"},"stop-opacity":{"type":"<'opacity'>"},"stroke":{"type":"<'stroke'>"},"stroke-dasharray":{"type":"<'stroke-dasharray'>"},"stroke-dashoffset":{"type":"<'stroke-dashoffset'>"},"stroke-linecap":{"type":"<'stroke-linecap'>"},"stroke-linejoin":{"type":"<'stroke-linejoin'>"},"stroke-miterlimit":{"type":"<'stroke-miterlimit'>"},"stroke-opacity":{"type":"<'stroke-opacity'>"},"stroke-width":{"type":"<'stroke-width'>"},"text-anchor":{"type":"<'text-anchor'>"},"text-decoration":{"type":"<'text-decoration'>"},"text-overflow":{"type":"<'text-overflow'>"},"text-rendering":{"type":"<'text-rendering'>"},"unicode-bidi":{"type":"<'unicode-bidi'>"},"vector-effect":{"type":{"enum":["none","non-scaling-stroke","non-scaling-size","non-rotation","fixed-position"]}},"visibility":{"type":"<'visibility'>"},"white-space":{"type":"<'white-space'>"},"word-spacing":{"type":"<'word-spacing'>"},"writing-mode":{"type":"<'writing-mode'>"},"clip":{"type":"<'clip'>","deprecated":true},"color-profile":{"type":"<'color-profile'>","deprecated":true},"color-rendering":{"type":"<'color-rendering'>","deprecated":true},"enable-background":{"type":"<'enable-background'>","deprecated":true},"kerning":{"type":"<'kerning'>","deprecated":true}},"#SVGTransferFunctionAttrs":{"type":{"type":{"enum":["identity","table","discrete","linear","gamma"]}},"tableValues":{"type":"<list-of-numbers>"},"slope":{"type":"<number>"},"intercept":{"type":"<number>"},"amplitude":{"type":"<number>"},"exponent":{"type":"<number>"},"offset":{"type":"<number>"}},"#XLinkAttrs":{"xlink:href":{"type":"URL","deprecated":true},"xlink:title":{"type":"Any","deprecated":true},"xlink:type":{"type":{"enum":["simple"]},"deprecated":true},"xlink:role":{"type":"Any","deprecated":true},"xlink:arcrole":{"type":"URL","deprecated":true},"xlink:show":{"type":{"enum":["new","replace","embed","other","none"]},"deprecated":true},"xlink:actuate":{"type":"Any","deprecated":true}}},"aria":{"roles":{"alert":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"alertdialog":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-modal"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"application":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"article":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-posinset"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-setsize"}],"prohibitedProperties":[]},"banner":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"blockquote":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"button":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-pressed"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"caption":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"cell":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-colindex"},{"name":"aria-colindextext"},{"name":"aria-colspan"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-rowindex"},{"name":"aria-rowindextext"},{"name":"aria-rowspan"}],"prohibitedProperties":[]},"checkbox":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-checked"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-required"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"code":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"columnheader":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-colindex"},{"name":"aria-colindextext"},{"name":"aria-colspan"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-required"},{"name":"aria-roledescription"},{"name":"aria-rowindex"},{"name":"aria-rowindextext"},{"name":"aria-rowspan"},{"name":"aria-selected"},{"name":"aria-sort"}],"prohibitedProperties":[]},"combobox":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-autocomplete"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-required"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"command":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"comment":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-level"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-posinset"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-setsize"}],"prohibitedProperties":[]},"complementary":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"composite":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"contentinfo":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"definition":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"deletion":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"dialog":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-modal"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"directory":{"deprecated":true,"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"document":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"emphasis":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"feed":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"figure":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"form":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"generic":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"}],"prohibitedProperties":["aria-braillelabel","aria-brailleroledescription","aria-label","aria-labelledby","aria-roledescription"]},"grid":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-colcount"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-multiselectable"},{"name":"aria-owns"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-rowcount"}],"prohibitedProperties":[]},"gridcell":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-colindex"},{"name":"aria-colindextext"},{"name":"aria-colspan"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-required"},{"name":"aria-roledescription"},{"name":"aria-rowindex"},{"name":"aria-rowindextext"},{"name":"aria-rowspan"},{"name":"aria-selected"}],"prohibitedProperties":[]},"group":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"heading":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-level"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"image":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"img":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"input":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"insertion":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"landmark":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"link":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"list":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"listbox":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-multiselectable"},{"name":"aria-orientation"},{"name":"aria-owns"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-required"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"listitem":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-posinset"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-setsize"}],"prohibitedProperties":[]},"log":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"main":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"mark":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"marquee":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"math":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"menu":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-orientation"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"menubar":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-orientation"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"menuitem":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-posinset"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-setsize"}],"prohibitedProperties":[]},"menuitemcheckbox":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-checked"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-posinset"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-setsize"}],"prohibitedProperties":[]},"menuitemradio":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-checked"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-posinset"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-setsize"}],"prohibitedProperties":[]},"meter":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-valuemax"},{"name":"aria-valuemin"},{"name":"aria-valuenow"},{"name":"aria-valuetext"}],"prohibitedProperties":[]},"navigation":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"none":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"note":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"option":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-checked"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-posinset"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-selected"},{"name":"aria-setsize"}],"prohibitedProperties":[]},"paragraph":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"presentation":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"progressbar":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-valuemax"},{"name":"aria-valuemin"},{"name":"aria-valuenow"},{"name":"aria-valuetext"}],"prohibitedProperties":[]},"radio":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-checked"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-posinset"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-setsize"}],"prohibitedProperties":[]},"radiogroup":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-orientation"},{"name":"aria-owns"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-required"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"range":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-valuemax"},{"name":"aria-valuemin"},{"name":"aria-valuenow"},{"name":"aria-valuetext"}],"prohibitedProperties":[]},"region":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"roletype":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"row":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-colindex"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-level"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-posinset"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-rowindex"},{"name":"aria-rowindextext"},{"name":"aria-selected"},{"name":"aria-setsize"}],"prohibitedProperties":[]},"rowgroup":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"rowheader":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-colindex"},{"name":"aria-colindextext"},{"name":"aria-colspan"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-required"},{"name":"aria-roledescription"},{"name":"aria-rowindex"},{"name":"aria-rowindextext"},{"name":"aria-rowspan"},{"name":"aria-selected"},{"name":"aria-sort"}],"prohibitedProperties":[]},"scrollbar":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-orientation"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-valuemax"},{"name":"aria-valuemin"},{"name":"aria-valuenow"},{"name":"aria-valuetext"}],"prohibitedProperties":[]},"search":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"searchbox":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-autocomplete"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-multiline"},{"name":"aria-owns"},{"name":"aria-placeholder"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-required"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"section":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"sectionfooter":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"sectionhead":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"sectionheader":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"select":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-orientation"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"separator":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-orientation"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-valuemax"},{"name":"aria-valuemin"},{"name":"aria-valuenow"},{"name":"aria-valuetext"}],"prohibitedProperties":[]},"slider":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-orientation"},{"name":"aria-owns"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-valuemax"},{"name":"aria-valuemin"},{"name":"aria-valuenow"},{"name":"aria-valuetext"}],"prohibitedProperties":[]},"spinbutton":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-required"},{"name":"aria-roledescription"},{"name":"aria-valuemax"},{"name":"aria-valuemin"},{"name":"aria-valuenow"},{"name":"aria-valuetext"}],"prohibitedProperties":[]},"status":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"strong":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"structure":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"subscript":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"suggestion":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"superscript":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"switch":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-checked"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-required"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"tab":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-posinset"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-selected"},{"name":"aria-setsize"}],"prohibitedProperties":[]},"table":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-colcount"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-rowcount"}],"prohibitedProperties":[]},"tablist":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-multiselectable"},{"name":"aria-orientation"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"tabpanel":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"term":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"textbox":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-autocomplete"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-multiline"},{"name":"aria-owns"},{"name":"aria-placeholder"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-required"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"time":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":["aria-braillelabel","aria-label","aria-labelledby"]},"timer":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"toolbar":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-orientation"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"tooltip":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"tree":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-multiselectable"},{"name":"aria-orientation"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-required"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"treegrid":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-colcount"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid"},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-multiselectable"},{"name":"aria-orientation"},{"name":"aria-owns"},{"name":"aria-readonly"},{"name":"aria-relevant"},{"name":"aria-required"},{"name":"aria-roledescription"},{"name":"aria-rowcount"}],"prohibitedProperties":[]},"treeitem":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-checked"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-expanded"},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup"},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-level"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-posinset"},{"name":"aria-relevant"},{"name":"aria-roledescription"},{"name":"aria-selected"},{"name":"aria-setsize"}],"prohibitedProperties":[]},"widget":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"window":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-modal"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"graphics-document":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"graphics-object":{"ownedProperties":[{"name":"aria-activedescendant"},{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled"},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]},"graphics-symbol":{"ownedProperties":[{"name":"aria-atomic"},{"name":"aria-braillelabel"},{"name":"aria-brailleroledescription"},{"name":"aria-busy"},{"name":"aria-controls"},{"name":"aria-current"},{"name":"aria-describedby"},{"name":"aria-description"},{"name":"aria-details"},{"name":"aria-disabled","deprecated":true},{"name":"aria-dropeffect"},{"name":"aria-errormessage","deprecated":true},{"name":"aria-flowto"},{"name":"aria-grabbed"},{"name":"aria-haspopup","deprecated":true},{"name":"aria-hidden"},{"name":"aria-invalid","deprecated":true},{"name":"aria-keyshortcuts"},{"name":"aria-label"},{"name":"aria-labelledby"},{"name":"aria-live"},{"name":"aria-owns"},{"name":"aria-relevant"},{"name":"aria-roledescription"}],"prohibitedProperties":[]}},"deprecatedProps":["aria-dropeffect","aria-grabbed"]}}`);
2686
+
2662
2687
  // src/rules/a11y/aria-data.ts
2663
2688
  import { roles, aria } from "aria-query";
2664
2689
  var ARIA_1_3_ROLES = /* @__PURE__ */ new Set(["comment", "image", "sectionheader", "sectionfooter", "suggestion"]);
@@ -2755,6 +2780,7 @@ function isInteractiveContainer(tag, attrs) {
2755
2780
  }
2756
2781
 
2757
2782
  // src/component-parse.ts
2783
+ var KNOWN_TAGS = new Set(Object.keys(HTML_SPEC.elements).map((k) => k.replace(/^svg:/, "").toLowerCase()));
2758
2784
  function unwrapTs(expr) {
2759
2785
  let cur = expr;
2760
2786
  while (cur !== void 0 && (cur.type === "TSSatisfiesExpression" || cur.type === "TSAsExpression" || cur.type === "TSNonNullExpression"))
@@ -3394,6 +3420,67 @@ function classifyAttrValue(value) {
3394
3420
  }
3395
3421
  return { expression: true };
3396
3422
  }
3423
+ var CHAIN_BREAKS = /* @__PURE__ */ new Set([
3424
+ "Component",
3425
+ "SvelteComponent",
3426
+ "SvelteSelf",
3427
+ "SvelteElement",
3428
+ "SlotElement",
3429
+ "RenderTag",
3430
+ "HtmlTag",
3431
+ "SnippetBlock",
3432
+ "SvelteHead"
3433
+ ]);
3434
+ var SILENT_BREAKS = /* @__PURE__ */ new Set(["SnippetBlock", "SvelteHead"]);
3435
+ function collectElements(node, source, acc, inSvg, parent) {
3436
+ if (Array.isArray(node)) {
3437
+ for (const child of node) collectElements(child, source, acc, inSvg, parent);
3438
+ return;
3439
+ }
3440
+ if (!node || typeof node !== "object") return;
3441
+ let next = inSvg;
3442
+ let nextParent = parent;
3443
+ if (typeof node.type === "string" && CHAIN_BREAKS.has(node.type)) {
3444
+ if (parent !== void 0 && !SILENT_BREAKS.has(node.type)) acc[parent].unknownContent = true;
3445
+ nextParent = void 0;
3446
+ } else if (node.type === "RegularElement" && typeof node.name === "string" && Array.isArray(node.attributes)) {
3447
+ const tag = node.name.toLowerCase();
3448
+ const self = inSvg || tag === "svg";
3449
+ const hasSpread = node.attributes.some((a) => a?.type === "SpreadAttribute");
3450
+ acc.push({
3451
+ tag,
3452
+ line: lineOf(source, node.start),
3453
+ attrs: node.attributes.filter((a) => a?.type === "Attribute" && typeof a.name === "string").map((a) => {
3454
+ const value = a.value === true ? "" : attrValueOf(a) === "static" ? attrTextOf(a) ?? void 0 : void 0;
3455
+ return {
3456
+ name: String(a.name).toLowerCase(),
3457
+ line: lineOf(source, a.start ?? node.start),
3458
+ ...value !== void 0 ? { value } : {}
3459
+ };
3460
+ }),
3461
+ ...self ? { inSvg: true } : {},
3462
+ ...parent !== void 0 ? { parent } : {},
3463
+ ...hasSpread ? { hasSpread: true } : {}
3464
+ });
3465
+ if (tag.includes("-") || !KNOWN_TAGS.has(tag)) {
3466
+ if (parent !== void 0) acc[parent].unknownContent = true;
3467
+ nextParent = void 0;
3468
+ } else nextParent = acc.length - 1;
3469
+ if (tag === "svg") next = true;
3470
+ else if (tag === "foreignobject") next = false;
3471
+ }
3472
+ for (const key of CHILD_NODE_KEYS) {
3473
+ if (key in node) collectElements(node[key], source, acc, next, nextParent);
3474
+ }
3475
+ }
3476
+ function selectNativeRole(attributes) {
3477
+ if (findAttr(attributes, "multiple") !== void 0) return "listbox";
3478
+ const size = findAttr(attributes, "size");
3479
+ if (size === void 0) return "combobox";
3480
+ const v = attrValueOf(size);
3481
+ if (v !== "static") return void 0;
3482
+ return Number(attrTextOf(size)) > 1 ? "listbox" : "combobox";
3483
+ }
3397
3484
  function collectAriaElements(node, source, acc) {
3398
3485
  if (Array.isArray(node)) {
3399
3486
  for (const child of node) collectAriaElements(child, source, acc);
@@ -3407,12 +3494,16 @@ function collectAriaElements(node, source, acc) {
3407
3494
  );
3408
3495
  if (roleAttr || ariaAttrs.length > 0) {
3409
3496
  const inputType = node.name === "input" ? attrText(node.attributes, "type") : void 0;
3497
+ const hasList = node.name === "input" && findAttr(node.attributes, "list") !== void 0;
3498
+ const selectKind = node.name === "select" ? selectNativeRole(node.attributes) : void 0;
3410
3499
  const hasSpread = node.attributes.some((a) => a?.type === "SpreadAttribute");
3411
3500
  acc.push({
3412
3501
  tag: node.name,
3413
3502
  line: lineOf(source, node.start),
3414
3503
  ...roleAttr ? { role: classifyAttrValue(roleAttr.value) } : {},
3415
3504
  ...inputType !== void 0 ? { inputType: inputType.toLowerCase() } : {},
3505
+ ...hasList ? { hasList: true } : {},
3506
+ ...selectKind ? { selectKind } : {},
3416
3507
  ...hasSpread ? { hasSpread: true } : {},
3417
3508
  aria: ariaAttrs.map((a) => ({
3418
3509
  name: String(a.name).toLowerCase(),
@@ -3639,29 +3730,55 @@ function collectUnassociatedLabels(node, source, acc) {
3639
3730
  }
3640
3731
  var BULLET_TEXT_RE = /^[•・·\-*]\s/;
3641
3732
  var VERBATIM_TEXT_TAGS = /* @__PURE__ */ new Set(["pre", "code", "kbd", "samp", "textarea"]);
3642
- function collectBulletTexts(node, source, acc, inert, afterExpression = false) {
3733
+ function collectBulletTexts(node, source, acc, inert, afterExpression = false, reported = /* @__PURE__ */ new WeakSet()) {
3643
3734
  if (Array.isArray(node)) {
3644
3735
  let prevWasExpression = afterExpression;
3736
+ let group = [];
3737
+ const flush = () => {
3738
+ if (group.length >= 2) {
3739
+ for (const b of group) {
3740
+ if (reported.has(b.text)) continue;
3741
+ reported.add(b.text);
3742
+ acc.push({ line: b.line, char: b.char });
3743
+ }
3744
+ }
3745
+ group = [];
3746
+ };
3747
+ const bulletOf = (text, after) => {
3748
+ if (!text || typeof text !== "object" || text.type !== "Text" || after) return void 0;
3749
+ const trimmed = String(text.data ?? "").trim();
3750
+ return BULLET_TEXT_RE.test(trimmed) ? { line: lineOf(source, text.start), char: trimmed[0], text } : void 0;
3751
+ };
3645
3752
  for (const child of node) {
3646
- collectBulletTexts(child, source, acc, inert, prevWasExpression);
3647
- if (child && typeof child === "object" && child.type !== "Comment") {
3648
- prevWasExpression = child.type === "ExpressionTag";
3753
+ if (!child || typeof child !== "object") continue;
3754
+ if (child.type === "Text") {
3755
+ const b = inert ? void 0 : bulletOf(child, prevWasExpression);
3756
+ if (b) group.push(b);
3757
+ else if (String(child.data ?? "").trim()) flush();
3758
+ } else if (child.type === "Comment" || child.type === "RegularElement" && child.name === "br") {
3759
+ } else {
3760
+ let item;
3761
+ if (!inert && child.type === "RegularElement" && child.name !== "li" && !VERBATIM_TEXT_TAGS.has(child.name)) {
3762
+ const first = (child.fragment?.nodes ?? []).find(
3763
+ (n) => !(n?.type === "Text" && !String(n.data ?? "").trim()) && n?.type !== "Comment"
3764
+ );
3765
+ item = bulletOf(first, prevWasExpression);
3766
+ }
3767
+ if (item) group.push(item);
3768
+ else flush();
3769
+ collectBulletTexts(child, source, acc, inert, prevWasExpression, reported);
3649
3770
  }
3771
+ if (child.type !== "Comment") prevWasExpression = child.type === "ExpressionTag";
3650
3772
  }
3773
+ flush();
3651
3774
  return;
3652
3775
  }
3653
3776
  if (!node || typeof node !== "object") return;
3654
- if (node.type === "Text") {
3655
- const trimmed = String(node.data ?? "").trim();
3656
- if (!inert && !afterExpression && BULLET_TEXT_RE.test(trimmed)) {
3657
- acc.push({ line: lineOf(source, node.start), char: trimmed[0] });
3658
- }
3659
- return;
3660
- }
3777
+ if (node.type === "Text") return;
3661
3778
  if (node.type === "SnippetBlock") return;
3662
3779
  const nowInert = inert || node.type === "RegularElement" && (node.name === "li" || VERBATIM_TEXT_TAGS.has(node.name));
3663
3780
  for (const key of CHILD_NODE_KEYS) {
3664
- if (key in node) collectBulletTexts(node[key], source, acc, nowInert);
3781
+ if (key in node) collectBulletTexts(node[key], source, acc, nowInert, false, reported);
3665
3782
  }
3666
3783
  }
3667
3784
  function selectNeedsPlaceholder(attributes) {
@@ -4378,6 +4495,8 @@ function parseComponentFacts(source, filename) {
4378
4495
  collectCheckableBindValues(ast.fragment ?? ast, source, checkableBindValues);
4379
4496
  const ariaElements = [];
4380
4497
  collectAriaElements(ast.fragment ?? ast, source, ariaElements);
4498
+ const elements = [];
4499
+ collectElements(ast.fragment ?? ast, source, elements, ast.options?.namespace === "svg");
4381
4500
  const interactiveNestings = [];
4382
4501
  collectInteractiveNestings(ast.fragment ?? ast, source, interactiveNestings, []);
4383
4502
  const unnamedInteractive = [];
@@ -4596,6 +4715,7 @@ function parseComponentFacts(source, filename) {
4596
4715
  suppressions,
4597
4716
  commentLinks: collectCommentLinks(source),
4598
4717
  ariaElements,
4718
+ elements,
4599
4719
  interactiveNestings,
4600
4720
  unnamedInteractive,
4601
4721
  unassociatedLabels,
@@ -5564,21 +5684,21 @@ var architectureDirectoryNaming = {
5564
5684
  const excludedDirs = [];
5565
5685
  for (const dir of [...dirs].sort()) {
5566
5686
  const o = resolveRuleOptions(ID5, OPTIONS4, ctx.config, { route: dir, file: dir }, compiledOverrides);
5567
- const declared = mapOption(o, "directories");
5568
- if (Object.keys(declared).length === 0) continue;
5687
+ const declared2 = mapOption(o, "directories");
5688
+ if (Object.keys(declared2).length === 0) continue;
5569
5689
  const excluded = compile(listOption(o, "exclude"));
5570
5690
  if (isExcluded(dir, ancestorDirs2(dir), excluded)) {
5571
5691
  excludedDirs.push(dir);
5572
5692
  continue;
5573
5693
  }
5574
- const live = Object.keys(declared).filter((k) => casingsOf(declared[k]).known.length > 0);
5694
+ const live = Object.keys(declared2).filter((k) => casingsOf(declared2[k]).known.length > 0);
5575
5695
  const m = matchKeys(dir, compile(live, true));
5576
5696
  for (const k of m.matched) if (globalKeys.has(k)) usedKeys.add(k);
5577
5697
  if (m.best === void 0) continue;
5578
5698
  const decoded = decodeSegment(baseName(dir));
5579
5699
  if (decoded === void 0) continue;
5580
5700
  if (globalKeys.has(m.best)) examinedCounts[m.best] = (examinedCounts[m.best] ?? 0) + 1;
5581
- const allowed = casingsOf(declared[m.best]).known;
5701
+ const allowed = casingsOf(declared2[m.best]).known;
5582
5702
  if (satisfiesCasing(decoded, allowed)) continue;
5583
5703
  const at = reportAt(dir, files);
5584
5704
  if (at === void 0) continue;
@@ -6042,9 +6162,9 @@ var routeEntryImportsCache = /* @__PURE__ */ new WeakMap();
6042
6162
  function cachedRouteEntryImports(c, ctx) {
6043
6163
  const cached = routeEntryImportsCache.get(c);
6044
6164
  if (cached !== void 0 && cached.aliases === ctx.project.kitAliases) return cached.result;
6045
- const result3 = routeEntryImports(c, ctx);
6046
- routeEntryImportsCache.set(c, { aliases: ctx.project.kitAliases, result: result3 });
6047
- return result3;
6165
+ const result5 = routeEntryImports(c, ctx);
6166
+ routeEntryImportsCache.set(c, { aliases: ctx.project.kitAliases, result: result5 });
6167
+ return result5;
6048
6168
  }
6049
6169
  var architectureRouteComponentImport = componentRule({
6050
6170
  id: ID8,
@@ -6301,8 +6421,11 @@ var a11yUnknownAriaAttribute = componentRule({
6301
6421
  rationale: "An `aria-*` name that does not exist in WAI-ARIA is not recognized by assistive technology, so the attribute is silently ignored instead of doing what the author intended.",
6302
6422
  recommendation: "Use a spec-defined `aria-*` attribute; unknown names are ignored by assistive technology.",
6303
6423
  applies: (c) => (c.ariaElements ?? []).some((e) => e.aria.length > 0),
6424
+ // Anchored at the element's start tag, not the attribute's line: a `disable-next-line` directive
6425
+ // can only sit above the tag, so an attribute-line anchor on a multi-line element would leave the
6426
+ // documented lever with no position that works.
6304
6427
  bad: (c) => (c.ariaElements ?? []).flatMap(
6305
- (e) => e.aria.filter((a) => !isKnownAriaAttribute(a.name)).map((a) => ({ line: a.line, message: `\`${a.name}\` is not a WAI-ARIA attribute` }))
6428
+ (e) => e.aria.filter((a) => !isKnownAriaAttribute(a.name)).map((a) => ({ line: e.line, message: `\`${a.name}\` is not a WAI-ARIA attribute` }))
6306
6429
  )
6307
6430
  });
6308
6431
 
@@ -6311,8 +6434,20 @@ var HOST_SUPPLIED = {
6311
6434
  "aria-checked": (e) => e.tag === "input" && (e.inputType === "checkbox" || e.inputType === "radio"),
6312
6435
  "aria-selected": (e) => e.tag === "option",
6313
6436
  "aria-level": (e) => /^h[1-6]$/.test(e.tag),
6314
- "aria-valuenow": (e) => e.tag === "input" && e.inputType === "range" || e.tag === "progress" || e.tag === "meter"
6437
+ "aria-valuenow": (e) => e.tag === "input" && e.inputType === "range" || e.tag === "progress" || e.tag === "meter",
6438
+ // HTML-AAM: a `<select>` without `multiple`/`size > 1`, and a text-like `<input list>`, are native
6439
+ // comboboxes whose open/closed state and popup relationship the user agent exposes itself, so an
6440
+ // explicit `role="combobox"` on them owes neither `aria-expanded` nor `aria-controls`. (The
6441
+ // compiler warns on `<input list>` here; staying silent is not the opposite verdict, and HTML-AAM
6442
+ // is the source for the host's own semantics.)
6443
+ "aria-expanded": isNativeCombobox,
6444
+ "aria-controls": isNativeCombobox
6315
6445
  };
6446
+ var LIST_INPUT_TYPES = /* @__PURE__ */ new Set([void 0, "text", "search", "tel", "url", "email"]);
6447
+ function isNativeCombobox(e) {
6448
+ if (e.tag === "select") return e.selectKind === "combobox";
6449
+ return e.tag === "input" && e.hasList === true && LIST_INPUT_TYPES.has(e.inputType);
6450
+ }
6316
6451
  var a11yRequiredAriaProps = componentRule({
6317
6452
  id: "a11y/required-aria-props",
6318
6453
  title: "Missing required ARIA props",
@@ -6348,8 +6483,10 @@ function isValid(type, values, literal) {
6348
6483
  return literal === "true" || literal === "false" || literal === "mixed";
6349
6484
  case "token":
6350
6485
  return (values ?? []).includes(literal);
6351
- case "tokenlist":
6352
- return splitTokens(literal).every((t) => (values ?? []).includes(t));
6486
+ case "tokenlist": {
6487
+ const tokens = splitTokens(literal);
6488
+ return tokens.length > 0 && tokens.every((t) => (values ?? []).includes(t));
6489
+ }
6353
6490
  case "integer":
6354
6491
  return /^-?\d+$/.test(literal);
6355
6492
  case "number":
@@ -6372,7 +6509,7 @@ var a11yInvalidAriaValue = componentRule({
6372
6509
  const kind = ariaValueKind(a.name);
6373
6510
  if (kind === void 0) return [];
6374
6511
  if (isValid(kind.type, kind.values, a.literal)) return [];
6375
- return [{ line: a.line, message: `\`${a.name}="${a.literal}"\` is not a valid ${kind.type} value` }];
6512
+ return [{ line: e.line, message: `\`${a.name}="${a.literal}"\` is not a valid ${kind.type} value` }];
6376
6513
  })
6377
6514
  )
6378
6515
  });
@@ -6466,65 +6603,554 @@ var a11yRequireDatetime = componentRule({
6466
6603
  }))
6467
6604
  });
6468
6605
 
6469
- // src/rules/a11y/doctype.ts
6470
- var present3 = { presence: "own", value: "static" };
6471
- var absent3 = { presence: "none", value: "absent" };
6472
- var FIX8 = {
6473
- description: "Add <!doctype html> as the first line of src/app.html.",
6474
- snippet: "<!doctype html>",
6475
- lang: "html"
6476
- };
6477
- var a11yDoctype = {
6478
- id: "a11y/doctype",
6479
- title: "Doctype",
6606
+ // src/html-spec/index.ts
6607
+ function htmlElement(tag) {
6608
+ return HTML_SPEC.elements[tag.toLowerCase()];
6609
+ }
6610
+ function isObsoleteElement(tag) {
6611
+ return htmlElement(tag)?.obsolete === true;
6612
+ }
6613
+ function elementAttr(tag, name) {
6614
+ return htmlElement(tag)?.attributes[name.toLowerCase()];
6615
+ }
6616
+ function isDeprecatedAttr(tag, name) {
6617
+ const a = elementAttr(tag, name);
6618
+ return a?.deprecated === true || a?.obsolete === true;
6619
+ }
6620
+
6621
+ // src/rules/a11y/deprecated-element.ts
6622
+ var a11yDeprecatedElement = componentRule({
6623
+ id: "a11y/deprecated-element",
6624
+ title: "Obsolete HTML element",
6480
6625
  category: "a11y",
6481
- // `info`, not `warning`: the accessibility half of this rule's premise has no source MDN's
6482
- // quirks-mode guide is about layout, and WCAG 4.1.1 Parsing is obsolete and removed. The layout
6483
- // claim stands, so the rule stays; its weight follows the evidence that remains.
6626
+ // `info`: the element still renders and browsers keep it working; the cost is that assistive
6627
+ // technology and future browsers get no guarantee of its semantics. Severity tracks the evidence.
6484
6628
  severity: "info",
6485
- scope: "project",
6486
- rationale: "Without a doctype browsers render in quirks mode, which applies different layout and box-model rules than the standards mode a page is otherwise laid out under.",
6487
- fix: FIX8,
6488
- async check(ctx) {
6489
- const { appHtmlDoctype } = ctx.project;
6490
- if (appHtmlDoctype === void 0) return [];
6629
+ label: "Obsolete elements",
6630
+ rationale: "Elements in the HTML standard's obsolete-features list (`<center>`, `<font>`, `<strike>`, \u2026) are non-conforming: browsers keep rendering them for legacy pages, but their semantics are unspecified for assistive technology and each has a conforming replacement.",
6631
+ recommendation: "Replace the element with its conforming equivalent \u2014 `<s>` for `<strike>`, `<span>` plus CSS for `<font>`/`<center>`/`<big>` \u2014 and move presentation to CSS.",
6632
+ // Every HTML element is judged, so a component with none obsolete passes rather than going unrecorded.
6633
+ applies: (c) => (c.elements ?? []).some((e) => !e.inSvg),
6634
+ bad: (c) => (c.elements ?? []).filter((e) => !e.inSvg && isObsoleteElement(e.tag)).map((e) => ({ line: e.line, message: `<${e.tag}> is an obsolete element` }))
6635
+ });
6636
+
6637
+ // src/rules/a11y/deprecated-attr.ts
6638
+ var a11yDeprecatedAttr = componentRule({
6639
+ id: "a11y/deprecated-attr",
6640
+ title: "Deprecated HTML attribute",
6641
+ category: "a11y",
6642
+ // `info`, as for deprecated-element: the attribute may still work today; the finding is that the
6643
+ // spec no longer defines what it means, and a CSS or modern-attribute replacement exists.
6644
+ severity: "info",
6645
+ label: "Deprecated attributes",
6646
+ rationale: "An attribute the HTML spec data marks deprecated (`iframe[frameborder]`, `td[width]`, `body[bgcolor]`, \u2026) has its behavior defined by legacy browser compatibility rather than by the standard, and each has a CSS or modern-attribute replacement. Coverage is what the dataset marks deprecated or obsolete on that element, and its `deprecated` flag tracks MDN's status; attributes the dataset does not list at all \u2014 WHATWG-obsolete ones MDN never documented, like `p[align]` \u2014 are not reported.",
6647
+ recommendation: "Move the presentation to CSS, or use the modern attribute the deprecated one was superseded by.",
6648
+ // Every attributed HTML element is judged, so a clean component passes rather than going unrecorded.
6649
+ applies: (c) => (c.elements ?? []).some((e) => !e.inSvg && e.attrs.length > 0),
6650
+ bad: (c) => (c.elements ?? []).filter((e) => !e.inSvg && !htmlElement(e.tag)?.obsolete).flatMap((e) => {
6651
+ const names = e.attrs.filter((a) => isDeprecatedAttr(e.tag, a.name)).map((a) => a.name);
6652
+ if (names.length === 0) return [];
6653
+ const list = names.map((n) => `\`${n}\``).join(", ");
6491
6654
  return [
6492
6655
  {
6493
- id: "a11y/doctype",
6494
- category: "a11y",
6495
- severity: "info",
6496
- detection: appHtmlDoctype ? present3 : absent3,
6497
- location: "src/app.html",
6498
- message: appHtmlDoctype ? "<!doctype html>" : "src/app.html is missing <!doctype html>",
6499
- recommendation: "Add <!doctype html> as the first line of src/app.html.",
6500
- docsUrl: docsUrlFor("a11y/doctype"),
6501
- fix: { ...FIX8 }
6656
+ line: e.line,
6657
+ message: `${list} on <${e.tag}> ${names.length === 1 ? "is a deprecated attribute" : "are deprecated attributes"}`
6502
6658
  }
6503
6659
  ];
6660
+ })
6661
+ });
6662
+
6663
+ // src/rules/a11y/role-candidates.ts
6664
+ var ELEMENT_FACT_OVERRIDES = {
6665
+ hgroup: { implicitRole: "group" },
6666
+ address: { implicitRole: "group" }
6667
+ };
6668
+ function roleCandidates(e) {
6669
+ if (e.role?.expression) return void 0;
6670
+ if (e.role?.literal !== void 0) {
6671
+ const role = resolveRole(e.role.literal.trim().split(/\s+/));
6672
+ return role ? { explicit: true, roles: [role], namingProhibited: false } : void 0;
6673
+ }
6674
+ if (e.hasSpread) return void 0;
6675
+ const el = HTML_SPEC.elements[e.tag];
6676
+ if (!el) return void 0;
6677
+ const aria2 = ELEMENT_FACT_OVERRIDES[e.tag] ?? el.aria;
6678
+ const roles2 = [aria2.implicitRole ?? false];
6679
+ for (const c of Object.values(aria2.conditions ?? {})) {
6680
+ if ("implicitRole" in c) roles2.push(c.implicitRole ?? false);
6681
+ }
6682
+ return { explicit: false, roles: [...new Set(roles2)], namingProhibited: aria2.namingProhibited === true };
6683
+ }
6684
+ function roleRow(role) {
6685
+ return role === false ? void 0 : HTML_SPEC.aria.roles[role];
6686
+ }
6687
+
6688
+ // src/rules/a11y/disallowed-aria-props.ts
6689
+ var NAMING = /* @__PURE__ */ new Set(["aria-label", "aria-labelledby", "aria-braillelabel"]);
6690
+ var COMPILER_ACCEPTS = /* @__PURE__ */ new Set([
6691
+ "listitem aria-level",
6692
+ "tablist aria-level",
6693
+ "listbox aria-expanded",
6694
+ "menuitemcheckbox aria-readonly",
6695
+ "menuitemcheckbox aria-required",
6696
+ "menuitemradio aria-readonly",
6697
+ "menuitemradio aria-required",
6698
+ "graphics-document aria-expanded",
6699
+ "graphics-object aria-expanded",
6700
+ "graphics-symbol aria-expanded"
6701
+ ]);
6702
+ var a11yDisallowedAriaProps = componentRule({
6703
+ id: "a11y/disallowed-aria-props",
6704
+ title: "ARIA attribute not allowed on this role",
6705
+ category: "a11y",
6706
+ severity: "warning",
6707
+ label: "ARIA attributes match their role",
6708
+ rationale: "An `aria-*` attribute the element's role does not support is ignored by assistive technology, and one the role prohibits \u2014 a name on a `generic` `<div>` or `<span>`, on a `<p>`, on `<label>` \u2014 is worse than ignored: it is a name the author believes is exposed and is not. Judged against the ARIA 1.3 role tables, on the explicit role when there is one and otherwise on every implicit role the element can have.",
6709
+ recommendation: 'Give the element a role that supports the attribute (`role="group"`, `role="region"`, `role="img"`), move the attribute to the element that owns the semantics, or drop it.',
6710
+ applies: (c) => (c.ariaElements ?? []).some((e) => e.aria.length > 0),
6711
+ bad: (c) => (c.ariaElements ?? []).flatMap((e) => {
6712
+ const cand = roleCandidates(e);
6713
+ if (!cand) return [];
6714
+ const rows = cand.roles.map(roleRow);
6715
+ const ownershipKnown = rows.every((r) => r !== void 0);
6716
+ return e.aria.flatMap((a) => {
6717
+ if (!isKnownAriaAttribute(a.name)) return [];
6718
+ if (NAMING.has(a.name) && cand.namingProhibited) {
6719
+ return [
6720
+ { line: e.line, message: `\`${a.name}\` is prohibited on <${e.tag}> \u2014 its role does not take a name` }
6721
+ ];
6722
+ }
6723
+ if (!ownershipKnown) return [];
6724
+ if (rows.every((r) => r.prohibitedProperties.includes(a.name))) {
6725
+ const role = cand.roles.join("/");
6726
+ return [{ line: e.line, message: `\`${a.name}\` is prohibited on role \`${role}\`` }];
6727
+ }
6728
+ if (rows.every((r) => !r.ownedProperties.some((p) => p.name === a.name))) {
6729
+ if (cand.roles.some((r) => COMPILER_ACCEPTS.has(`${r} ${a.name}`))) return [];
6730
+ const role = cand.roles.join("/");
6731
+ return [{ line: e.line, message: `\`${a.name}\` is not supported by role \`${role}\`` }];
6732
+ }
6733
+ return [];
6734
+ });
6735
+ })
6736
+ });
6737
+
6738
+ // src/rules/a11y/deprecated-aria.ts
6739
+ var a11yDeprecatedAria = componentRule({
6740
+ id: "a11y/deprecated-aria",
6741
+ title: "Deprecated ARIA role or attribute",
6742
+ category: "a11y",
6743
+ // `info`: the role or attribute still works in current assistive technology; the finding is that
6744
+ // ARIA 1.3 no longer defines it here, so it may stop meaning anything.
6745
+ severity: "info",
6746
+ label: "ARIA roles and attributes are current",
6747
+ rationale: "ARIA 1.3 deprecates one role (`directory`), two global attributes (`aria-dropeffect`, `aria-grabbed`), and a number of attributes on particular roles \u2014 `aria-haspopup` on `checkbox`, `aria-disabled` on `generic`, and so on. Each still works today and each has been removed from the role's definition, so its meaning there is no longer guaranteed. The Svelte compiler reports the per-role cases on explicit roles as unsupported, since its ARIA data dropped them rather than flagging them; on a bare `<div>`/`<span>` it says nothing.",
6748
+ recommendation: 'Replace `role="directory"` with `role="list"`; drop `aria-dropeffect`/`aria-grabbed`; and move a role-deprecated attribute to an element whose role still defines it, or drop it.',
6749
+ applies: (c) => (c.ariaElements ?? []).some((e) => e.role?.literal !== void 0 || e.aria.length > 0),
6750
+ bad: (c) => (c.ariaElements ?? []).flatMap((e) => {
6751
+ const out = [];
6752
+ const cand = roleCandidates(e);
6753
+ if (cand?.explicit) {
6754
+ const role = cand.roles[0];
6755
+ if (roleRow(role)?.deprecated) out.push({ line: e.line, message: `role="${role}" is deprecated` });
6756
+ }
6757
+ for (const a of e.aria) {
6758
+ if (!isKnownAriaAttribute(a.name)) continue;
6759
+ if (HTML_SPEC.aria.deprecatedProps.includes(a.name)) {
6760
+ out.push({ line: e.line, message: `\`${a.name}\` is deprecated` });
6761
+ continue;
6762
+ }
6763
+ if (!cand) continue;
6764
+ const rows = cand.roles.map(roleRow);
6765
+ if (!rows.every((r) => r !== void 0)) continue;
6766
+ if (rows.every((r) => r.ownedProperties.some((p) => p.name === a.name && p.deprecated))) {
6767
+ out.push({ line: e.line, message: `\`${a.name}\` is deprecated on role \`${cand.roles.join("/")}\`` });
6768
+ }
6769
+ }
6770
+ return out;
6771
+ })
6772
+ });
6773
+
6774
+ // src/rules/a11y/element-declarations.ts
6775
+ var ELEMENTS_OPTION = {
6776
+ kind: "string-list",
6777
+ default: [],
6778
+ pattern: {
6779
+ regex: /^[a-z][a-z0-9-]*$/i,
6780
+ describe: "a bare tag name (letters, digits and hyphens; no selector syntax)"
6504
6781
  }
6505
6782
  };
6506
6783
 
6784
+ // src/rules/a11y/disallowed-element.ts
6785
+ var declared = (o) => new Set(listOption(o, "elements").map((t) => t.toLowerCase()));
6786
+ var a11yDisallowedElement = componentRule({
6787
+ id: "a11y/disallowed-element",
6788
+ title: "Disallowed element",
6789
+ category: "a11y",
6790
+ severity: "warning",
6791
+ label: "No disallowed elements",
6792
+ rationale: "A project can decide that some elements have no place in its markup \u2014 `<iframe>` in content pages, `<font>` anywhere, a legacy custom element mid-migration \u2014 and this rule reports every occurrence of the tags it declares. It has no opinion of its own: with nothing declared it does nothing.",
6793
+ recommendation: "Replace the element with the one the project prefers, or narrow the declaration with an `overrides` entry for the files where it is allowed.",
6794
+ options: { elements: ELEMENTS_OPTION },
6795
+ // Every element is judged once something is declared, so a clean component passes; nothing
6796
+ // declared means nothing is judged, and the file emits no result at all.
6797
+ applies: (c, o) => declared(o).size > 0 && (c.elements ?? []).length > 0,
6798
+ bad: (c, o) => {
6799
+ const set = declared(o);
6800
+ return (c.elements ?? []).filter((e) => set.has(e.tag)).map((e) => ({ line: e.line, message: `<${e.tag}> is disallowed by this project's configuration` }));
6801
+ }
6802
+ });
6803
+
6804
+ // src/html-spec/content-model.ts
6805
+ function splitTop(s) {
6806
+ const out = [];
6807
+ let depth = 0;
6808
+ let cur = "";
6809
+ for (const ch of s) {
6810
+ if (ch === "(" || ch === "[") depth++;
6811
+ else if (ch === ")" || ch === "]") depth--;
6812
+ if (ch === "," && depth === 0) {
6813
+ out.push(cur);
6814
+ cur = "";
6815
+ } else cur += ch;
6816
+ }
6817
+ if (cur.trim()) out.push(cur);
6818
+ return out.map((x) => x.trim()).filter(Boolean);
6819
+ }
6820
+ var INTERACTIVE_ARM_TOKENS = /* @__PURE__ */ new Set([":model(interactive)", "a", "[tabindex]"]);
6821
+ function stripInteractiveArms(parts) {
6822
+ return parts.filter((p) => {
6823
+ if (INTERACTIVE_ARM_TOKENS.has(p)) return false;
6824
+ const has = /^:has\((.*)\)$/.exec(p);
6825
+ if (has) return stripInteractiveArms(splitTop(has[1])).length > 0;
6826
+ return true;
6827
+ });
6828
+ }
6829
+ var Evaluator = class {
6830
+ constructor(els, children) {
6831
+ this.els = els;
6832
+ this.children = children;
6833
+ }
6834
+ els;
6835
+ children;
6836
+ attr(idx, name) {
6837
+ const el = this.els[idx];
6838
+ if (el.hasSpread) return "unknown";
6839
+ const a = el.attrs.find((x) => x.name === name);
6840
+ if (!a) return { present: false };
6841
+ return { present: true, ...a.value !== void 0 ? { value: a.value } : {} };
6842
+ }
6843
+ matchAttr(inner, idx) {
6844
+ const m = /^([a-zA-Z-]+)(?:\s*=\s*'?([^'\s]*)'?(?:\s+i)?)?$/.exec(inner.trim());
6845
+ if (!m) return "unknown";
6846
+ const got = this.attr(idx, m[1].toLowerCase());
6847
+ if (got === "unknown") return "unknown";
6848
+ if (!got.present) return false;
6849
+ if (m[2] === void 0) return true;
6850
+ if (got.value === void 0) return "unknown";
6851
+ return got.value.toLowerCase() === m[2].toLowerCase();
6852
+ }
6853
+ matchCategory(cat, idx) {
6854
+ if (cat === "#custom") return false;
6855
+ const list = HTML_SPEC.contentModels[cat];
6856
+ if (!list) return "unknown";
6857
+ let unknown = false;
6858
+ for (const sel of list) {
6859
+ if (sel === "#text") continue;
6860
+ const r = this.matchSelector(sel, idx);
6861
+ if (r === true) return true;
6862
+ if (r === "unknown") unknown = true;
6863
+ }
6864
+ return unknown ? "unknown" : false;
6865
+ }
6866
+ /** Does the element's subtree contain a match for any of `sels`? Chain breaks bound the subtree. */
6867
+ matchHas(sels, idx) {
6868
+ let unknown = this.els[idx].unknownContent ? "unknown" : false;
6869
+ const stack = [...this.children.get(idx) ?? []];
6870
+ while (stack.length > 0) {
6871
+ const c = stack.pop();
6872
+ for (const sel of sels) {
6873
+ const r = this.matchSelector(sel, c);
6874
+ if (r === true) return true;
6875
+ if (r === "unknown") unknown = "unknown";
6876
+ }
6877
+ if (this.els[c].unknownContent) unknown = "unknown";
6878
+ stack.push(...this.children.get(c) ?? []);
6879
+ }
6880
+ return unknown;
6881
+ }
6882
+ matchSelector(sel, idx) {
6883
+ sel = sel.trim();
6884
+ const el = this.els[idx];
6885
+ if (sel === "*") return true;
6886
+ if (sel === "#text") return false;
6887
+ if (sel.startsWith("#")) return this.matchCategory(sel, idx);
6888
+ const tm = /^[a-zA-Z][a-zA-Z0-9|-]*/.exec(sel);
6889
+ const tag = tm?.[0];
6890
+ if (tag !== void 0) {
6891
+ if (tag.includes("|")) {
6892
+ if (tag !== "svg|svg" || el.tag !== "svg") return false;
6893
+ } else if (tag !== el.tag) return false;
6894
+ }
6895
+ let rest = sel.slice(tag?.length ?? 0);
6896
+ if (tag === void 0 && rest === "") return "unknown";
6897
+ let unknown = false;
6898
+ while (rest !== "") {
6899
+ if (rest.startsWith("[")) {
6900
+ const end = rest.indexOf("]");
6901
+ if (end === -1) return "unknown";
6902
+ const r = this.matchAttr(rest.slice(1, end), idx);
6903
+ rest = rest.slice(end + 1);
6904
+ if (r === false) return false;
6905
+ if (r === "unknown") unknown = true;
6906
+ } else if (rest.startsWith(":")) {
6907
+ const open = rest.indexOf("(");
6908
+ if (open === -1) return "unknown";
6909
+ const fn = rest.slice(1, open);
6910
+ let depth = 1;
6911
+ let i = open + 1;
6912
+ for (; i < rest.length && depth > 0; i++) {
6913
+ if (rest[i] === "(") depth++;
6914
+ else if (rest[i] === ")") depth--;
6915
+ }
6916
+ const arg = rest.slice(open + 1, i - 1);
6917
+ rest = rest.slice(i);
6918
+ if (fn === "model") {
6919
+ const r = this.matchCategory("#" + arg, idx);
6920
+ if (r === false) return false;
6921
+ if (r === "unknown") unknown = true;
6922
+ } else if (fn === "not") {
6923
+ let any = false;
6924
+ let unk = false;
6925
+ for (const part of stripInteractiveArms(splitTop(arg))) {
6926
+ const r = this.matchSelector(part, idx);
6927
+ if (r === true) {
6928
+ any = true;
6929
+ break;
6930
+ }
6931
+ if (r === "unknown") unk = true;
6932
+ }
6933
+ if (any) return false;
6934
+ if (unk) unknown = true;
6935
+ } else if (fn === "has") {
6936
+ const parts = stripInteractiveArms(splitTop(arg));
6937
+ if (parts.length > 0) {
6938
+ const r = this.matchHas(parts, idx);
6939
+ if (r === false) return false;
6940
+ if (r === "unknown") unknown = true;
6941
+ }
6942
+ } else return "unknown";
6943
+ } else return "unknown";
6944
+ }
6945
+ return unknown ? "unknown" : true;
6946
+ }
6947
+ };
6948
+ function flatten(contents, acc, filters) {
6949
+ if (Array.isArray(contents)) {
6950
+ for (const c of contents) flatten(c, acc, filters);
6951
+ return;
6952
+ }
6953
+ if (typeof contents === "string") {
6954
+ acc.push(contents);
6955
+ return;
6956
+ }
6957
+ if (contents !== null && typeof contents === "object") {
6958
+ const o = contents;
6959
+ if (typeof o["transparent"] === "string") filters.push(o["transparent"]);
6960
+ for (const k of ["require", "optional", "oneOrMore", "zeroOrMore", "choice"]) {
6961
+ if (k in o) flatten(o[k], acc, filters);
6962
+ }
6963
+ }
6964
+ }
6965
+ function isClosedEntrySet(entries) {
6966
+ return entries.every(
6967
+ (e) => !e.startsWith("#") && !e.includes(":model(") || /^(?:#|:model\()script-supporting\)?$/.test(e)
6968
+ );
6969
+ }
6970
+ function describeEntries(entries, modelTag) {
6971
+ const tags = [
6972
+ ...new Set(entries.filter((e) => /^[a-zA-Z]/.test(e) && !e.includes("|")).map((e) => /^[a-zA-Z0-9-]+/.exec(e)[0]))
6973
+ ];
6974
+ if (isClosedEntrySet(entries)) {
6975
+ const hasScript = entries.some((e) => e.includes("script-supporting"));
6976
+ if (tags.length === 0) return `\`<${modelTag}>\` admits no element children`;
6977
+ const list = tags.map((t) => `\`<${t}>\``).join(", ");
6978
+ return `\`<${modelTag}>\` admits only ${list}${hasScript ? " and script-supporting elements" : ""}`;
6979
+ }
6980
+ const cat = entries.map((e) => /(?:^#|:model\()([a-zA-Z-]+)/.exec(e)?.[1]).find((c) => c !== void 0 && c !== "script-supporting");
6981
+ return cat !== void 0 ? `\`<${modelTag}>\`'s content model is ${cat} content` : `it is outside \`<${modelTag}>\`'s content model`;
6982
+ }
6983
+ var HEADINGS = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "h6"]);
6984
+ var STRUCTURE_BOUND = /* @__PURE__ */ new Set([
6985
+ "li",
6986
+ "dt",
6987
+ "dd",
6988
+ "tr",
6989
+ "td",
6990
+ "th",
6991
+ "thead",
6992
+ "tbody",
6993
+ "tfoot",
6994
+ "caption",
6995
+ "col",
6996
+ "colgroup",
6997
+ "optgroup",
6998
+ "figcaption",
6999
+ "legend",
7000
+ "summary",
7001
+ "source",
7002
+ "track"
7003
+ ]);
7004
+ function judgeContent(els, children, ancestors, childIdx) {
7005
+ const ev = new Evaluator(els, children);
7006
+ const child = els[childIdx];
7007
+ for (let i = ancestors.length - 1; i >= 0; i--) {
7008
+ const holder = els[ancestors[i]];
7009
+ const spec = HTML_SPEC.elements[holder.tag];
7010
+ if (!spec?.contentModel) return void 0;
7011
+ const cm = spec.contentModel;
7012
+ if (cm.contents === true) return void 0;
7013
+ const violation = (entries2) => ({
7014
+ verdict: "violation",
7015
+ closedModel: isClosedEntrySet(entries2) || HEADINGS.has(child.tag) || HEADINGS.has(holder.tag) || STRUCTURE_BOUND.has(child.tag),
7016
+ admits: describeEntries(entries2, holder.tag),
7017
+ modelTag: holder.tag
7018
+ });
7019
+ if (cm.contents === false) return violation([]);
7020
+ let entries = [];
7021
+ const filters = [];
7022
+ flatten(cm.contents, entries, filters);
7023
+ for (const f of filters) {
7024
+ const r = ev.matchSelector(f, childIdx);
7025
+ if (r === false) return violation(entries);
7026
+ if (r === "unknown") return void 0;
7027
+ }
7028
+ if (cm.conditional) {
7029
+ const grandparent = i >= 1 ? els[ancestors[i - 1]] : void 0;
7030
+ for (const cond of cm.conditional) {
7031
+ const applies = conditionApplies(ev, cond.condition, ancestors[i], holder, grandparent?.tag);
7032
+ if (applies === true) {
7033
+ if (cond.contents === true) return void 0;
7034
+ const repl = [];
7035
+ const rf = [];
7036
+ flatten(cond.contents === false ? [] : cond.contents, repl, rf);
7037
+ for (const f of rf) {
7038
+ const r = ev.matchSelector(f, childIdx);
7039
+ if (r === false) return violation(repl);
7040
+ if (r === "unknown") return void 0;
7041
+ }
7042
+ entries = repl;
7043
+ break;
7044
+ }
7045
+ if (applies === "unknown") {
7046
+ if (cond.contents === true) return void 0;
7047
+ if (cond.contents !== false) flatten(cond.contents, entries, filters);
7048
+ }
7049
+ }
7050
+ }
7051
+ let unknown = false;
7052
+ for (const e of entries) {
7053
+ if (e === "#text") continue;
7054
+ const r = ev.matchSelector(e, childIdx);
7055
+ if (r === true) return void 0;
7056
+ if (r === "unknown") unknown = true;
7057
+ }
7058
+ if (unknown) return void 0;
7059
+ if (filters.length > 0) {
7060
+ if (i > 0) continue;
7061
+ return void 0;
7062
+ }
7063
+ return violation(entries);
7064
+ }
7065
+ return void 0;
7066
+ }
7067
+ function conditionApplies(ev, condition, holderIdx, holder, grandparentTag) {
7068
+ const ancestorForm = /^([a-z]+) > (\[.*\]|[a-z]*(?:\[.*\])?)$/.exec(condition);
7069
+ if (ancestorForm) {
7070
+ const [, anc, selfSel] = ancestorForm;
7071
+ const self = selfSel === "" || selfSel === holder.tag ? true : ev.matchSelector(selfSel.startsWith("[") ? holder.tag + selfSel : selfSel, holderIdx);
7072
+ if (self === false) return false;
7073
+ if (grandparentTag === void 0) return "unknown";
7074
+ if (grandparentTag !== anc) return false;
7075
+ return self;
7076
+ }
7077
+ if (condition.startsWith("[")) return ev.matchSelector(holder.tag + condition, holderIdx);
7078
+ if (/^[a-z-]+$/.test(condition)) return ev.matchSelector(`${holder.tag}[${condition}]`, holderIdx);
7079
+ if (/^[a-z]+\[/.test(condition)) return ev.matchSelector(condition, holderIdx);
7080
+ return "unknown";
7081
+ }
7082
+
7083
+ // src/rules/a11y/permitted-contents.ts
7084
+ var KNOWN_TAGS2 = new Set(Object.keys(HTML_SPEC.elements).map((k) => k.replace(/^svg:/, "").toLowerCase()));
7085
+ var FIX8 = {
7086
+ description: "Move the child to an element its parent permits (e.g. wrap list content in <li>), or change the container to one that admits it (a <div> instead of a misused <ul>, a <span> instead of a block child inside a <button>)."
7087
+ };
7088
+ var COMPILER_CARVEOUT = /* @__PURE__ */ new Set(["option", "optgroup"]);
7089
+ function judgeable(el) {
7090
+ return !el.inSvg && !el.tag.includes("-") && KNOWN_TAGS2.has(el.tag);
7091
+ }
7092
+ var a11yPermittedContents = componentRule({
7093
+ id: "a11y/permitted-contents",
7094
+ title: "Permitted contents",
7095
+ category: "a11y",
7096
+ severity: "warning",
7097
+ label: "Element nesting follows the HTML content models",
7098
+ recommendation: "Restructure the markup so each element sits inside a parent whose content model permits it.",
7099
+ rationale: "An element outside its parent's permitted content \u2014 a `<div>` directly inside `<ul>`, a heading inside a `<button>` \u2014 is markup assistive technology mis-announces: list semantics break, headings lose or pollute their outline role. Judged per child against the HTML content models, membership only.",
7100
+ fix: FIX8,
7101
+ applies: (c) => (c.elements ?? []).length > 0,
7102
+ bad: (c) => {
7103
+ const els = c.elements ?? [];
7104
+ const children = /* @__PURE__ */ new Map();
7105
+ for (let i = 0; i < els.length; i++) {
7106
+ const p = els[i].parent;
7107
+ if (p === void 0) continue;
7108
+ const list = children.get(p);
7109
+ if (list) list.push(i);
7110
+ else children.set(p, [i]);
7111
+ }
7112
+ const out = [];
7113
+ for (let i = 0; i < els.length; i++) {
7114
+ const child = els[i];
7115
+ if (child.parent === void 0 || !judgeable(child)) continue;
7116
+ const ancestors = [];
7117
+ for (let a = child.parent; a !== void 0; a = els[a].parent) ancestors.unshift(a);
7118
+ const parent = els[child.parent];
7119
+ if (!judgeable(parent) || COMPILER_CARVEOUT.has(parent.tag)) continue;
7120
+ const judgment = judgeContent(els, children, ancestors, i);
7121
+ if (!judgment) continue;
7122
+ out.push({
7123
+ line: child.line,
7124
+ message: `\`<${child.tag}>\` is not permitted content here \u2014 ${judgment.admits}`,
7125
+ severity: judgment.closedModel ? "warning" : "info"
7126
+ });
7127
+ }
7128
+ return out;
7129
+ }
7130
+ });
7131
+
6507
7132
  // src/rules/a11y/route-rule.ts
6508
- function resultFactory(id, recommendation12) {
7133
+ function resultFactory(id, recommendation14, severity) {
6509
7134
  const docsUrl12 = docsUrlFor(id);
6510
7135
  return (route, detection, occ, message) => ({
6511
7136
  id,
6512
7137
  category: "a11y",
6513
- severity: "warning",
7138
+ severity,
6514
7139
  detection,
6515
7140
  route,
6516
7141
  location: occ.file,
6517
7142
  ...occ.line > 0 ? { line: occ.line } : {},
6518
7143
  message,
6519
- recommendation: recommendation12,
7144
+ recommendation: recommendation14,
6520
7145
  docsUrl: docsUrl12
6521
7146
  });
6522
7147
  }
6523
7148
  function surplusRule(spec) {
6524
- const result3 = resultFactory(spec.id, spec.recommendation);
7149
+ const result5 = resultFactory(spec.id, spec.recommendation, "warning");
6525
7150
  return {
6526
7151
  id: spec.id,
6527
7152
  title: spec.title,
7153
+ passLabel: spec.passMessage,
6528
7154
  category: "a11y",
6529
7155
  severity: "warning",
6530
7156
  scope: "route",
@@ -6538,16 +7164,100 @@ function surplusRule(spec) {
6538
7164
  first ??= reps[0];
6539
7165
  for (let i = 1; i < reps.length; i++) {
6540
7166
  surplus = true;
6541
- out.push(result3(route.route, PENALIZED, reps[i], spec.message(key, i, reps.length)));
7167
+ out.push(result5(route.route, PENALIZED, reps[i], spec.message(key, i, reps.length, reps[0])));
6542
7168
  }
6543
7169
  }
6544
- if (first && !surplus) out.push(result3(route.route, PASS, { file: first.file, line: 0 }, spec.passMessage));
7170
+ if (first && !surplus) out.push(result5(route.route, PASS, { file: first.file, line: 0 }, spec.passMessage));
6545
7171
  }
6546
7172
  return out;
6547
7173
  }
6548
7174
  };
6549
7175
  }
6550
7176
 
7177
+ // src/rules/a11y/required-element.ts
7178
+ var ID10 = "a11y/required-element";
7179
+ var OPTIONS7 = { elements: ELEMENTS_OPTION };
7180
+ var recommendation10 = "Add the element to the route \u2014 usually in the layout the route composes \u2014 or narrow the declaration with an `overrides` entry for the routes it does not apply to.";
7181
+ var result = resultFactory(ID10, recommendation10, "warning");
7182
+ var a11yRequiredElement = {
7183
+ id: ID10,
7184
+ title: "Required element",
7185
+ category: "a11y",
7186
+ severity: "warning",
7187
+ scope: "route",
7188
+ passLabel: "Required elements present",
7189
+ rationale: "A project can decide that every page must carry certain elements \u2014 a `<main>` landmark, an `<h1>`, a `<nav>` \u2014 and this rule reports a route that composes without one. It has no opinion of its own: with nothing declared it does nothing. Presence is judged across the whole composed route, so an element supplied by a layout, a resolved component or `app.html` counts.",
7190
+ options: OPTIONS7,
7191
+ async check(ctx) {
7192
+ if (!isMentionedAnywhere(ctx.config, ID10)) return [];
7193
+ const compiled = compileOverrides(ctx.config);
7194
+ const out = [];
7195
+ for (const route of ctx.a11y ?? []) {
7196
+ if (route.elementTags === void 0 || route.file === void 0) continue;
7197
+ const o = resolveRuleOptions(ID10, OPTIONS7, ctx.config, { route: route.route, file: route.file }, compiled);
7198
+ const declared2 = [...new Set(listOption(o, "elements").map((t) => t.toLowerCase()))];
7199
+ if (declared2.length === 0) continue;
7200
+ const present4 = new Set(route.elementTags);
7201
+ const missing = declared2.filter((t) => !present4.has(t));
7202
+ const occ = { file: route.file, line: 0 };
7203
+ if (missing.length === 0) {
7204
+ out.push(result(route.route, PASS, occ, "Required elements present"));
7205
+ continue;
7206
+ }
7207
+ if (route.elementsClosed !== true) continue;
7208
+ for (const tag of missing) {
7209
+ out.push(
7210
+ result(
7211
+ route.route,
7212
+ PENALIZED,
7213
+ occ,
7214
+ `<${tag}> is required on every route by this project's configuration and this route has none`
7215
+ )
7216
+ );
7217
+ }
7218
+ }
7219
+ return out;
7220
+ }
7221
+ };
7222
+
7223
+ // src/rules/a11y/doctype.ts
7224
+ var present3 = { presence: "own", value: "static" };
7225
+ var absent3 = { presence: "none", value: "absent" };
7226
+ var FIX9 = {
7227
+ description: "Add <!doctype html> as the first line of src/app.html.",
7228
+ snippet: "<!doctype html>",
7229
+ lang: "html"
7230
+ };
7231
+ var a11yDoctype = {
7232
+ id: "a11y/doctype",
7233
+ title: "Doctype",
7234
+ category: "a11y",
7235
+ // `info`, not `warning`: the accessibility half of this rule's premise has no source — MDN's
7236
+ // quirks-mode guide is about layout, and WCAG 4.1.1 Parsing is obsolete and removed. The layout
7237
+ // claim stands, so the rule stays; its weight follows the evidence that remains.
7238
+ severity: "info",
7239
+ scope: "project",
7240
+ rationale: "Without a doctype browsers render in quirks mode, which applies different layout and box-model rules than the standards mode a page is otherwise laid out under.",
7241
+ fix: FIX9,
7242
+ async check(ctx) {
7243
+ const { appHtmlDoctype } = ctx.project;
7244
+ if (appHtmlDoctype === void 0) return [];
7245
+ return [
7246
+ {
7247
+ id: "a11y/doctype",
7248
+ category: "a11y",
7249
+ severity: "info",
7250
+ detection: appHtmlDoctype ? present3 : absent3,
7251
+ location: "src/app.html",
7252
+ message: appHtmlDoctype ? "<!doctype html>" : "src/app.html is missing <!doctype html>",
7253
+ recommendation: "Add <!doctype html> as the first line of src/app.html.",
7254
+ docsUrl: docsUrlFor("a11y/doctype"),
7255
+ fix: { ...FIX9 }
7256
+ }
7257
+ ];
7258
+ }
7259
+ };
7260
+
6551
7261
  // src/rules/a11y/duplicate-landmark.ts
6552
7262
  var KINDS = ["main", "banner", "contentinfo"];
6553
7263
  var a11yDuplicateLandmark = surplusRule({
@@ -6564,8 +7274,8 @@ var a11yDuplicateLandmark = surplusRule({
6564
7274
  });
6565
7275
 
6566
7276
  // src/rules/a11y/top-level-landmark.ts
6567
- var recommendation10 = "A banner, main, complementary, or contentinfo landmark should not be nested inside another landmark.";
6568
- var result = resultFactory("a11y/top-level-landmark", recommendation10);
7277
+ var recommendation11 = "A banner, main, complementary, or contentinfo landmark should not be nested inside another landmark.";
7278
+ var result2 = resultFactory("a11y/top-level-landmark", recommendation11, "warning");
6569
7279
  var KINDS2 = ["main", "banner", "complementary", "contentinfo"];
6570
7280
  var a11yTopLevelLandmark = {
6571
7281
  id: "a11y/top-level-landmark",
@@ -6578,11 +7288,11 @@ var a11yTopLevelLandmark = {
6578
7288
  const out = [];
6579
7289
  for (const route of ctx.a11y ?? []) {
6580
7290
  for (const nested of route.nestedLandmarks) {
6581
- out.push(result(route.route, PENALIZED, nested, `${nested.kind} landmark is nested inside ${nested.within}`));
7291
+ out.push(result2(route.route, PENALIZED, nested, `${nested.kind} landmark is nested inside ${nested.within}`));
6582
7292
  }
6583
7293
  if (route.nestedLandmarks.length === 0) {
6584
7294
  const first = KINDS2.map((kind) => route.landmarks[kind]?.[0]).find((rep) => rep !== void 0);
6585
- if (first) out.push(result(route.route, PASS, { file: first.file, line: 0 }, "No nested landmarks"));
7295
+ if (first) out.push(result2(route.route, PASS, { file: first.file, line: 0 }, "No nested landmarks"));
6586
7296
  }
6587
7297
  }
6588
7298
  return out;
@@ -6598,20 +7308,20 @@ var a11yIdDuplication = surplusRule({
6598
7308
  // Entries ordered by each id's first representative (file, then line): content-derived and
6599
7309
  // stable — a Record's own-key enumeration would pull integer-like ids ("1") to the front.
6600
7310
  map: (route) => Object.entries(route.ids).sort(([, a], [, b]) => a[0].file.localeCompare(b[0].file) || a[0].line - b[0].line),
6601
- message: (id) => `Duplicate id "${id}"`,
7311
+ message: (id, _i, _n, first) => first.file === "src/app.html" ? `Duplicate id "${id}" \u2014 also defined by the src/app.html shell (line ${first.line})` : `Duplicate id "${id}"`,
6602
7312
  passMessage: "No duplicate ids"
6603
7313
  });
6604
7314
 
6605
7315
  // src/rules/a11y/no-missing-id-ref.ts
6606
- var recommendation11 = "An id reference should point to an id that exists somewhere in the composed route.";
6607
- var result2 = resultFactory("a11y/no-missing-id-ref", recommendation11);
7316
+ var recommendation12 = "An id reference should point to an id that exists somewhere in the composed route.";
7317
+ var result3 = resultFactory("a11y/no-missing-id-ref", recommendation12, "warning");
6608
7318
  var a11yNoMissingIdRef = {
6609
7319
  id: "a11y/no-missing-id-ref",
6610
7320
  title: "No missing id ref",
6611
7321
  category: "a11y",
6612
7322
  severity: "warning",
6613
7323
  scope: "route",
6614
- rationale: 'A `for`/`aria-labelledby`/`aria-describedby`/`aria-controls`/`aria-activedescendant`/`href="#\u2026"` pointing at an id that does not exist leaves assistive tech with a broken association or the browser with a dead in-page link.',
7324
+ rationale: 'An id reference \u2014 `for`, `list`, `headers`, `form`, `popovertarget`, `commandfor`, the ARIA id-reference properties (`aria-labelledby`, `aria-describedby`, `aria-controls`, `aria-owns`, \u2026), or a same-page `href="#\u2026"` \u2014 pointing at an id that does not exist leaves assistive tech with a broken association or the browser with a dead in-page link.',
6615
7325
  async check(ctx) {
6616
7326
  const out = [];
6617
7327
  for (const route of ctx.a11y ?? []) {
@@ -6622,7 +7332,7 @@ var a11yNoMissingIdRef = {
6622
7332
  if (candidates.has(ref.id)) continue;
6623
7333
  hasMissing = true;
6624
7334
  out.push(
6625
- result2(
7335
+ result3(
6626
7336
  route.route,
6627
7337
  PENALIZED,
6628
7338
  ref,
@@ -6632,7 +7342,62 @@ var a11yNoMissingIdRef = {
6632
7342
  }
6633
7343
  if (!hasMissing) {
6634
7344
  const first = route.idRefs[0];
6635
- out.push(result2(route.route, PASS, { file: first.file, line: 0 }, "No missing id references"));
7345
+ out.push(result3(route.route, PASS, { file: first.file, line: 0 }, "No missing id references"));
7346
+ }
7347
+ }
7348
+ return out;
7349
+ }
7350
+ };
7351
+
7352
+ // src/rules/a11y/unverified-id-ref.ts
7353
+ var recommendation13 = "The reference could not be verified against the composed route. Confirm the id exists in the rendered page, or resolve the causes so a11y/no-missing-id-ref can verify it.";
7354
+ var result4 = resultFactory("a11y/unverified-id-ref", recommendation13, "info");
7355
+ var CAUSE_LABEL = {
7356
+ component: "unresolved component",
7357
+ spread: "spread",
7358
+ html: "{@html}",
7359
+ "dynamic-id": "dynamic id"
7360
+ };
7361
+ function causeList(causes) {
7362
+ const shown = causes.slice(0, 3).map((c) => {
7363
+ const name = c.kind === "component" && c.detail ? `${CAUSE_LABEL.component} <${c.detail}>` : CAUSE_LABEL[c.kind];
7364
+ return `${name} at ${c.file}:${c.line}`;
7365
+ });
7366
+ const rest = causes.length - shown.length;
7367
+ return shown.join(", ") + (rest > 0 ? `, +${rest} more` : "");
7368
+ }
7369
+ var passLabel = "All id references match literal ids (composition not fully resolved)";
7370
+ var a11yUnverifiedIdRef = {
7371
+ id: "a11y/unverified-id-ref",
7372
+ title: "Unverified id reference",
7373
+ category: "a11y",
7374
+ severity: "info",
7375
+ scope: "route",
7376
+ defaultOff: true,
7377
+ passLabel,
7378
+ rationale: "Opt-in: on routes a11y/no-missing-id-ref must skip (composition not fully resolved), an id reference that matches no literal id anywhere analyzed is reported as unverifiable \u2014 a real dangling reference and an id hidden inside an unresolved component look the same, so findings need manual confirmation.",
7379
+ async check(ctx) {
7380
+ const out = [];
7381
+ for (const route of ctx.a11y ?? []) {
7382
+ if (route.fullyResolved || route.idRefs.length === 0) continue;
7383
+ const candidates = new Set(route.idCandidates);
7384
+ const causes = causeList(route.unresolvedCauses ?? []);
7385
+ let hasUnverified = false;
7386
+ for (const ref of route.idRefs) {
7387
+ if (candidates.has(ref.id)) continue;
7388
+ hasUnverified = true;
7389
+ out.push(
7390
+ result4(
7391
+ route.route,
7392
+ PENALIZED,
7393
+ ref,
7394
+ `${ref.attr}="${ref.attr === "href" ? "#" : ""}${ref.id}" references an id not found in any analyzed source \u2014 the route is not fully resolved (${causes}); verify the id exists at runtime`
7395
+ )
7396
+ );
7397
+ }
7398
+ if (!hasUnverified) {
7399
+ const first = route.idRefs[0];
7400
+ out.push(result4(route.route, PASS, { file: first.file, line: 0 }, passLabel));
6636
7401
  }
6637
7402
  }
6638
7403
  return out;
@@ -6724,11 +7489,19 @@ var allRules = [
6724
7489
  a11yUseList,
6725
7490
  a11yPlaceholderLabelOption,
6726
7491
  a11yRequireDatetime,
7492
+ a11yDeprecatedElement,
7493
+ a11yDeprecatedAttr,
7494
+ a11yDisallowedAriaProps,
7495
+ a11yDeprecatedAria,
7496
+ a11yDisallowedElement,
7497
+ a11yPermittedContents,
7498
+ a11yRequiredElement,
6727
7499
  a11yDoctype,
6728
7500
  a11yDuplicateLandmark,
6729
7501
  a11yTopLevelLandmark,
6730
7502
  a11yIdDuplication,
6731
- a11yNoMissingIdRef
7503
+ a11yNoMissingIdRef,
7504
+ a11yUnverifiedIdRef
6732
7505
  ];
6733
7506
  function optionInfos(spec) {
6734
7507
  return Object.entries(spec).map(([name, s]) => ({
@@ -6736,7 +7509,8 @@ function optionInfos(spec) {
6736
7509
  kind: s.kind,
6737
7510
  default: s.default,
6738
7511
  ...s.kind === "integer" && s.min !== void 0 ? { min: s.min } : {},
6739
- ...s.kind === "integer" && s.max !== void 0 ? { max: s.max } : {}
7512
+ ...s.kind === "integer" && s.max !== void 0 ? { max: s.max } : {},
7513
+ ...s.kind === "string-list" && s.pattern ? { pattern: s.pattern.describe } : {}
6740
7514
  }));
6741
7515
  }
6742
7516
  function explainRule(id) {
@@ -6762,8 +7536,8 @@ function severityToSarifLevel(sev) {
6762
7536
  function severityToGithubLevel(sev) {
6763
7537
  return sev === "critical" ? "error" : sev === "warning" ? "warning" : "notice";
6764
7538
  }
6765
- function messageText(result3) {
6766
- return result3.recommendation ? `${result3.message} ${result3.recommendation}` : result3.message;
7539
+ function messageText(result5) {
7540
+ return result5.recommendation ? `${result5.message} ${result5.recommendation}` : result5.message;
6767
7541
  }
6768
7542
  var RULE_META = new Map(
6769
7543
  allRules.map((r) => [r.id, { title: r.title, severity: r.severity, docsUrl: docsUrlFor(r.id) }])
@@ -6802,9 +7576,7 @@ function pairKey(category, scope) {
6802
7576
  return `${category}::${scope}`;
6803
7577
  }
6804
7578
  function severityOf(rule, config) {
6805
- const setting = settingSeverity(config.rules[rule.id]);
6806
- if (setting === "off") return void 0;
6807
- return setting ?? rule.severity;
7579
+ return configuredSeverity(rule, config);
6808
7580
  }
6809
7581
  function buildInventory(config, rules = selectRules(allRules, config)) {
6810
7582
  const out = /* @__PURE__ */ new Map();
@@ -6921,17 +7693,17 @@ function computeHealth(results, config) {
6921
7693
  }
6922
7694
 
6923
7695
  // src/reporter/json.ts
6924
- function issueOf(result3) {
7696
+ function issueOf(result5) {
6925
7697
  return {
6926
- id: result3.id,
6927
- category: result3.category ?? "seo",
6928
- title: result3.message,
6929
- detection: result3.detection,
6930
- location: result3.location,
6931
- ...result3.line !== void 0 ? { line: result3.line } : {},
6932
- recommendation: result3.recommendation,
6933
- ...result3.docsUrl ? { docsUrl: result3.docsUrl } : {},
6934
- ...result3.fix ? { fix: result3.fix } : {}
7698
+ id: result5.id,
7699
+ category: result5.category ?? "seo",
7700
+ title: result5.message,
7701
+ detection: result5.detection,
7702
+ location: result5.location,
7703
+ ...result5.line !== void 0 ? { line: result5.line } : {},
7704
+ recommendation: result5.recommendation,
7705
+ ...result5.docsUrl ? { docsUrl: result5.docsUrl } : {},
7706
+ ...result5.fix ? { fix: result5.fix } : {}
6935
7707
  };
6936
7708
  }
6937
7709
  function ruleEvidence(results, config, ruleIds) {
@@ -6944,7 +7716,7 @@ function ruleEvidence(results, config, ruleIds) {
6944
7716
  }
6945
7717
  return out;
6946
7718
  }
6947
- function buildJsonReport(results, config, meta, ruleIds, examined) {
7719
+ function buildJsonReport(results, config, meta, ruleIds, examined, skipped) {
6948
7720
  const { health, categories: byCat, weights } = computeHealth(results, config);
6949
7721
  const summary = summarize(results, config);
6950
7722
  const rules = ruleEvidence(results, config, ruleIds);
@@ -6984,11 +7756,12 @@ function buildJsonReport(results, config, meta, ruleIds, examined) {
6984
7756
  routes,
6985
7757
  siteIssues,
6986
7758
  inventories,
6987
- ...examined && Object.keys(examined).length > 0 ? { examined } : {}
7759
+ ...examined && Object.keys(examined).length > 0 ? { examined } : {},
7760
+ ...skipped && Object.keys(skipped).length > 0 ? { skipped } : {}
6988
7761
  };
6989
7762
  }
6990
- function formatJsonReport(results, config, meta, ruleIds, examined) {
6991
- return JSON.stringify(buildJsonReport(results, config, meta, ruleIds, examined), null, 2);
7763
+ function formatJsonReport(results, config, meta, ruleIds, examined, skipped) {
7764
+ return JSON.stringify(buildJsonReport(results, config, meta, ruleIds, examined, skipped), null, 2);
6992
7765
  }
6993
7766
 
6994
7767
  // src/reporter/sanitize.ts
@@ -7196,6 +7969,7 @@ export {
7196
7969
  isTopFragment,
7197
7970
  stripTextDirective,
7198
7971
  unwrapTs,
7972
+ collectSuppressions,
7199
7973
  collectNamedImportAliases,
7200
7974
  parseModuleProgram,
7201
7975
  parseComponentFacts,
@@ -7227,11 +8001,19 @@ export {
7227
8001
  a11yUseList,
7228
8002
  a11yPlaceholderLabelOption,
7229
8003
  a11yRequireDatetime,
8004
+ a11yDeprecatedElement,
8005
+ a11yDeprecatedAttr,
8006
+ a11yDisallowedAriaProps,
8007
+ a11yDeprecatedAria,
8008
+ a11yDisallowedElement,
8009
+ a11yPermittedContents,
8010
+ a11yRequiredElement,
7230
8011
  a11yDoctype,
7231
8012
  a11yDuplicateLandmark,
7232
8013
  a11yTopLevelLandmark,
7233
8014
  a11yIdDuplication,
7234
8015
  a11yNoMissingIdRef,
8016
+ a11yUnverifiedIdRef,
7235
8017
  allRules,
7236
8018
  explainRule,
7237
8019
  SEVERITY_RANK,
@@ -7248,3 +8030,28 @@ export {
7248
8030
  terminalSafe,
7249
8031
  formatMarkdownReport
7250
8032
  };
8033
+ /*!
8034
+ * HTML spec data projected from @markuplint/html-spec@4.18.0 — https://github.com/markuplint/markuplint
8035
+ *
8036
+ * MIT License
8037
+ *
8038
+ * Copyright (c) 2017-2024 Yusuke Hirao
8039
+ *
8040
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8041
+ * of this software and associated documentation files (the "Software"), to deal
8042
+ * in the Software without restriction, including without limitation the rights
8043
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8044
+ * copies of the Software, and to permit persons to whom the Software is
8045
+ * furnished to do so, subject to the following conditions:
8046
+ *
8047
+ * The above copyright notice and this permission notice shall be included in all
8048
+ * copies or substantial portions of the Software.
8049
+ *
8050
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
8051
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
8052
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
8053
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
8054
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
8055
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
8056
+ * SOFTWARE.
8057
+ */