@svelte-vitals/core 0.55.2 → 0.55.4

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.
@@ -1,6 +1,6 @@
1
1
  import { aria, roles } from "aria-query";
2
2
  import { parse } from "svelte/compiler";
3
- //#region src/types.ts
3
+ // src/types.ts
4
4
  const defaultProject = {
5
5
  hasRobotsTxt: false,
6
6
  hasSitemap: false,
@@ -36,8 +36,7 @@ function defineConfig(config = {}) {
36
36
  ...config
37
37
  };
38
38
  }
39
- //#endregion
40
- //#region src/rule.ts
39
+ // src/rule.ts
41
40
  /** Documentation URL for a rule id. Single source so no per-rule URL can drift (issue #24). */
42
41
  function docsUrlFor(id) {
43
42
  return `https://oekazuma.github.io/svelte-vitals/rules/${id.toLowerCase()}`;
@@ -57,8 +56,7 @@ function isPenalized(detection, treatDynamicAs) {
57
56
  if (detection.value === "dynamic") return treatDynamicAs !== "pass";
58
57
  return false;
59
58
  }
60
- //#endregion
61
- //#region src/summary.ts
59
+ // src/summary.ts
62
60
  function classify(result, config) {
63
61
  if (isPenalized(result.detection, config.treatDynamicAs)) return "fail";
64
62
  if (result.detection.value === "dynamic") return "dynamic";
@@ -97,8 +95,7 @@ function hasFailureAtOrAbove(summary, min) {
97
95
  const threshold = order.indexOf(min);
98
96
  return order.some((sev, idx) => idx >= threshold && summary[sev] > 0);
99
97
  }
100
- //#endregion
101
- //#region src/rules/seo/title-presence.ts
98
+ // src/rules/seo/title-presence.ts
102
99
  const FIX$8 = {
103
100
  description: "Add a <title> inside <svelte:head> (a dynamic title is fine).",
104
101
  snippet: "<svelte:head>\n <title>{data.title}</title>\n</svelte:head>",
@@ -151,8 +148,168 @@ const seoTitlePresence = {
151
148
  });
152
149
  }
153
150
  };
154
- //#endregion
155
- //#region src/rules/seo/head-tag-rule.ts
151
+ // src/kit-module.ts
152
+ /** The root layout — its page options cover the whole app. */
153
+ const ROOT_LAYOUT_RE = /^src\/routes\/\+layout(\.server)?\.(ts|js)$/;
154
+ /** Files whose `ssr` export is a page option — it has no effect in `+server` endpoints or hooks files. */
155
+ const PAGE_OPTION_FILE_RE = /\+(page|layout)(\.server)?\.(ts|js)$/;
156
+ const appSsrCache = /* @__PURE__ */ new WeakMap();
157
+ /**
158
+ * Whether no page is ever server-rendered: the hash router, or a root layout exporting `ssr = false`
159
+ * that no page-option file might turn back on. Universal loads and components then run only in the
160
+ * browser; server files (`+page.server`, `+server`, hooks) still run on the server.
161
+ */
162
+ function appSsrDisabled(scope) {
163
+ if (scope.project?.kitHashRouter) return true;
164
+ const kitModules = scope.kitModules;
165
+ if (!kitModules) return false;
166
+ let hit = appSsrCache.get(kitModules);
167
+ if (hit === void 0) {
168
+ hit = kitModules.some((m) => m.ssrDisabled && ROOT_LAYOUT_RE.test(m.file)) && !kitModules.some((m) => PAGE_OPTION_FILE_RE.test(m.file) && (m.ssrEnabled || m.parseFailed));
169
+ appSsrCache.set(kitModules, hit);
170
+ }
171
+ return hit;
172
+ }
173
+ const ROUTES_DIR$1 = "src/routes";
174
+ /** A `+page`/`+layout` file: its directory, kind, and the `@segment` layout reset (on `.svelte` names). */
175
+ const ROUTE_FILE_RE = /^(src\/routes(?:\/.+)?)\/\+(page|layout)(?:@([^/]*))?(?:\.server)?\.(?:svelte|ts|js)$/;
176
+ const parentDir = (dir) => dir === ROUTES_DIR$1 ? void 0 : dir.slice(0, dir.lastIndexOf("/"));
177
+ /** The nearest ancestor-or-self directory a `@segment` reset names (`''` is the root). */
178
+ function resetTarget(dir, segment) {
179
+ for (let d = dir; d !== void 0; d = parentDir(d)) if (segment === "" ? d === ROUTES_DIR$1 : d.slice(d.lastIndexOf("/") + 1) === segment) return d;
180
+ }
181
+ const routeOptionCache = {
182
+ ssr: /* @__PURE__ */ new WeakMap(),
183
+ csr: /* @__PURE__ */ new WeakMap()
184
+ };
185
+ const optionOn = (m, option) => m.parseFailed || (option === "ssr" ? m.ssrEnabled : m.csrEnabled);
186
+ const optionOff = (m, option) => (option === "ssr" ? m.ssrDisabled : m.csrDisabled) !== void 0;
187
+ /**
188
+ * Per route directory, whether `ssr` or `csr` is off for its page (`page:<dir>`) or layout
189
+ * (`layout:<dir>`). A page takes the nearest export of the option along its own files and then its
190
+ * layout chain, following `+page@x`/`+layout@x` resets as SvelteKit does; an export other than
191
+ * `false` (or `dev`), or an unparsed option file, counts as on. A layout is off only when every page
192
+ * using it is — and the root layout also needs its own opt-out, since it wraps the 404 page.
193
+ */
194
+ function routeOptionOff(scope, which) {
195
+ const kitModules = scope.kitModules ?? [];
196
+ let hit = routeOptionCache[which].get(scope);
197
+ if (hit) return hit;
198
+ const own = {
199
+ universal: /* @__PURE__ */ new Map(),
200
+ server: /* @__PURE__ */ new Map()
201
+ };
202
+ for (const m of kitModules) {
203
+ const match = ROUTE_FILE_RE.exec(m.file);
204
+ if (!match) continue;
205
+ const key = `${match[2]}:${match[1]}`;
206
+ if (optionOn(m, which)) own[m.kind].set(key, "on");
207
+ else if (optionOff(m, which)) own[m.kind].set(key, "off");
208
+ }
209
+ const option = new Map([...own.server, ...own.universal]);
210
+ hit = /* @__PURE__ */ new Map();
211
+ for (const [dir, chain] of pageChains(scope)) {
212
+ const off = [`page:${dir}`, ...chain.map((l) => `layout:${l}`)].map((k) => option.get(k)).find(Boolean) === "off";
213
+ hit.set(`page:${dir}`, off);
214
+ for (const l of chain) hit.set(`layout:${l}`, (hit.get(`layout:${l}`) ?? true) && off);
215
+ }
216
+ if (option.get(`layout:${ROUTES_DIR$1}`) !== "off") hit.delete(`layout:${ROUTES_DIR$1}`);
217
+ routeOptionCache[which].set(scope, hit);
218
+ return hit;
219
+ }
220
+ const chainCache = /* @__PURE__ */ new WeakMap();
221
+ /** Per page directory, the layout directories that wrap it, nearest first, following `+page@x`/`+layout@x` resets as SvelteKit does. */
222
+ function pageChains(scope) {
223
+ let hit = chainCache.get(scope);
224
+ if (hit) return hit;
225
+ const pages = /* @__PURE__ */ new Map();
226
+ const layouts = /* @__PURE__ */ new Map();
227
+ const files = [
228
+ ...scope.sourceFiles ?? [],
229
+ ...(scope.components ?? []).map((c) => c.file),
230
+ ...(scope.kitModules ?? []).map((m) => m.file)
231
+ ];
232
+ for (const file of files) {
233
+ const match = ROUTE_FILE_RE.exec(file);
234
+ if (!match) continue;
235
+ const map = match[2] === "page" ? pages : layouts;
236
+ if (match[3] !== void 0 || !map.has(match[1])) map.set(match[1], match[3]);
237
+ }
238
+ hit = /* @__PURE__ */ new Map();
239
+ for (const [dir, reset] of pages) {
240
+ const chain = [];
241
+ for (let d = reset === void 0 ? dir : resetTarget(dir, reset); d !== void 0;) {
242
+ const layoutReset = layouts.get(d);
243
+ if (layouts.has(d)) chain.push(d);
244
+ d = layoutReset === void 0 ? parentDir(d) : resetTarget(parentDir(d), layoutReset);
245
+ }
246
+ hit.set(dir, chain);
247
+ }
248
+ chainCache.set(scope, hit);
249
+ return hit;
250
+ }
251
+ /** Whether a `+page` file's route sends requests without a session away: its own load or a wrapping layout's does (`loadGated`). */
252
+ function routeGated(file, scope) {
253
+ const match = ROUTE_FILE_RE.exec(file);
254
+ if (!match || match[2] !== "page") return false;
255
+ const gated = /* @__PURE__ */ new Set();
256
+ for (const m of scope.kitModules ?? []) {
257
+ const g = m.loadGated && m.kind === "server" ? ROUTE_FILE_RE.exec(m.file) : null;
258
+ if (g) gated.add(`${g[2]}:${g[1]}`);
259
+ }
260
+ if (gated.size === 0) return false;
261
+ const chain = pageChains(scope).get(match[1]) ?? [];
262
+ return gated.has(`page:${match[1]}`) || chain.some((l) => gated.has(`layout:${l}`));
263
+ }
264
+ /**
265
+ * Whether a `+page` file's route never renders because a layout above it redirects or errors in its
266
+ * `load` on every call (`loadNeverRenders`). Not the root layout: one that sent every request away
267
+ * would leave the app nothing to serve, so that reading is more likely wrong than the app, and acting
268
+ * on it would silence every route.
269
+ */
270
+ function layoutNeverRenders(file, scope) {
271
+ const match = ROUTE_FILE_RE.exec(file);
272
+ if (!match || match[2] !== "page") return false;
273
+ const dead = /* @__PURE__ */ new Set();
274
+ for (const m of scope.kitModules ?? []) {
275
+ const layout = m.loadNeverRenders ? ROUTE_FILE_RE.exec(m.file) : null;
276
+ if (layout?.[2] === "layout" && layout[1] !== ROUTES_DIR$1) dead.add(layout[1]);
277
+ }
278
+ return dead.size > 0 && (pageChains(scope).get(match[1]) ?? []).some((dir) => dead.has(dir));
279
+ }
280
+ /**
281
+ * Whether a `+page` file's route never renders because its own `load` redirects or errors on every
282
+ * request, a build-time `if (building)` aside (`loadNeverRendersOutsideBuild`), and nothing on its chain
283
+ * exports `prerender`, so the build never renders it either.
284
+ */
285
+ function pageRendersOnlyWhenBuilding(file, scope) {
286
+ const match = ROUTE_FILE_RE.exec(file);
287
+ if (!match || match[2] !== "page") return false;
288
+ const at = (m) => ROUTE_FILE_RE.exec(m.file);
289
+ const modules = scope.kitModules ?? [];
290
+ if (!modules.some((m) => m.loadNeverRendersOutsideBuild && at(m)?.[2] === "page" && at(m)?.[1] === match[1])) return false;
291
+ const layouts = /* @__PURE__ */ new Set([match[1], ...pageChains(scope).get(match[1]) ?? []]);
292
+ return !modules.some((m) => {
293
+ const where = m.prerenderExported ? at(m) : null;
294
+ return !!where && (where[2] === "page" ? where[1] === match[1] : layouts.has(where[1]));
295
+ });
296
+ }
297
+ /** Whether a `+page`/`+layout` file (module or component) belongs to a route that is never server-rendered. */
298
+ function routeNeverSsr(file, scope) {
299
+ const match = ROUTE_FILE_RE.exec(file);
300
+ return !!match && (appSsrDisabled(scope) || routeOptionOff(scope, "ssr").get(`${match[2]}:${match[1]}`) === true);
301
+ }
302
+ /** Whether a universal `+page`/`+layout` module never runs in the browser: every page it serves has `csr` off, its own or inherited. */
303
+ function universalNeverCsr(m, scope) {
304
+ if (m.kind !== "universal") return false;
305
+ const match = ROUTE_FILE_RE.exec(m.file);
306
+ return !!match && routeOptionOff(scope, "csr").get(`${match[2]}:${match[1]}`) === true;
307
+ }
308
+ /** Whether a universal `+page`/`+layout` module never runs on the server — its own `ssr = false`, an app-wide one, or one its route inherits. */
309
+ function universalNeverSsr(m, scope) {
310
+ return m.kind === "universal" && (m.ssrDisabled !== void 0 || appSsrDisabled(scope) || routeNeverSsr(m.file, scope));
311
+ }
312
+ // src/rules/seo/head-tag-rule.ts
156
313
  /** Open Graph keys are read from `property=`; `name="og:*"` is the common slip. */
157
314
  function ogMisspelled(key) {
158
315
  return {
@@ -179,6 +336,7 @@ function detect(head, match) {
179
336
  value: "absent"
180
337
  };
181
338
  }
339
+ const GATED_NOTE = "Reported as info: this route's load turns away visitors without a session (a redirect or a 401/403), so search engines never index it.";
182
340
  /** Build a route-scope rule asserting the presence of a single head tag (design §11). */
183
341
  function headTagRule(opts) {
184
342
  const docsUrl = docsUrlFor(opts.id);
@@ -195,15 +353,16 @@ function headTagRule(opts) {
195
353
  const detection = detect(head, opts.match);
196
354
  const misspelled = detection.presence === "none" && opts.misspelled && head.tags.some(opts.misspelled.match) ? opts.misspelled : void 0;
197
355
  const message = misspelled ? misspelled.label : detection.presence === "none" ? `Missing ${opts.label}` : detection.value === "absent" ? `Empty ${opts.label}` : opts.label;
356
+ const gated = opts.infoWhenGated && routeGated(head.file, ctx);
198
357
  return {
199
358
  id: opts.id,
200
359
  category: "seo",
201
- severity: opts.severity,
360
+ severity: gated ? "info" : opts.severity,
202
361
  detection,
203
362
  route: head.route,
204
363
  location: head.file,
205
364
  message,
206
- recommendation: misspelled?.recommendation ?? opts.recommendation,
365
+ recommendation: misspelled?.recommendation ?? (gated ? `${opts.recommendation} ${GATED_NOTE}` : opts.recommendation),
207
366
  docsUrl,
208
367
  ...misspelled ? { fix: { ...misspelled.fix } } : opts.fix ? { fix: { ...opts.fix } } : {}
209
368
  };
@@ -211,12 +370,12 @@ function headTagRule(opts) {
211
370
  }
212
371
  };
213
372
  }
214
- //#endregion
215
- //#region src/rules/seo/description-presence.ts
373
+ // src/rules/seo/description-presence.ts
216
374
  const seoDescriptionPresence = headTagRule({
217
375
  id: "seo/description-presence",
218
376
  title: "Description presence",
219
377
  severity: "warning",
378
+ infoWhenGated: true,
220
379
  match: (t) => t.kind === "meta" && t.name === "description",
221
380
  label: "<meta name=\"description\">",
222
381
  recommendation: "Add a <meta name=\"description\"> in <svelte:head>, or set the description on your meta component.",
@@ -227,13 +386,49 @@ const seoDescriptionPresence = headTagRule({
227
386
  lang: "svelte"
228
387
  }
229
388
  });
230
- //#endregion
231
- //#region src/rules/seo/canonical-url.ts
389
+ // src/head.ts
390
+ /** Whether a `<link>`'s `rel` holds `token`: `rel` is a set of space-separated keywords (`dns-prefetch preconnect`). */
391
+ function hasRel(tag, token) {
392
+ return tag.rel?.split(/\s+/).includes(token) ?? false;
393
+ }
394
+ const JS_MIME_TYPES = /* @__PURE__ */ new Set([
395
+ "application/ecmascript",
396
+ "application/javascript",
397
+ "application/x-ecmascript",
398
+ "application/x-javascript",
399
+ "text/ecmascript",
400
+ "text/javascript",
401
+ "text/javascript1.0",
402
+ "text/javascript1.1",
403
+ "text/javascript1.2",
404
+ "text/javascript1.3",
405
+ "text/javascript1.4",
406
+ "text/javascript1.5",
407
+ "text/jscript",
408
+ "text/livescript",
409
+ "text/x-ecmascript",
410
+ "text/x-javascript"
411
+ ]);
412
+ /** HTML strips only ASCII whitespace from a `type` before matching — `trim()` would also strip
413
+ * U+00A0 etc. and misread a data block as a classic script. */
414
+ const ASCII_WHITESPACE_EDGES = /^[\t\n\f\r ]+|[\t\n\f\r ]+$/g;
415
+ /**
416
+ * Whether a `type` attribute (undefined = absent) makes a `<script>` a classic,
417
+ * render-blocking-capable script. Per the HTML spec, absent and the literal empty string are
418
+ * classic; any other value is ASCII-whitespace-stripped and must match a JavaScript MIME type —
419
+ * so a whitespace-only `type` is a data block, not a classic script.
420
+ */
421
+ function isClassicScriptType(type) {
422
+ if (type === void 0 || type === "") return true;
423
+ return JS_MIME_TYPES.has(type.replace(ASCII_WHITESPACE_EDGES, "").toLowerCase());
424
+ }
425
+ // src/rules/seo/canonical-url.ts
232
426
  const seoCanonicalUrl = headTagRule({
233
427
  id: "seo/canonical-url",
234
428
  title: "Canonical URL",
235
429
  severity: "warning",
236
- match: (t) => t.kind === "link" && t.rel === "canonical",
430
+ infoWhenGated: true,
431
+ match: (t) => t.kind === "link" && hasRel(t, "canonical"),
237
432
  label: "<link rel=\"canonical\">",
238
433
  recommendation: "Add <link rel=\"canonical\"> in <svelte:head>, or set the canonical prop on your meta component.",
239
434
  rationale: "A canonical URL tells search engines which URL is authoritative, preventing duplicate-content dilution across query-string variants of the same page.",
@@ -243,8 +438,7 @@ const seoCanonicalUrl = headTagRule({
243
438
  lang: "svelte"
244
439
  }
245
440
  });
246
- //#endregion
247
- //#region src/rules/seo/og-image.ts
441
+ // src/rules/seo/og-image.ts
248
442
  const seoOgImage = headTagRule({
249
443
  id: "seo/og-image",
250
444
  title: "Open Graph image",
@@ -260,8 +454,7 @@ const seoOgImage = headTagRule({
260
454
  lang: "svelte"
261
455
  }
262
456
  });
263
- //#endregion
264
- //#region src/rules/seo/og-title.ts
457
+ // src/rules/seo/og-title.ts
265
458
  const seoOgTitle = headTagRule({
266
459
  id: "seo/og-title",
267
460
  title: "Open Graph title",
@@ -277,8 +470,7 @@ const seoOgTitle = headTagRule({
277
470
  lang: "svelte"
278
471
  }
279
472
  });
280
- //#endregion
281
- //#region src/rules/seo/json-ld.ts
473
+ // src/rules/seo/json-ld.ts
282
474
  const seoJsonLd = headTagRule({
283
475
  id: "seo/json-ld",
284
476
  title: "JSON-LD structured data",
@@ -293,8 +485,7 @@ const seoJsonLd = headTagRule({
293
485
  lang: "svelte"
294
486
  }
295
487
  });
296
- //#endregion
297
- //#region src/rules/seo/robots-txt.ts
488
+ // src/rules/seo/robots-txt.ts
298
489
  const present$2 = {
299
490
  presence: "own",
300
491
  value: "static"
@@ -329,8 +520,7 @@ const seoRobotsTxt = {
329
520
  }];
330
521
  }
331
522
  };
332
- //#endregion
333
- //#region src/rules/seo/sitemap-xml.ts
523
+ // src/rules/seo/sitemap-xml.ts
334
524
  const present$1 = {
335
525
  presence: "own",
336
526
  value: "static"
@@ -365,8 +555,7 @@ const seoSitemapXml = {
365
555
  }];
366
556
  }
367
557
  };
368
- //#endregion
369
- //#region src/rules/seo/html-lang.ts
558
+ // src/rules/seo/html-lang.ts
370
559
  const FIX$5 = {
371
560
  description: "Set the lang attribute on <html> in src/app.html.",
372
561
  snippet: "<html lang=\"en\">",
@@ -394,8 +583,7 @@ const seoHtmlLang = {
394
583
  }];
395
584
  }
396
585
  };
397
- //#endregion
398
- //#region src/rules/detection.ts
586
+ // src/rules/detection.ts
399
587
  const PENALIZED$1 = {
400
588
  presence: "none",
401
589
  value: "absent"
@@ -404,8 +592,7 @@ const PASS = {
404
592
  presence: "own",
405
593
  value: "static"
406
594
  };
407
- //#endregion
408
- //#region src/rules/perf/image-rule.ts
595
+ // src/rules/perf/image-rule.ts
409
596
  /**
410
597
  * Shared engine behind `imageRule` and `linkRule`: per route, check each relevant item
411
598
  * against `ok`. A route with no relevant item has no signal: emit nothing so it is
@@ -480,8 +667,7 @@ function imageRule(opts) {
480
667
  line: (img) => img.line
481
668
  });
482
669
  }
483
- //#endregion
484
- //#region src/rules/perf/image-dimensions.ts
670
+ // src/rules/perf/image-dimensions.ts
485
671
  const performanceImageDimensions = imageRule({
486
672
  id: "performance/image-dimensions",
487
673
  title: "Image dimensions",
@@ -496,8 +682,7 @@ const performanceImageDimensions = imageRule({
496
682
  },
497
683
  ok: (img) => img.hasWidth && img.hasHeight
498
684
  });
499
- //#endregion
500
- //#region src/rules/perf/image-loading-hint.ts
685
+ // src/rules/perf/image-loading-hint.ts
501
686
  const performanceImageLoadingHint = imageRule({
502
687
  id: "performance/image-loading-hint",
503
688
  title: "Image loading hint",
@@ -512,8 +697,7 @@ const performanceImageLoadingHint = imageRule({
512
697
  },
513
698
  ok: (img) => img.hasLoading
514
699
  });
515
- //#endregion
516
- //#region src/rules/perf/responsive-image.ts
700
+ // src/rules/perf/responsive-image.ts
517
701
  const performanceResponsiveImage = imageRule({
518
702
  id: "performance/responsive-image",
519
703
  title: "Responsive image",
@@ -526,10 +710,9 @@ const performanceResponsiveImage = imageRule({
526
710
  snippet: "<img src=\"/hero.jpg\" srcset=\"/hero-800.jpg 800w, /hero-1600.jpg 1600w\" sizes=\"100vw\" width=\"1600\" height=\"900\" alt=\"…\" />",
527
711
  lang: "svelte"
528
712
  },
529
- ok: (img) => img.hasSrcset || img.svg === true
713
+ ok: (img) => img.hasSrcset || img.svg === true || img.qr === true
530
714
  });
531
- //#endregion
532
- //#region src/rules/perf/link-rule.ts
715
+ // src/rules/perf/link-rule.ts
533
716
  /** Build a route-scoped Performance rule that checks each relevant <link> in the effective head. */
534
717
  function linkRule(opts) {
535
718
  return routeItemRule({
@@ -543,8 +726,7 @@ function linkRule(opts) {
543
726
  location: (tag, passLocation) => tag.file ?? passLocation
544
727
  });
545
728
  }
546
- //#endregion
547
- //#region src/rules/perf/preload-missing-as.ts
729
+ // src/rules/perf/preload-missing-as.ts
548
730
  const performancePreloadMissingAs = linkRule({
549
731
  id: "performance/preload-missing-as",
550
732
  title: "Preload missing as",
@@ -557,11 +739,10 @@ const performancePreloadMissingAs = linkRule({
557
739
  snippet: "<link rel=\"preload\" href=\"/app.css\" as=\"style\" />",
558
740
  lang: "html"
559
741
  },
560
- relevant: (t) => t.rel === "preload",
742
+ relevant: (t) => hasRel(t, "preload"),
561
743
  ok: (t) => t.hasAs === true
562
744
  });
563
- //#endregion
564
- //#region src/rules/perf/font-preload-crossorigin.ts
745
+ // src/rules/perf/font-preload-crossorigin.ts
565
746
  const performanceFontPreloadCrossorigin = linkRule({
566
747
  id: "performance/font-preload-crossorigin",
567
748
  title: "Font preload missing crossorigin",
@@ -574,11 +755,10 @@ const performanceFontPreloadCrossorigin = linkRule({
574
755
  snippet: "<link rel=\"preload\" href=\"/inter.woff2\" as=\"font\" type=\"font/woff2\" crossorigin />",
575
756
  lang: "html"
576
757
  },
577
- relevant: (t) => t.rel === "preload" && t.as === "font",
758
+ relevant: (t) => hasRel(t, "preload") && t.as === "font",
578
759
  ok: (t) => t.hasCrossorigin === true
579
760
  });
580
- //#endregion
581
- //#region src/rules/perf/lcp-image.ts
761
+ // src/rules/perf/lcp-image.ts
582
762
  const docsUrl$10 = docsUrlFor("performance/lcp-image");
583
763
  const recommendation$8 = "Remove loading=\"lazy\" from the LCP/first image and consider fetchpriority=\"high\" so it loads as early as possible.";
584
764
  /**
@@ -637,8 +817,7 @@ const performanceLcpImage = {
637
817
  return out;
638
818
  }
639
819
  };
640
- //#endregion
641
- //#region src/rules/perf/render-blocking-script.ts
820
+ // src/rules/perf/render-blocking-script.ts
642
821
  const docsUrl$9 = docsUrlFor("performance/render-blocking-script");
643
822
  const recommendation$7 = "Add defer (or type=\"module\"), or async, to the <script> so it does not block HTML parsing.";
644
823
  /**
@@ -663,7 +842,8 @@ const performanceRenderBlockingScript = {
663
842
  async check(ctx) {
664
843
  const out = [];
665
844
  for (const head of ctx.heads) {
666
- const scripts = head.tags.filter((t) => t.kind === "script");
845
+ const clientHead = routeNeverSsr(head.file, ctx);
846
+ const scripts = head.tags.filter((t) => t.kind === "script" && !(clientHead && t.file !== "src/app.html"));
667
847
  if (scripts.length === 0) continue;
668
848
  const blocking = scripts.filter((t) => t.blocking);
669
849
  if (blocking.length > 0) for (const tag of blocking) out.push({
@@ -699,8 +879,7 @@ const performanceRenderBlockingScript = {
699
879
  return out;
700
880
  }
701
881
  };
702
- //#endregion
703
- //#region src/config-apply.ts
882
+ // src/config-apply.ts
704
883
  /** The severity a setting selects: `'off'`, an explicit severity, or undefined (leave the built-in). */
705
884
  function settingSeverity(setting) {
706
885
  if (setting === void 0) return void 0;
@@ -876,8 +1055,7 @@ function applyOverrides(results, config) {
876
1055
  }
877
1056
  return out;
878
1057
  }
879
- //#endregion
880
- //#region src/rule-options.ts
1058
+ // src/rule-options.ts
881
1059
  /**
882
1060
  * Severity strings a rule setting accepts, plus `'off'` — the bare string form.
883
1061
  * Module-private: `validateRuleSetting` is the only thing that needs it, and every
@@ -1129,8 +1307,7 @@ function validateRuleSetting(label, ruleId, setting, spec, opts) {
1129
1307
  if (optionErrors.length > 0) errors.push(`${label}: ${optionErrors.join(" ")}`);
1130
1308
  return errors;
1131
1309
  }
1132
- //#endregion
1133
- //#region src/rules/perf/preconnect.ts
1310
+ // src/rules/perf/preconnect.ts
1134
1311
  const docsUrl$8 = docsUrlFor("performance/preconnect");
1135
1312
  const recommendation$6 = "Add <link rel=\"preconnect\"> (or dns-prefetch) for the third-party origin so the connection is set up early.";
1136
1313
  const OPTIONS$6 = { origins: {
@@ -1175,7 +1352,7 @@ const performancePreconnect = {
1175
1352
  if (tag.kind !== "link" && tag.kind !== "script" || typeof tag.href !== "string") continue;
1176
1353
  const host = hostOf(tag.href);
1177
1354
  if (!host) continue;
1178
- if (tag.kind === "link" && (tag.rel === "preconnect" || tag.rel === "dns-prefetch")) {
1355
+ if (tag.kind === "link" && (hasRel(tag, "preconnect") || hasRel(tag, "dns-prefetch"))) {
1179
1356
  covered.add(host);
1180
1357
  continue;
1181
1358
  }
@@ -1223,8 +1400,7 @@ const performancePreconnect = {
1223
1400
  return out;
1224
1401
  }
1225
1402
  };
1226
- //#endregion
1227
- //#region src/rules/seo/indexability.ts
1403
+ // src/rules/seo/indexability.ts
1228
1404
  const FIX$4 = {
1229
1405
  description: "If this route should be indexed, drop noindex from its <meta name=\"robots\">.",
1230
1406
  snippet: "<svelte:head>\n <meta name=\"robots\" content=\"index, follow\" />\n</svelte:head>",
@@ -1262,8 +1438,7 @@ const seoIndexability = {
1262
1438
  return out;
1263
1439
  }
1264
1440
  };
1265
- //#endregion
1266
- //#region src/rules/seo/twitter-card.ts
1441
+ // src/rules/seo/twitter-card.ts
1267
1442
  const seoTwitterCard = headTagRule({
1268
1443
  id: "seo/twitter-card",
1269
1444
  title: "Twitter Card",
@@ -1278,8 +1453,7 @@ const seoTwitterCard = headTagRule({
1278
1453
  lang: "svelte"
1279
1454
  }
1280
1455
  });
1281
- //#endregion
1282
- //#region src/rules/seo/og-description.ts
1456
+ // src/rules/seo/og-description.ts
1283
1457
  const seoOgDescription = headTagRule({
1284
1458
  id: "seo/og-description",
1285
1459
  title: "Open Graph description",
@@ -1295,8 +1469,7 @@ const seoOgDescription = headTagRule({
1295
1469
  lang: "svelte"
1296
1470
  }
1297
1471
  });
1298
- //#endregion
1299
- //#region src/rules/seo/og-url.ts
1472
+ // src/rules/seo/og-url.ts
1300
1473
  const seoOgUrl = headTagRule({
1301
1474
  id: "seo/og-url",
1302
1475
  title: "Open Graph URL",
@@ -1312,8 +1485,7 @@ const seoOgUrl = headTagRule({
1312
1485
  lang: "svelte"
1313
1486
  }
1314
1487
  });
1315
- //#endregion
1316
- //#region src/rules/seo/viewport.ts
1488
+ // src/rules/seo/viewport.ts
1317
1489
  const seoViewport = headTagRule({
1318
1490
  id: "seo/viewport",
1319
1491
  title: "Viewport",
@@ -1329,8 +1501,7 @@ const seoViewport = headTagRule({
1329
1501
  lang: "html"
1330
1502
  }
1331
1503
  });
1332
- //#endregion
1333
- //#region src/rules/seo/sitemap-in-robots.ts
1504
+ // src/rules/seo/sitemap-in-robots.ts
1334
1505
  const FIX$3 = {
1335
1506
  description: "Add a Sitemap: line to static/robots.txt.",
1336
1507
  snippet: "User-agent: *\nAllow: /\n\nSitemap: https://example.com/sitemap.xml",
@@ -1362,8 +1533,7 @@ const seoSitemapInRobots = {
1362
1533
  }];
1363
1534
  }
1364
1535
  };
1365
- //#endregion
1366
- //#region src/rules/seo/jsonld-engine.ts
1536
+ // src/rules/seo/jsonld-engine.ts
1367
1537
  /** Parse JSON-LD and flatten to structured-data objects: root, top-level array members, and @graph members. */
1368
1538
  function parseJsonLd(raw) {
1369
1539
  let data;
@@ -1631,12 +1801,10 @@ function jsonldRule(opts) {
1631
1801
  }
1632
1802
  };
1633
1803
  }
1634
- //#endregion
1635
- //#region src/rules/seo/schema-vocabulary.generated.ts
1804
+ // src/rules/seo/schema-vocabulary.generated.ts
1636
1805
  /** Every schema.org type name schema-dts exports, for validating JSON-LD `@type` values. */
1637
- const SCHEMA_ORG_TYPES = new Set("3DModel AMRadioChannel APIReference AboutPage AcceptAction Accommodation AccountingService AchieveAction Action ActionAccessSpecification ActionStatusType ActivateAction AddAction AdministrativeArea AdultEntertainment AdultOrientedEnumeration AdvertiserContentArticle AggregateOffer AggregateRating AgreeAction Airline Airport AlignmentObject AllocateAction AmpStory AmusementPark AnalysisNewsArticle AnatomicalStructure AnatomicalSystem AnimalShelter Answer Apartment ApartmentComplex AppendAction ApplyAction ApprovedIndication Aquarium ArchiveComponent ArchiveOrganization ArriveAction ArtGallery Artery Article AskAction AskPublicNewsArticle AssessAction AssignAction Atlas Attorney Audience AudioObject AudioObjectSnapshot Audiobook AuthenticateAction AuthorizeAction AutoBodyShop AutoDealer AutoPartsStore AutoRental AutoRepair AutoWash AutomatedTeller AutomotiveBusiness BackgroundNewsArticle Bakery BankAccount BankOrCreditUnion BarOrPub Barcode Beach BeautySalon BedAndBreakfast BedDetails BedType BefriendAction BikeStore BioChemEntity Blog BlogPosting BloodTest BoardingPolicyType BoatReservation BoatTerminal BoatTrip BodyMeasurementTypeEnumeration BodyOfWater Bone Book BookFormatType BookSeries BookStore BookmarkAction Boolean BorrowAction BowlingAlley BrainStructure Brand BreadcrumbList Brewery Bridge BroadcastChannel BroadcastEvent BroadcastFrequencySpecification BroadcastService BrokerageAccount BuddhistTemple BusOrCoach BusReservation BusStation BusStop BusTrip BusinessAudience BusinessEntityType BusinessEvent BusinessFunction BuyAction CDCPMDRecord CableOrSatelliteService CafeOrCoffeeShop Campground CampingPitch Canal CancelAction Car CarUsageType Casino CategoryCode CategoryCodeSet CatholicChurch Cemetery Certification CertificationStatusEnumeration Chapter CheckAction CheckInAction CheckOutAction CheckoutPage ChemicalSubstance ChildCare ChildrensEvent ChooseAction Church City CityHall CivicStructure Claim ClaimReview Class Clip ClothingStore Code Collection CollectionPage CollegeOrUniversity ComedyClub ComedyEvent ComicCoverArt ComicIssue ComicSeries ComicStory Comment CommentAction CommunicateAction CommunityHealth CompleteDataFeed CompoundPriceSpecification ComputerLanguage ComputerStore ConferenceEvent ConfirmAction Consortium ConstraintNode ConsumeAction ContactPage ContactPoint ContactPointOption Continent ControlAction ConvenienceStore Conversation CookAction Cooperative Corporation CorrectionComment Country Course CourseInstance Courthouse CoverArt CovidTestingFacility CreateAction CreativeWork CreativeWorkSeason CreativeWorkSeries Credential CreditCard Crematorium CriticReview CssSelectorType CurrencyConversionService DDxElement DENonprofitType DanceEvent DanceGroup DataCatalog DataDownload DataFeed DataFeedItem DataType Dataset Date DateTime DatedMoneySpecification DayOfWeek DaySpa DeactivateAction DefenceEstablishment DefinedRegion DefinedTerm DefinedTermSet DeleteAction DeliveryChargeSpecification DeliveryEvent DeliveryMethod DeliveryTimeSettings Demand Dentist DepartAction DepartmentStore DepositAccount Dermatology DiagnosticLab DiagnosticProcedure Diet DietNutrition DietarySupplement DigitalDocument DigitalDocumentPermission DigitalDocumentPermissionType DigitalPlatformEnumeration DisagreeAction DiscoverAction DiscussionForumPosting DislikeAction Distance Distillery DonateAction DoseSchedule DownloadAction DrawAction Drawing DrinkAction DriveWheelConfigurationValue Drug DrugClass DrugCost DrugCostCategory DrugLegalStatus DrugPregnancyCategory DrugPrescriptionStatus DrugStrength DryCleaningOrLaundry Duration EUEnergyEfficiencyEnumeration EatAction EducationEvent EducationalAudience EducationalOccupationalCredential EducationalOccupationalProgram EducationalOrganization Electrician ElectronicsStore ElementarySchool EmailMessage Embassy Emergency EmergencyService EmployeeRole EmployerAggregateRating EmployerReview EmploymentAgency EndorseAction EndorsementRating Energy EnergyConsumptionDetails EnergyEfficiencyEnumeration EnergyStarEnergyEfficiencyEnumeration EngineSpecification EntertainmentBusiness EntryPoint Enumeration Episode Error Event EventAttendanceModeEnumeration EventReservation EventSeries EventStatusType EventVenue ExchangeRateSpecification ExerciseAction ExerciseGym ExercisePlan ExhibitionEvent FAQPage FMRadioChannel FastFoodRestaurant Festival FilmAction FinancialIncentive FinancialProduct FinancialService FindAction FireStation Flight FlightReservation Float FloorPlan Florist FollowAction FoodEstablishment FoodEstablishmentReservation FoodEvent FoodService FulfillmentTypeEnumeration FundingAgency FundingScheme FurnitureStore Game GameAvailabilityEnumeration GamePlayMode GameServer GameServerStatus GardenStore GasStation GatedResidenceCommunity GenderType Gene GeneralContractor GeoCircle GeoCoordinates GeoShape GeospatialGeometry Geriatric GiveAction GolfCourse GovernmentBenefitsType GovernmentBuilding GovernmentOffice GovernmentOrganization GovernmentPermit GovernmentService Grant GroceryStore Guide Gynecologic HVACBusiness Hackathon HairSalon HardwareStore HealthAndBeautyBusiness HealthAspectEnumeration HealthClub HealthInsurancePlan HealthPlanCostSharingSpecification HealthPlanFormulary HealthPlanNetwork HealthTopicContent HighSchool HinduTemple HobbyShop HomeAndConstructionBusiness HomeGoodsStore Hospital Hostel Hotel HotelRoom House HousePainter HowTo HowToDirection HowToItem HowToSection HowToStep HowToSupply HowToTip HowToTool HyperToc HyperTocEntry IPTCDigitalSourceEnumeration ITNonprofitType IceCreamShop IgnoreAction ImageGallery ImageObject ImageObjectSnapshot ImagingTest IncentiveQualifiedExpenseType IncentiveStatus IncentiveType IndividualPhysician IndividualProduct InfectiousAgentClass InfectiousDisease InformAction InsertAction InstallAction InstantaneousEvent InsuranceAgency Intangible Integer InteractAction InteractionCounter InternetCafe InvestmentFund InvestmentOrDeposit InviteAction Invoice ItemAvailability ItemList ItemListOrderType ItemPage JewelryStore JobPosting JoinAction Joint LakeBodyOfWater Landform LandmarksOrHistoricalBuildings Language LearningResource LeaveAction LegalForceStatus LegalService LegalValueLevel Legislation LegislationObject LegislativeBuilding LendAction Library LibrarySystem LifestyleModification Ligament LikeAction LinkRole LiquorStore ListItem ListenAction LiteraryEvent LiveBlogPosting LoanOrCredit LocalBusiness LocationFeatureSpecification Locksmith LodgingBusiness LodgingReservation LoginAction LoseAction LymphaticVessel Manuscript Map MapCategoryType MarryAction Mass MathSolver MaximumDoseSchedule MeasurementMethodEnum MeasurementTypeEnumeration MediaEnumeration MediaGallery MediaManipulationRatingEnumeration MediaObject MediaReview MediaReviewItem MediaSubscription MedicalAudience MedicalAudienceType MedicalBusiness MedicalCause MedicalClinic MedicalCode MedicalCondition MedicalConditionStage MedicalContraindication MedicalDevice MedicalDevicePurpose MedicalEntity MedicalEnumeration MedicalEvidenceLevel MedicalGuideline MedicalGuidelineContraindication MedicalGuidelineRecommendation MedicalImagingTechnique MedicalIndication MedicalIntangible MedicalObservationalStudy MedicalObservationalStudyDesign MedicalOrganization MedicalProcedure MedicalProcedureType MedicalRiskCalculator MedicalRiskEstimator MedicalRiskFactor MedicalRiskScore MedicalScholarlyArticle MedicalSign MedicalSignOrSymptom MedicalSpecialty MedicalStudy MedicalStudyStatus MedicalSymptom MedicalTest MedicalTestPanel MedicalTherapy MedicalTrial MedicalTrialDesign MedicalWebPage MedicineSystem MeetingRoom MemberProgram MemberProgramTier MensClothingStore Menu MenuItem MenuSection MerchantReturnEnumeration MerchantReturnPolicy MerchantReturnPolicySeasonalOverride Message MiddleSchool Midwifery MobileApplication MobilePhoneStore MolecularEntity MonetaryAmount MonetaryAmountDistribution MonetaryGrant MoneyTransfer MortgageLoan Mosque Motel Motorcycle MotorcycleDealer MotorcycleRepair MotorizedBicycle Mountain MoveAction Movie MovieClip MovieRentalStore MovieSeries MovieTheater MovingCompany Muscle Museum MusicAlbum MusicAlbumProductionType MusicAlbumReleaseType MusicComposition MusicEvent MusicGroup MusicPlaylist MusicRecording MusicRelease MusicReleaseFormatType MusicStore MusicVenue MusicVideoObject NGO NLNonprofitType NailSalon Nerve NewsArticle NewsMediaOrganization Newspaper NightClub NonprofitType Notary NoteDigitalDocument Number Nursing NutritionInformation Observation Obstetric Occupation OccupationalExperienceRequirements OccupationalTherapy OceanBodyOfWater Offer OfferCatalog OfferForLease OfferForPurchase OfferItemCondition OfferShippingDetails OfficeEquipmentStore OnDemandEvent Oncologic OnlineBusiness OnlineMarketplace OnlineStore OpeningHoursSpecification OperatingSystem OpinionNewsArticle Optician Optometric Order OrderAction OrderItem OrderStatus Organization OrganizationRole OrganizeAction Otolaryngologic OutletStore OwnershipInfo PaintAction Painting PalliativeProcedure ParcelDelivery ParentAudience Park ParkingFacility PathologyTest Patient PawnShop PayAction PaymentCard PaymentChargeSpecification PaymentMethod PaymentMethodType PaymentService PaymentStatusType Pediatric PeopleAudience PerformAction PerformanceRole PerformingArtsEvent PerformingArtsTheater PerformingGroup Periodical Permit Person PetStore Pharmacy Photograph PhotographAction PhysicalActivity PhysicalActivityCategory PhysicalExam PhysicalTherapy Physician PhysiciansOffice Physiotherapy Place PlaceOfWorship PlanAction PlasticSurgery Play PlayAction PlayGameAction Playground Plumber PodcastEpisode PodcastSeason PodcastSeries Podiatric PoliceStation PoliticalParty Pond PostOffice PostalAddress PostalCodeRangeSpecification Poster PreOrderAction PrependAction Preschool PresentationDigitalDocument PreventionIndication PriceComponentTypeEnumeration PriceSpecification PriceTypeEnumeration PrimaryCare Product ProductCollection ProductGroup ProductModel ProductReturnEnumeration ProductReturnPolicy ProfessionalService ProfilePage ProgramMembership Project PronounceableText Property PropertyValue PropertyValueSpecification Protein Psychiatric PsychologicalTreatment PublicHealth PublicSwimmingPool PublicToilet PublicationEvent PublicationIssue PublicationVolume PurchaseType QAPage QualitativeValue QuantitativeValue QuantitativeValueDistribution Quantity Question Quiz Quotation QuoteAction RVPark RadiationTherapy RadioBroadcastService RadioChannel RadioClip RadioEpisode RadioSeason RadioSeries RadioStation Rating ReactAction ReadAction RealEstateAgent RealEstateListing ReceiveAction Recipe Recommendation RecommendedDoseSchedule RecyclingCenter RefundTypeEnumeration RegisterAction RejectAction RentAction RentalCarReservation RepaymentSpecification ReplaceAction ReplyAction Report ReportageNewsArticle ReportedDoseSchedule ResearchOrganization ResearchProject Researcher Reservation ReservationPackage ReservationStatusType ReserveAction Reservoir ResetPasswordAction Residence Resort RespiratoryTherapy Restaurant RestrictedDiet ResumeAction ReturnAction ReturnFeesEnumeration ReturnLabelSourceEnumeration ReturnMethodEnumeration Review ReviewAction ReviewNewsArticle RiverBodyOfWater Role RoofingContractor Room RsvpAction RsvpResponseType RuntimePlatform SaleEvent SatiricalArticle Schedule ScheduleAction ScholarlyArticle School SchoolDistrict ScreeningEvent Sculpture SeaBodyOfWater SearchAction SearchRescueOrganization SearchResultsPage Season Seat SeekToAction SelfStorage SellAction SendAction SequentialArt Series Service ServiceChannel ServicePeriod ShareAction SheetMusic ShippingConditions ShippingDeliveryTime ShippingRateSettings ShippingService ShoeStore ShoppingCenter ShortStory SingleFamilyResidence SiteNavigationElement SizeGroupEnumeration SizeSpecification SizeSystemEnumeration SkiResort SocialEvent SocialMediaPosting SoftwareApplication SoftwareSourceCode SolveMathAction SomeProducts SpeakableSpecification SpecialAnnouncement Specialty SportingGoodsStore SportsActivityLocation SportsClub SportsEvent SportsOrganization SportsTeam SpreadsheetDigitalDocument StadiumOrArena State Statement StatisticalPopulation StatisticalVariable StatusEnumeration SteeringPositionValue Store StructuredValue StupidType SubscribeAction Substance SubwayStation Suite SuperficialAnatomy SurgicalProcedure SuspendAction Syllabus Synagogue TVClip TVEpisode TVSeason TVSeries Table TakeAction TattooParlor Taxi TaxiReservation TaxiService TaxiStand Taxon TechArticle TelevisionChannel TelevisionStation TennisComplex Text TextDigitalDocument TextObject TheaterEvent TheaterGroup TherapeuticProcedure Thesis Thing Ticket TieAction TierBenefitEnumeration Time TipAction TireShop TouristAttraction TouristDestination TouristInformationCenter TouristTrip ToyStore TrackAction TradeAction TrainReservation TrainStation TrainTrip TransferAction TravelAction TravelAgency TreatmentIndication Trip TypeAndQuantityNode UKNonprofitType URL USNonprofitType UnRegisterAction UnitPriceSpecification UpdateAction UseAction UserBlocks UserCheckins UserComments UserDownloads UserInteraction UserLikes UserPageVisits UserPlays UserPlusOnes UserReview UserTweets VacationRental Vehicle Vein Vessel VeterinaryCare VideoGallery VideoGame VideoGameClip VideoGameSeries VideoObject VideoObjectSnapshot ViewAction VirtualLocation VisualArtsEvent VisualArtwork VitalSign Volcano VoteAction WPAdBlock WPFooter WPHeader WPSideBar WantAction WarrantyPromise WarrantyScope WatchAction Waterfall WearAction WearableMeasurementTypeEnumeration WearableSizeGroupEnumeration WearableSizeSystemEnumeration WebAPI WebApplication WebContent WebPage WebPageElement WebSite WholesaleStore WinAction Winery WorkBasedProgram WorkersUnion WriteAction XPathType Zoo iflastandards_info_ns_lrm_lrmoo_F31_Performance purl_bioontology_org_ontology_SNOMEDCT_105590001 purl_bioontology_org_ontology_SNOMEDCT_116154003 purl_bioontology_org_ontology_SNOMEDCT_277132007 purl_bioontology_org_ontology_SNOMEDCT_387713003 purl_bioontology_org_ontology_SNOMEDCT_410942007 purl_bioontology_org_ontology_SNOMEDCT_50731006 purl_bioontology_org_ontology_SNOMEDCT_51114001 purl_bioontology_org_ontology_SNOMEDCT_63653004 purl_org_dc_dcmitype_Dataset purl_org_dc_dcmitype_Event purl_org_dc_dcmitype_Image purl_org_dc_dcmitype_Text purl_org_ontology_bibo_Issue purl_org_ontology_bibo_Periodical rdfs_org_ns_void_Dataset ref_gs1_org_voc_CertificationDetails ref_gs1_org_voc_ContactPoint ref_gs1_org_voc_Country ref_gs1_org_voc_Organization ref_gs1_org_voc_PostalAddress sarif_info_Result spec_edmcouncil_org_fibo_ontology_BE_Corporations_Corporations_Corporation spec_edmcouncil_org_fibo_ontology_BE_LegalEntities_CorporateBodies_CooperativeSociety spec_edmcouncil_org_fibo_ontology_BE_NotForProfitOrganizations_NotForProfitOrganizations_NonGovernmentalOrganization spec_edmcouncil_org_fibo_ontology_FBC_ProductsAndServices_FinancialProductsAndServices_BankAccount spec_edmcouncil_org_fibo_ontology_FBC_ProductsAndServices_FinancialProductsAndServices_PaymentMechanism spec_edmcouncil_org_fibo_ontology_FND_Agreements_Contracts_MutualContractualAgreement spec_edmcouncil_org_fibo_ontology_FND_Arrangements_Documents_Certificate spec_edmcouncil_org_fibo_ontology_FND_Arrangements_Documents_Document spec_edmcouncil_org_fibo_ontology_FND_Arrangements_Documents_LegalDocument spec_edmcouncil_org_fibo_ontology_FND_DatesAndTimes_Occurrences_Occurrence spec_edmcouncil_org_fibo_ontology_FND_Organizations_Organizations_ContactPoint spec_edmcouncil_org_fibo_ontology_FND_Organizations_Organizations_Organization spec_edmcouncil_org_fibo_ontology_FND_Places_Addresses_PostalAddress spec_edmcouncil_org_fibo_ontology_FND_Places_Locations_Municipality spec_edmcouncil_org_fibo_ontology_FND_ProductsAndServices_ProductsAndServices_Offer spec_edmcouncil_org_fibo_ontology_FND_ProductsAndServices_ProductsAndServices_Price spec_edmcouncil_org_fibo_ontology_FND_ProductsAndServices_ProductsAndServices_Product spec_edmcouncil_org_fibo_ontology_PAY_PaymentServices_PaymentServices_PaymentService unece_org_vocab_AmountType unece_org_vocab_BrandName unece_org_vocab_Country unece_org_vocab_ElectronicDocument unece_org_vocab_FinancialCard unece_org_vocab_GeographicalCoordinate unece_org_vocab_Invoice unece_org_vocab_LineTradeAgreement unece_org_vocab_Offer unece_org_vocab_Order unece_org_vocab_PaymentMeans unece_org_vocab_RequestForQuotation unece_org_vocab_SpecifiedCertificate unece_org_vocab_SpecifiedTradeProduct unece_org_vocab_TradeAddress unece_org_vocab_TradeProduct unece_org_vocab_TransportMethod www_omg_org_spec_Commons_Classifiers_Classifier www_omg_org_spec_Commons_Collections_Collection www_omg_org_spec_Commons_DatesAndTimes_Date www_omg_org_spec_Commons_DatesAndTimes_DateTime www_omg_org_spec_Commons_DatesAndTimes_Duration www_omg_org_spec_Commons_GeopoliticalEntities_GeopoliticalEntity www_omg_org_spec_Commons_GeopoliticalEntities_Subdivision www_omg_org_spec_Commons_Locations_Address www_omg_org_spec_Commons_Locations_GeographicCoordinate www_omg_org_spec_Commons_Locations_Location www_omg_org_spec_LCC_Countries_CountryRepresentation_Continent www_omg_org_spec_LCC_Countries_CountryRepresentation_Country www_w3_org_2006_vcard_ns_VCard www_w3_org_ns_dcat_Catalog www_w3_org_ns_dcat_Dataset www_w3_org_ns_dcat_Distribution www_w3_org_ns_hydra_core_Error www_w3_org_ns_prov_InstantaneousEvent www_w3_org_ns_prov_atTime xmlns_com_foaf_0_1_Person".split(" "));
1638
- //#endregion
1639
- //#region src/rules/seo/json-ld-validity.ts
1806
+ const SCHEMA_ORG_TYPES = new Set("3DModel AMRadioChannel APIReference AboutPage AcceptAction Accommodation AccountingService AchieveAction Action ActionAccessSpecification ActionStatusType ActivateAction AddAction AdministrativeArea AdultEntertainment AdultOrientedEnumeration AdvertiserContentArticle AggregateOffer AggregateRating AgreeAction Airline Airport AlignmentObject AllocateAction AmpStory AmusementPark AnalysisNewsArticle AnatomicalStructure AnatomicalSystem AnimalShelter Answer Apartment ApartmentComplex AppendAction ApplyAction ApprovedIndication Aquarium ArchiveComponent ArchiveOrganization ArriveAction ArtGallery Artery Article AskAction AskPublicNewsArticle AssessAction AssignAction Atlas Attorney Audience AudioObject AudioObjectSnapshot Audiobook Audiology AuthenticateAction AuthorizeAction AutoBodyShop AutoDealer AutoPartsStore AutoRental AutoRepair AutoWash AutomatedTeller AutomotiveBusiness BackgroundNewsArticle Bakery BankAccount BankOrCreditUnion BarOrPub Barcode Beach BeautySalon BedAndBreakfast BedDetails BedType BefriendAction BikeStore BioChemEntity Blog BlogPosting BloodTest BoardingPolicyType BoatReservation BoatTerminal BoatTrip BodyMeasurementTypeEnumeration BodyOfWater Bone Book BookFormatType BookSeries BookStore BookmarkAction Boolean BorrowAction BowlingAlley BrainStructure Brand BreadcrumbList Brewery Bridge BroadcastChannel BroadcastEvent BroadcastFrequencySpecification BroadcastService BrokerageAccount BuddhistTemple BusOrCoach BusReservation BusStation BusStop BusTrip BusinessAudience BusinessEntityType BusinessEvent BusinessFunction BuyAction CDCPMDRecord CableOrSatelliteService CafeOrCoffeeShop Campground CampingPitch Canal CancelAction Car CarUsageType Casino CategoryCode CategoryCodeSet CatholicChurch Cemetery Certification CertificationStatusEnumeration Chapter CheckAction CheckInAction CheckOutAction CheckoutPage ChemicalSubstance ChildCare ChildrensEvent ChooseAction Church City CityHall CivicStructure Claim ClaimReview Class Clip ClothingStore Code Collection CollectionPage CollegeOrUniversity ComedyClub ComedyEvent ComicCoverArt ComicIssue ComicSeries ComicStory Comment CommentAction CommunicateAction CommunityHealth CompleteDataFeed CompoundPriceSpecification ComputerLanguage ComputerStore ConferenceEvent ConfirmAction Consortium ConstraintNode ConsumeAction ContactPage ContactPoint ContactPointOption Continent ControlAction ConvenienceStore Conversation CookAction Cooperative Corporation CorrectionComment Country Course CourseInstance Courthouse CoverArt CovidTestingFacility CreateAction CreativeWork CreativeWorkSeason CreativeWorkSeries Credential CreditCard Crematorium CriticReview CssSelectorType CurrencyConversionService DDxElement DENonprofitType DanceEvent DanceGroup DataCatalog DataDownload DataFeed DataFeedItem DataType Dataset Date DateTime DatedMoneySpecification DayOfWeek DaySpa DeactivateAction DeclarationOfConformity DefenceEstablishment DefinedRegion DefinedTerm DefinedTermSet DeleteAction DeliveryChargeSpecification DeliveryEvent DeliveryMethod DeliveryTimeSettings Demand Dentist DepartAction DepartmentStore DepositAccount Dermatology DiagnosticLab DiagnosticProcedure Diet DietNutrition DietarySupplement DigitalDocument DigitalDocumentPermission DigitalDocumentPermissionType DigitalPlatformEnumeration DigitalProductPassport DisagreeAction DiscoverAction DiscussionForumPosting DislikeAction Distance Distillery DonateAction DoseSchedule DownloadAction DrawAction Drawing DrinkAction DriveWheelConfigurationValue Drug DrugClass DrugCost DrugCostCategory DrugLegalStatus DrugPregnancyCategory DrugPrescriptionStatus DrugStrength DryCleaningOrLaundry Duration EUEnergyEfficiencyEnumeration EatAction EducationEvent EducationalAudience EducationalOccupationalCredential EducationalOccupationalProgram EducationalOrganization Electrician ElectronicsStore ElementarySchool EmailMessage Embassy Emergency EmergencyService EmployeeRole EmployerAggregateRating EmployerReview EmploymentAgency EndorseAction EndorsementRating Energy EnergyConsumptionDetails EnergyEfficiencyEnumeration EnergyStarEnergyEfficiencyEnumeration EngineSpecification EntertainmentBusiness EntryPoint Enumeration EnvironmentalProductDeclaration Episode Error Event EventAttendanceModeEnumeration EventReservation EventSeries EventStatusType EventVenue ExchangeRateSpecification ExerciseAction ExerciseGym ExercisePlan ExhibitionEvent FAQPage FMRadioChannel FastFoodRestaurant Festival FilmAction FinancialIncentive FinancialProduct FinancialService FindAction FireStation Flight FlightReservation Float FloorPlan Florist FollowAction FoodEstablishment FoodEstablishmentReservation FoodEvent FoodService FulfillmentTypeEnumeration FundingAgency FundingScheme FurnitureStore Game GameAvailabilityEnumeration GamePlayMode GameServer GameServerStatus GardenStore GasStation GatedResidenceCommunity GenderType Gene GeneralContractor GeoCircle GeoCoordinates GeoShape GeospatialGeometry Geriatric GiveAction GolfCourse GovernmentBenefitsType GovernmentBuilding GovernmentOffice GovernmentOrganization GovernmentPermit GovernmentService Grant GroceryStore Guide Gynecologic HVACBusiness Hackathon HairSalon HardwareStore HealthAndBeautyBusiness HealthAspectEnumeration HealthClub HealthInsurancePlan HealthPlanCostSharingSpecification HealthPlanFormulary HealthPlanNetwork HealthTopicContent HighSchool HinduTemple HobbyShop HomeAndConstructionBusiness HomeGoodsStore Hospital Hostel Hotel HotelRoom House HousePainter HowTo HowToDirection HowToItem HowToSection HowToStep HowToSupply HowToTip HowToTool HyperToc HyperTocEntry IPTCDigitalSourceEnumeration ITNonprofitType IceCreamShop IgnoreAction ImageGallery ImageObject ImageObjectSnapshot ImagingTest IncentiveQualifiedExpenseType IncentiveStatus IncentiveType IndividualPhysician IndividualProduct InfectiousAgentClass InfectiousDisease InformAction InsertAction InstallAction InstantaneousEvent InsuranceAgency Intangible Integer InteractAction InteractionCounter InternetCafe InvestmentFund InvestmentOrDeposit InviteAction Invoice ItemAvailability ItemList ItemListOrderType ItemPage JewelryStore JobPosting JoinAction Joint LakeBodyOfWater Landform LandmarksOrHistoricalBuildings Language LearningResource LeaveAction LegalForceStatus LegalService LegalValueLevel Legislation LegislationObject LegislativeBuilding LendAction Library LibrarySystem LifestyleModification Ligament LikeAction LinkRole LiquorStore ListItem ListenAction LiteraryEvent LiveBlogPosting LoanOrCredit LocalBusiness LocationFeatureSpecification Locksmith LodgingBusiness LodgingReservation LoginAction LoseAction LymphaticVessel Manuscript Map MapCategoryType MarryAction Mass MathSolver MaximumDoseSchedule MeasurementMethodEnum MeasurementTypeEnumeration MediaEnumeration MediaGallery MediaManipulationRatingEnumeration MediaObject MediaReview MediaReviewItem MediaSubscription MedicalAudience MedicalAudienceType MedicalBusiness MedicalCause MedicalClinic MedicalCode MedicalCondition MedicalConditionStage MedicalContraindication MedicalDevice MedicalDevicePurpose MedicalEntity MedicalEnumeration MedicalEvidenceLevel MedicalGuideline MedicalGuidelineContraindication MedicalGuidelineRecommendation MedicalImagingTechnique MedicalIndication MedicalIntangible MedicalObservationalStudy MedicalObservationalStudyDesign MedicalOrganization MedicalProcedure MedicalProcedureType MedicalRiskCalculator MedicalRiskEstimator MedicalRiskFactor MedicalRiskScore MedicalScholarlyArticle MedicalSign MedicalSignOrSymptom MedicalSpecialty MedicalStudy MedicalStudyStatus MedicalSymptom MedicalTest MedicalTestPanel MedicalTherapy MedicalTrial MedicalTrialDesign MedicalWebPage MedicineSystem MeetingRoom MemberProgram MemberProgramTier MensClothingStore Menu MenuItem MenuSection MerchantReturnEnumeration MerchantReturnPolicy MerchantReturnPolicySeasonalOverride Message MiddleSchool Midwifery MobileApplication MobilePhoneStore MolecularEntity MonetaryAmount MonetaryAmountDistribution MonetaryGrant MoneyTransfer MortgageLoan Mosque Motel Motorcycle MotorcycleDealer MotorcycleRepair MotorizedBicycle Mountain MoveAction Movie MovieClip MovieRentalStore MovieSeries MovieTheater MovingCompany Muscle Museum MusicAlbum MusicAlbumProductionType MusicAlbumReleaseType MusicComposition MusicEvent MusicGroup MusicPlaylist MusicRecording MusicRelease MusicReleaseFormatType MusicStore MusicVenue MusicVideoObject NGO NLNonprofitType NailSalon Nerve NewsArticle NewsMediaOrganization Newspaper NightClub NonprofitType Notary NoteDigitalDocument Number Nursing NutritionInformation Observation Obstetric Occupation OccupationalExperienceRequirements OccupationalTherapy OceanBodyOfWater Offer OfferCatalog OfferForLease OfferForPurchase OfferItemCondition OfferShippingDetails OfficeEquipmentStore OnDemandEvent Oncologic OnlineBusiness OnlineMarketplace OnlineStore OpeningHoursSpecification OperatingSystem Ophthalmology OpinionNewsArticle Optician Optometric Order OrderAction OrderItem OrderStatus Organization OrganizationRole OrganizeAction Otolaryngologic OutletStore OwnershipInfo PaintAction Painting PalliativeProcedure ParcelDelivery ParentAudience Park ParkingFacility PathologyTest Patient PawnShop PayAction PaymentCard PaymentChargeSpecification PaymentMethod PaymentMethodType PaymentService PaymentStatusType Pediatric PeopleAudience PerformAction PerformanceRole PerformingArtsEvent PerformingArtsTheater PerformingGroup Periodical Permit Person PetStore Pharmacy Photograph PhotographAction PhysicalActivity PhysicalActivityCategory PhysicalExam PhysicalTherapy Physician PhysiciansOffice Physiotherapy Place PlaceOfWorship PlanAction PlasticSurgery Play PlayAction PlayGameAction Playground Plumber PodcastEpisode PodcastSeason PodcastSeries Podiatric PoliceStation PoliticalParty Pond PostOffice PostalAddress PostalCodeRangeSpecification Poster PreOrderAction PrependAction Preschool PresentationDigitalDocument PreventionIndication PriceComponentTypeEnumeration PriceSpecification PriceTypeEnumeration PrimaryCare Product ProductCollection ProductGroup ProductModel ProductReturnEnumeration ProductReturnPolicy ProfessionalService ProfilePage ProgramMembership Project PronounceableText Property PropertyValue PropertyValueSpecification Protein Psychiatric PsychologicalTreatment PublicHealth PublicSwimmingPool PublicToilet PublicationEvent PublicationIssue PublicationVolume PurchaseType QAPage QualitativeValue QuantitativeValue QuantitativeValueDistribution Quantity Question Quiz Quotation QuoteAction RVPark RadiationTherapy RadioBroadcastService RadioChannel RadioClip RadioEpisode RadioSeason RadioSeries RadioStation Rating ReactAction ReadAction RealEstateAgent RealEstateListing ReceiveAction Recipe Recommendation RecommendedDoseSchedule RecyclingCenter RefundTypeEnumeration RegisterAction RejectAction RentAction RentalCarReservation RepaymentSpecification ReplaceAction ReplyAction Report ReportageNewsArticle ReportedDoseSchedule ResearchOrganization ResearchProject Researcher Reservation ReservationPackage ReservationStatusType ReserveAction Reservoir ResetPasswordAction Residence Resort RespiratoryTherapy Restaurant RestrictedDiet ResumeAction ReturnAction ReturnFeesEnumeration ReturnLabelSourceEnumeration ReturnMethodEnumeration Review ReviewAction ReviewNewsArticle RiverBodyOfWater Role RoofingContractor Room RsvpAction RsvpResponseType RuntimePlatform SaleEvent SatiricalArticle Schedule ScheduleAction ScholarlyArticle School SchoolDistrict ScreeningEvent Sculpture SeaBodyOfWater SearchAction SearchRescueOrganization SearchResultsPage Season Seat SeekToAction SelfStorage SellAction SendAction SequentialArt Series Service ServiceChannel ServicePeriod ShareAction SheetMusic ShippingConditions ShippingDeliveryTime ShippingRateSettings ShippingService ShoeStore ShoppingCenter ShortStory SingleFamilyResidence SiteNavigationElement SizeGroupEnumeration SizeSpecification SizeSystemEnumeration SkiResort SocialEvent SocialMediaPosting SoftwareApplication SoftwareSourceCode SolveMathAction SomeProducts SpeakableSpecification SpecialAnnouncement Specialty SportingGoodsStore SportsActivityLocation SportsClub SportsEvent SportsOrganization SportsTeam SpreadsheetDigitalDocument StadiumOrArena State Statement StatisticalPopulation StatisticalVariable StatusEnumeration SteeringPositionValue Store StructuredValue StupidType SubscribeAction Substance SubwayStation Suite SuperficialAnatomy SurgicalProcedure SuspendAction Syllabus Synagogue TVClip TVEpisode TVSeason TVSeries Table TakeAction TattooParlor Taxi TaxiReservation TaxiService TaxiStand Taxon TechArticle TelevisionChannel TelevisionStation TennisComplex Text TextDigitalDocument TextObject TheaterEvent TheaterGroup TherapeuticProcedure Thesis Thing Ticket TieAction TierBenefitEnumeration Time TipAction TireShop TouristAttraction TouristDestination TouristInformationCenter TouristTrip ToyStore TrackAction TradeAction TrainReservation TrainStation TrainTrip TransferAction TravelAction TravelAgency TreatmentIndication Trip TypeAndQuantityNode UKNonprofitType URL USNonprofitType UnRegisterAction UnitPriceSpecification UpdateAction UseAction UserBlocks UserCheckins UserComments UserDownloads UserInteraction UserLikes UserPageVisits UserPlays UserPlusOnes UserReview UserTweets VacationRental Vehicle Vein Vessel VeterinaryCare VideoGallery VideoGame VideoGameClip VideoGameSeries VideoObject VideoObjectSnapshot ViewAction VirtualLocation VisualArtsEvent VisualArtwork VitalSign Volcano VoteAction WPAdBlock WPFooter WPHeader WPSideBar WantAction WarrantyPromise WarrantyScope WatchAction Waterfall WearAction WearableMeasurementTypeEnumeration WearableSizeGroupEnumeration WearableSizeSystemEnumeration WebAPI WebApplication WebContent WebPage WebPageElement WebSite WholesaleStore WinAction Winery WorkBasedProgram WorkersUnion WriteAction XPathType Zoo iflastandards_info_ns_lrm_lrmoo_F31_Performance purl_bioontology_org_ontology_SNOMEDCT_105590001 purl_bioontology_org_ontology_SNOMEDCT_116154003 purl_bioontology_org_ontology_SNOMEDCT_277132007 purl_bioontology_org_ontology_SNOMEDCT_387713003 purl_bioontology_org_ontology_SNOMEDCT_410942007 purl_bioontology_org_ontology_SNOMEDCT_50731006 purl_bioontology_org_ontology_SNOMEDCT_51114001 purl_bioontology_org_ontology_SNOMEDCT_63653004 purl_org_dc_dcmitype_Dataset purl_org_dc_dcmitype_Event purl_org_dc_dcmitype_Image purl_org_dc_dcmitype_Text purl_org_ontology_bibo_Issue purl_org_ontology_bibo_Periodical rdfs_org_ns_void_Dataset ref_gs1_org_voc_CertificationDetails ref_gs1_org_voc_ContactPoint ref_gs1_org_voc_Country ref_gs1_org_voc_Organization ref_gs1_org_voc_PostalAddress sarif_info_Result spec_edmcouncil_org_fibo_ontology_BE_Corporations_Corporations_Corporation spec_edmcouncil_org_fibo_ontology_BE_LegalEntities_CorporateBodies_CooperativeSociety spec_edmcouncil_org_fibo_ontology_BE_NotForProfitOrganizations_NotForProfitOrganizations_NonGovernmentalOrganization spec_edmcouncil_org_fibo_ontology_FBC_ProductsAndServices_FinancialProductsAndServices_BankAccount spec_edmcouncil_org_fibo_ontology_FBC_ProductsAndServices_FinancialProductsAndServices_PaymentMechanism spec_edmcouncil_org_fibo_ontology_FND_Agreements_Contracts_MutualContractualAgreement spec_edmcouncil_org_fibo_ontology_FND_Arrangements_Documents_Certificate spec_edmcouncil_org_fibo_ontology_FND_Arrangements_Documents_Document spec_edmcouncil_org_fibo_ontology_FND_Arrangements_Documents_LegalDocument spec_edmcouncil_org_fibo_ontology_FND_DatesAndTimes_Occurrences_Occurrence spec_edmcouncil_org_fibo_ontology_FND_Organizations_Organizations_ContactPoint spec_edmcouncil_org_fibo_ontology_FND_Organizations_Organizations_Organization spec_edmcouncil_org_fibo_ontology_FND_Places_Addresses_PostalAddress spec_edmcouncil_org_fibo_ontology_FND_Places_Locations_Municipality spec_edmcouncil_org_fibo_ontology_FND_ProductsAndServices_ProductsAndServices_Offer spec_edmcouncil_org_fibo_ontology_FND_ProductsAndServices_ProductsAndServices_Price spec_edmcouncil_org_fibo_ontology_FND_ProductsAndServices_ProductsAndServices_Product spec_edmcouncil_org_fibo_ontology_PAY_PaymentServices_PaymentServices_PaymentService unece_org_vocab_AmountType unece_org_vocab_BrandName unece_org_vocab_Country unece_org_vocab_ElectronicDocument unece_org_vocab_FinancialCard unece_org_vocab_GeographicalCoordinate unece_org_vocab_Invoice unece_org_vocab_LineTradeAgreement unece_org_vocab_Offer unece_org_vocab_Order unece_org_vocab_PaymentMeans unece_org_vocab_RequestForQuotation unece_org_vocab_SpecifiedCertificate unece_org_vocab_SpecifiedTradeProduct unece_org_vocab_TradeAddress unece_org_vocab_TradeProduct unece_org_vocab_TransportMethod www_omg_org_spec_Commons_Classifiers_Classifier www_omg_org_spec_Commons_Collections_Collection www_omg_org_spec_Commons_DatesAndTimes_Date www_omg_org_spec_Commons_DatesAndTimes_DateTime www_omg_org_spec_Commons_DatesAndTimes_Duration www_omg_org_spec_Commons_GeopoliticalEntities_GeopoliticalEntity www_omg_org_spec_Commons_GeopoliticalEntities_Subdivision www_omg_org_spec_Commons_Locations_Address www_omg_org_spec_Commons_Locations_GeographicCoordinate www_omg_org_spec_Commons_Locations_Location www_omg_org_spec_LCC_Countries_CountryRepresentation_Continent www_omg_org_spec_LCC_Countries_CountryRepresentation_Country www_w3_org_2006_vcard_ns_VCard www_w3_org_ns_dcat_Catalog www_w3_org_ns_dcat_Dataset www_w3_org_ns_dcat_Distribution www_w3_org_ns_hydra_core_Error www_w3_org_ns_prov_InstantaneousEvent www_w3_org_ns_prov_atTime xmlns_com_foaf_0_1_Person".split(" "));
1807
+ // src/rules/seo/json-ld-validity.ts
1640
1808
  const SCHEMA_ORG_CONTEXT_RE = /^https?:\/\/schema\.org\/?$/;
1641
1809
  /** Lowercase name -> canonical catalog name, for the case-insensitive "did you mean" hint. */
1642
1810
  const LOWERCASE_TO_CANONICAL = new Map([...SCHEMA_ORG_TYPES].map((name) => [name.toLowerCase(), name]));
@@ -1784,8 +1952,7 @@ const seoJsonLdValidity = {
1784
1952
  return out;
1785
1953
  }
1786
1954
  };
1787
- //#endregion
1788
- //#region src/rules/seo/json-ld-deprecated-type.ts
1955
+ // src/rules/seo/json-ld-deprecated-type.ts
1789
1956
  const seoJsonLdDeprecatedType = jsonldRule({
1790
1957
  id: "seo/json-ld-deprecated-type",
1791
1958
  title: "Deprecated structured-data type",
@@ -1798,8 +1965,7 @@ const seoJsonLdDeprecatedType = jsonldRule({
1798
1965
  return dep ? `@type "${dep}" no longer reliably produces a Google rich result` : void 0;
1799
1966
  }
1800
1967
  });
1801
- //#endregion
1802
- //#region src/rules/seo/json-ld-relative-url.ts
1968
+ // src/rules/seo/json-ld-relative-url.ts
1803
1969
  const seoJsonLdRelativeUrl = jsonldRule({
1804
1970
  id: "seo/json-ld-relative-url",
1805
1971
  title: "JSON-LD relative URL",
@@ -1817,8 +1983,7 @@ const seoJsonLdRelativeUrl = jsonldRule({
1817
1983
  return bad ? `Relative URL in JSON-LD: "${bad}" — use an absolute URL` : void 0;
1818
1984
  }
1819
1985
  });
1820
- //#endregion
1821
- //#region src/rules/seo/json-ld-date-format.ts
1986
+ // src/rules/seo/json-ld-date-format.ts
1822
1987
  const seoJsonLdDateFormat = jsonldRule({
1823
1988
  id: "seo/json-ld-date-format",
1824
1989
  title: "JSON-LD date format",
@@ -1836,8 +2001,7 @@ const seoJsonLdDateFormat = jsonldRule({
1836
2001
  return bad ? `Non-ISO-8601 date in JSON-LD: "${bad}"` : void 0;
1837
2002
  }
1838
2003
  });
1839
- //#endregion
1840
- //#region src/rules/seo/json-ld-placeholder.ts
2004
+ // src/rules/seo/json-ld-placeholder.ts
1841
2005
  const seoJsonLdPlaceholder = jsonldRule({
1842
2006
  id: "seo/json-ld-placeholder",
1843
2007
  title: "JSON-LD placeholder text",
@@ -1850,8 +2014,7 @@ const seoJsonLdPlaceholder = jsonldRule({
1850
2014
  return bad ? `Placeholder text in JSON-LD: "${bad}"` : void 0;
1851
2015
  }
1852
2016
  });
1853
- //#endregion
1854
- //#region src/rules/seo/json-ld-required-props.ts
2017
+ // src/rules/seo/json-ld-required-props.ts
1855
2018
  const seoJsonLdRequiredProps = jsonldRule({
1856
2019
  id: "seo/json-ld-required-props",
1857
2020
  title: "JSON-LD required properties",
@@ -1871,8 +2034,7 @@ const seoJsonLdRequiredProps = jsonldRule({
1871
2034
  return hasKnownType ? void 0 : false;
1872
2035
  }
1873
2036
  });
1874
- //#endregion
1875
- //#region src/rules/seo/text-metrics.ts
2037
+ // src/rules/seo/text-metrics.ts
1876
2038
  const segmenter = new Intl.Segmenter();
1877
2039
  /**
1878
2040
  * Trim and collapse internal whitespace runs to a single space — the canonical
@@ -1890,8 +2052,7 @@ function collapseWhitespace(s) {
1890
2052
  function visibleLength(s) {
1891
2053
  return [...segmenter.segment(collapseWhitespace(s))].length;
1892
2054
  }
1893
- //#endregion
1894
- //#region src/rules/seo/length-rule.ts
2055
+ // src/rules/seo/length-rule.ts
1895
2056
  /** Build a route-scoped length rule that runs only on a static (captured) title/description text. */
1896
2057
  function lengthRule(opts) {
1897
2058
  const docsUrl = docsUrlFor(opts.id);
@@ -1959,8 +2120,7 @@ function lengthRule(opts) {
1959
2120
  }
1960
2121
  };
1961
2122
  }
1962
- //#endregion
1963
- //#region src/rules/seo/title-length.ts
2123
+ // src/rules/seo/title-length.ts
1964
2124
  const MIN$1 = 30;
1965
2125
  const MAX$1 = 60;
1966
2126
  const seoTitleLength = lengthRule({
@@ -1974,8 +2134,7 @@ const seoTitleLength = lengthRule({
1974
2134
  recommendation: (o) => `Aim for a title of ${intOption(o, "min", MIN$1)}–${intOption(o, "max", MAX$1)} characters so it is not truncated in search results.`,
1975
2135
  rationale: "A title that is too short wastes the strongest on-page signal; one that is too long is truncated in the SERP."
1976
2136
  });
1977
- //#endregion
1978
- //#region src/rules/seo/description-length.ts
2137
+ // src/rules/seo/description-length.ts
1979
2138
  const MIN = 70;
1980
2139
  const MAX = 160;
1981
2140
  const seoDescriptionLength = lengthRule({
@@ -1989,8 +2148,7 @@ const seoDescriptionLength = lengthRule({
1989
2148
  recommendation: (o) => `Aim for a meta description of ${intOption(o, "min", MIN)}–${intOption(o, "max", MAX)} characters so it is not truncated in search results.`,
1990
2149
  rationale: "A description that is too short under-uses the SERP snippet; one that is too long is truncated by search engines."
1991
2150
  });
1992
- //#endregion
1993
- //#region src/rules/seo/charset.ts
2151
+ // src/rules/seo/charset.ts
1994
2152
  /**
1995
2153
  * seo/charset — Character encoding. The charset meta lives in `src/app.html`, so it is
1996
2154
  * only visible to rendered analysis (`appliesTo: rendered`), exactly like seo/viewport
@@ -2011,8 +2169,7 @@ const seoCharset = headTagRule({
2011
2169
  lang: "html"
2012
2170
  }
2013
2171
  });
2014
- //#endregion
2015
- //#region src/rules/seo/image-alt.ts
2172
+ // src/rules/seo/image-alt.ts
2016
2173
  /**
2017
2174
  * seo/image-alt — Image alt text. Reuses the <img> collection from both providers — the
2018
2175
  * static (CLI) source parser and the rendered (vite) HTML parser — like performance/image-dimensions, performance/image-loading-hint.
@@ -2034,8 +2191,7 @@ const seoImageAlt = imageRule({
2034
2191
  },
2035
2192
  ok: (img) => img.hasAlt
2036
2193
  });
2037
- //#endregion
2038
- //#region src/rules/seo/hreflang.ts
2194
+ // src/rules/seo/hreflang.ts
2039
2195
  const docsUrl$7 = docsUrlFor("seo/hreflang");
2040
2196
  const malformedRecommendation = "Use valid hreflang codes, e.g. \"en\", \"en-US\", or the literal \"x-default\".";
2041
2197
  const noDefaultRecommendation = "x-default is a Google recommendation, not a requirement — most useful for a language-selector or auto-redirecting page. Add one if this page behaves that way; otherwise search engines fall back to matching the individual alternates.";
@@ -2060,7 +2216,7 @@ const seoHreflang = {
2060
2216
  async check(ctx) {
2061
2217
  const out = [];
2062
2218
  for (const head of ctx.heads) {
2063
- const alternates = head.tags.filter((t) => t.kind === "link" && t.rel === "alternate" && typeof t.hreflang === "string");
2219
+ const alternates = head.tags.filter((t) => t.kind === "link" && hasRel(t, "alternate") && typeof t.hreflang === "string");
2064
2220
  if (alternates.length === 0) continue;
2065
2221
  const values = alternates.map((t) => t.hreflang);
2066
2222
  const badTag = alternates.find((t) => !isValidHreflang(t.hreflang));
@@ -2101,8 +2257,7 @@ const seoHreflang = {
2101
2257
  return out;
2102
2258
  }
2103
2259
  };
2104
- //#endregion
2105
- //#region src/rules/a11y/aria-data.ts
2260
+ // src/rules/a11y/aria-data.ts
2106
2261
  /**
2107
2262
  * ARIA names `aria-query@5.3.2` does not carry. It is not the clean ARIA 1.2 snapshot it looks
2108
2263
  * like — it holds 1.2's 48 attributes plus three 1.3 additions — so the gap is patched by name
@@ -2160,8 +2315,7 @@ function ariaValueKind(name) {
2160
2315
  ...def.values ? { values: def.values.map(String) } : {}
2161
2316
  };
2162
2317
  }
2163
- //#endregion
2164
- //#region src/a11y.ts
2318
+ // src/a11y.ts
2165
2319
  /**
2166
2320
  * Branch-aware occurrence fold (design "Control-flow semantics"): within a branch
2167
2321
  * occurrences sum, across the arms of one exclusive block the arm with the most
@@ -2318,8 +2472,7 @@ function stripTextDirective(fragment) {
2318
2472
  const i = fragment.indexOf(":~:");
2319
2473
  return i === -1 ? fragment : fragment.slice(0, i);
2320
2474
  }
2321
- //#endregion
2322
- //#region src/rules/seo/single-h1.ts
2475
+ // src/rules/seo/single-h1.ts
2323
2476
  const docsUrl$6 = docsUrlFor("seo/single-h1");
2324
2477
  const passRecommendation = "Use exactly one <h1> per page for its main topic; demote extra top-level headings to <h2>+.";
2325
2478
  const missingRecommendation = "Add a single, descriptive <h1> naming the page's main topic.";
@@ -2342,7 +2495,7 @@ const multipleRecommendation = "A single, clear <h1> is the conventional signal
2342
2495
  * `<svelte:boundary>` contribute only their largest arm. Separate blocks still sum, since both may be true.
2343
2496
  */
2344
2497
  function renderableH1s(headings) {
2345
- const nodes = headings.filter((h) => h.level === 1).map((heading) => ({
2498
+ const nodes = headings.filter((h) => h.level === 1 && !h.aria).map((heading) => ({
2346
2499
  key: "h1",
2347
2500
  path: heading.path ?? [],
2348
2501
  repeatable: false,
@@ -2371,7 +2524,7 @@ const seoSingleH1 = {
2371
2524
  severity: "warning",
2372
2525
  recommendation: missingRecommendation
2373
2526
  };
2374
- const first = route.headings[0];
2527
+ const first = route.headings.find((h) => !h.aria);
2375
2528
  if (first) where = {
2376
2529
  location: first.file,
2377
2530
  ...first.line > 0 ? { line: first.line } : {}
@@ -2413,8 +2566,7 @@ const seoSingleH1 = {
2413
2566
  return out;
2414
2567
  }
2415
2568
  };
2416
- //#endregion
2417
- //#region src/rules/seo/uniqueness-rule.ts
2569
+ // src/rules/seo/uniqueness-rule.ts
2418
2570
  /**
2419
2571
  * Build a route-scoped rule that flags a static title/description duplicated across
2420
2572
  * routes. A route-scoped rule still sees every route in `ctx.heads`, so it can
@@ -2472,8 +2624,7 @@ function uniquenessRule(opts) {
2472
2624
  }
2473
2625
  };
2474
2626
  }
2475
- //#endregion
2476
- //#region src/rules/seo/duplicate-title.ts
2627
+ // src/rules/seo/duplicate-title.ts
2477
2628
  const seoDuplicateTitle = uniquenessRule({
2478
2629
  id: "seo/duplicate-title",
2479
2630
  title: "Duplicate title",
@@ -2483,8 +2634,7 @@ const seoDuplicateTitle = uniquenessRule({
2483
2634
  recommendation: "Give each route a unique <title> that describes that page specifically.",
2484
2635
  rationale: "Duplicate titles across pages make them compete in search results and weaken each page’s relevance signal."
2485
2636
  });
2486
- //#endregion
2487
- //#region src/rules/seo/duplicate-description.ts
2637
+ // src/rules/seo/duplicate-description.ts
2488
2638
  const seoDuplicateDescription = uniquenessRule({
2489
2639
  id: "seo/duplicate-description",
2490
2640
  title: "Duplicate description",
@@ -2494,16 +2644,22 @@ const seoDuplicateDescription = uniquenessRule({
2494
2644
  recommendation: "Write a unique meta description per route so each search snippet is page-specific.",
2495
2645
  rationale: "Duplicate meta descriptions give search engines no per-page summary, so they are often ignored or rewritten."
2496
2646
  });
2497
- //#endregion
2498
- //#region src/headings.ts
2647
+ // src/headings.ts
2648
+ /** Sort comparator for `order`: element by element, a prefix first; headings without one keep their place. */
2649
+ function documentOrder(a, b) {
2650
+ if (!a.order || !b.order) return 0;
2651
+ for (let i = 0; i < Math.min(a.order.length, b.order.length); i++) if (a.order[i] !== b.order[i]) return a.order[i] - b.order[i];
2652
+ return a.order.length - b.order.length;
2653
+ }
2499
2654
  /** Two headings can never render together: different arms of one block. */
2500
2655
  function exclusiveHeadings(a, b) {
2501
2656
  if (!a.path || !b.path) return false;
2502
2657
  return a.path.some((s) => b.path.some((t) => s.group === t.group && s.branch !== t.branch));
2503
2658
  }
2504
- //#endregion
2505
- //#region src/rules/seo/heading-level-skip.ts
2659
+ // src/rules/seo/heading-level-skip.ts
2506
2660
  const docsUrl$5 = docsUrlFor("seo/heading-level-skip");
2661
+ /** Every arm `p` sits in that can be skipped, `h` sits in too: whenever `h` renders, so does `p` (or one like it). */
2662
+ const rendersWith = (p, h) => (p.path ?? []).every((s) => s.always || (h.path ?? []).some((t) => t.group === s.group && t.branch === s.branch));
2507
2663
  const recommendation$5 = "Increase heading levels one step at a time (do not jump, e.g. from <h2> straight to <h4>).";
2508
2664
  /**
2509
2665
  * seo/heading-level-skip — Skipped heading level. Walking a route's body headings in
@@ -2522,13 +2678,33 @@ const seoHeadingLevelSkip = {
2522
2678
  const out = [];
2523
2679
  for (const route of ctx.headings ?? []) {
2524
2680
  if (route.headings.length === 0) continue;
2681
+ const placed = (route.componentHeadings ?? []).filter((h) => h.order);
2682
+ const own = new Set(route.headings);
2683
+ const headings = [...route.headings, ...placed].sort(documentOrder);
2525
2684
  let skip;
2526
- for (let i = 1; i < route.headings.length && !skip; i++) {
2527
- const h = route.headings[i];
2528
- const prev = route.headings.slice(0, i).reverse().find((p) => !exclusiveHeadings(p, h));
2529
- if (prev && h.level > prev.level + 1) skip = {
2685
+ for (let i = 1; i < headings.length && !skip; i++) {
2686
+ const h = headings[i];
2687
+ if (!own.has(h)) continue;
2688
+ const before = headings.slice(0, i).filter((p) => !exclusiveHeadings(p, h) && (own.has(p) || rendersWith(p, h)));
2689
+ const prev = before.at(-1);
2690
+ if (!prev) continue;
2691
+ const levels = [prev.level];
2692
+ const arms = /* @__PURE__ */ new Set();
2693
+ const looped = prev.path?.some((s) => s.repeat && !h.path?.some((t) => t.group === s.group));
2694
+ for (let j = looped ? -1 : before.length - 2; j >= 0; j--) {
2695
+ const q = before[j];
2696
+ const step = q.path?.find((s) => prev.path?.some((t) => t.group === s.group && t.branch !== s.branch));
2697
+ const arm = step && `${step.group}:${step.branch}`;
2698
+ if (arm && !arms.has(arm)) {
2699
+ arms.add(arm);
2700
+ levels.push(q.level);
2701
+ }
2702
+ }
2703
+ const known = levels.filter((level) => level > 0);
2704
+ const lowest = Math.min(...known);
2705
+ if (known.length === levels.length && h.level > lowest + 1) skip = {
2530
2706
  level: h.level,
2531
- prev: prev.level,
2707
+ prev: lowest,
2532
2708
  line: h.line,
2533
2709
  file: h.file
2534
2710
  };
@@ -2559,8 +2735,7 @@ const seoHeadingLevelSkip = {
2559
2735
  return out;
2560
2736
  }
2561
2737
  };
2562
- //#endregion
2563
- //#region src/rules/component-rule.ts
2738
+ // src/rules/component-rule.ts
2564
2739
  /**
2565
2740
  * Whether `ruleId`'s finding on `line` is silenced by an inline directive in this file.
2566
2741
  * Exported so hand-written rules that also operate on per-file facts
@@ -2643,8 +2818,7 @@ function componentRule(opts) {
2643
2818
  facts: (ctx) => ctx.components
2644
2819
  });
2645
2820
  }
2646
- //#endregion
2647
- //#region src/rules/kit-module-rule.ts
2821
+ // src/rules/kit-module-rule.ts
2648
2822
  /**
2649
2823
  * Build a Kit-module-scoped rule (the security kit-module rules, seo/ssr-disabled) over
2650
2824
  * `ctx.kitModules` — `componentRule`'s engine over a different fact source, minus rule
@@ -2660,95 +2834,7 @@ function kitModuleRule(opts) {
2660
2834
  bad: (m, _o, ctx) => opts.bad(m, ctx)
2661
2835
  });
2662
2836
  }
2663
- //#endregion
2664
- //#region src/kit-module.ts
2665
- /** The root layout — its page options cover the whole app. */
2666
- const ROOT_LAYOUT_RE = /^src\/routes\/\+layout(\.server)?\.(ts|js)$/;
2667
- /** Files whose `ssr` export is a page option — it has no effect in `+server` endpoints or hooks files. */
2668
- const PAGE_OPTION_FILE_RE = /\+(page|layout)(\.server)?\.(ts|js)$/;
2669
- const appSsrCache = /* @__PURE__ */ new WeakMap();
2670
- /**
2671
- * Whether no page is ever server-rendered: the root layout exports `ssr = false` and no page-option
2672
- * file might turn it back on. Universal loads and components then run only in the browser; server
2673
- * files (`+page.server`, `+server`, hooks) still run on the server.
2674
- */
2675
- function appSsrDisabled(kitModules) {
2676
- if (!kitModules) return false;
2677
- let hit = appSsrCache.get(kitModules);
2678
- if (hit === void 0) {
2679
- hit = kitModules.some((m) => m.ssrDisabled && ROOT_LAYOUT_RE.test(m.file)) && !kitModules.some((m) => PAGE_OPTION_FILE_RE.test(m.file) && (m.ssrEnabled || m.parseFailed));
2680
- appSsrCache.set(kitModules, hit);
2681
- }
2682
- return hit;
2683
- }
2684
- const ROUTES_DIR$1 = "src/routes";
2685
- /** A `+page`/`+layout` file: its directory, kind, and the `@segment` layout reset (on `.svelte` names). */
2686
- const ROUTE_FILE_RE = /^(src\/routes(?:\/.+)?)\/\+(page|layout)(?:@([^/]*))?(?:\.server)?\.(?:svelte|ts|js)$/;
2687
- const parentDir = (dir) => dir === ROUTES_DIR$1 ? void 0 : dir.slice(0, dir.lastIndexOf("/"));
2688
- /** The nearest ancestor-or-self directory a `@segment` reset names (`''` is the root). */
2689
- function resetTarget(dir, segment) {
2690
- for (let d = dir; d !== void 0; d = parentDir(d)) if (segment === "" ? d === ROUTES_DIR$1 : d.slice(d.lastIndexOf("/") + 1) === segment) return d;
2691
- }
2692
- const routeSsrCache = /* @__PURE__ */ new WeakMap();
2693
- /**
2694
- * Per route directory, whether its page (`page:<dir>`) or layout (`layout:<dir>`) is never
2695
- * server-rendered. A page takes the nearest `ssr` export along its own files and then its layout
2696
- * chain, following `+page@x`/`+layout@x` resets as SvelteKit does; an export other than a literal
2697
- * `false`, or an unparsed option file, counts as SSR on. A layout is off only when every page using
2698
- * it is — and the root layout also needs its own `ssr = false`, since it wraps the 404 page.
2699
- */
2700
- function routeSsrOff(scope) {
2701
- const kitModules = scope.kitModules ?? [];
2702
- let hit = routeSsrCache.get(scope);
2703
- if (hit) return hit;
2704
- const pages = /* @__PURE__ */ new Map();
2705
- const layouts = /* @__PURE__ */ new Map();
2706
- const files = [
2707
- ...scope.sourceFiles ?? [],
2708
- ...(scope.components ?? []).map((c) => c.file),
2709
- ...kitModules.map((m) => m.file)
2710
- ];
2711
- for (const file of files) {
2712
- const match = ROUTE_FILE_RE.exec(file);
2713
- if (!match) continue;
2714
- const map = match[2] === "page" ? pages : layouts;
2715
- if (match[3] !== void 0 || !map.has(match[1])) map.set(match[1], match[3]);
2716
- }
2717
- const option = /* @__PURE__ */ new Map();
2718
- for (const m of kitModules) {
2719
- const match = ROUTE_FILE_RE.exec(m.file);
2720
- if (!match) continue;
2721
- const key = `${match[2]}:${match[1]}`;
2722
- if (m.ssrEnabled || m.parseFailed) option.set(key, "on");
2723
- else if (m.ssrDisabled && !option.has(key)) option.set(key, "off");
2724
- }
2725
- hit = /* @__PURE__ */ new Map();
2726
- for (const [dir, reset] of pages) {
2727
- const chain = [];
2728
- for (let d = reset === void 0 ? dir : resetTarget(dir, reset); d !== void 0;) {
2729
- const layoutReset = layouts.get(d);
2730
- if (layouts.has(d)) chain.push(d);
2731
- d = layoutReset === void 0 ? parentDir(d) : resetTarget(parentDir(d), layoutReset);
2732
- }
2733
- const off = [`page:${dir}`, ...chain.map((l) => `layout:${l}`)].map((k) => option.get(k)).find(Boolean) === "off";
2734
- hit.set(`page:${dir}`, off);
2735
- for (const l of chain) hit.set(`layout:${l}`, (hit.get(`layout:${l}`) ?? true) && off);
2736
- }
2737
- if (option.get(`layout:${ROUTES_DIR$1}`) !== "off") hit.delete(`layout:${ROUTES_DIR$1}`);
2738
- routeSsrCache.set(scope, hit);
2739
- return hit;
2740
- }
2741
- /** Whether a `+page`/`+layout` file (module or component) belongs to a route that is never server-rendered. */
2742
- function routeNeverSsr(file, scope) {
2743
- const match = ROUTE_FILE_RE.exec(file);
2744
- return !!match && routeSsrOff(scope).get(`${match[2]}:${match[1]}`) === true;
2745
- }
2746
- /** Whether a universal `+page`/`+layout` module never runs on the server — its own `ssr = false`, an app-wide one, or one its route inherits. */
2747
- function universalNeverSsr(m, scope) {
2748
- return m.kind === "universal" && (m.ssrDisabled !== void 0 || appSsrDisabled(scope.kitModules) || routeNeverSsr(m.file, scope));
2749
- }
2750
- //#endregion
2751
- //#region src/rules/seo/ssr-disabled.ts
2837
+ // src/rules/seo/ssr-disabled.ts
2752
2838
  const seoSsrDisabled = kitModuleRule({
2753
2839
  id: "seo/ssr-disabled",
2754
2840
  title: "SSR disabled",
@@ -2762,8 +2848,7 @@ const seoSsrDisabled = kitModuleRule({
2762
2848
  message: ROOT_LAYOUT_RE.test(m.file) ? "SSR is disabled for the whole app — search engines index server-rendered content more reliably, and SPA mode adds a network round trip before first paint" : "SSR is disabled for this route — its content is invisible to crawlers that don't execute JavaScript and indexes less reliably"
2763
2849
  }]
2764
2850
  });
2765
- //#endregion
2766
- //#region src/rules/correctness/each-key.ts
2851
+ // src/rules/correctness/each-key.ts
2767
2852
  const correctnessEachKey = componentRule({
2768
2853
  id: "correctness/each-key",
2769
2854
  title: "Keyed each block",
@@ -2777,8 +2862,7 @@ const correctnessEachKey = componentRule({
2777
2862
  message: "{#each} block has no key"
2778
2863
  }))
2779
2864
  });
2780
- //#endregion
2781
- //#region src/rules/correctness/each-index-key.ts
2865
+ // src/rules/correctness/each-index-key.ts
2782
2866
  const correctnessEachIndexKey = componentRule({
2783
2867
  id: "correctness/each-index-key",
2784
2868
  title: "Index used as each key",
@@ -2792,8 +2876,7 @@ const correctnessEachIndexKey = componentRule({
2792
2876
  message: "{#each} is keyed by its index — identity follows position, exactly like an unkeyed block, but the key makes it look safe."
2793
2877
  }))
2794
2878
  });
2795
- //#endregion
2796
- //#region src/rules/correctness/effect-as-derived.ts
2879
+ // src/rules/correctness/effect-as-derived.ts
2797
2880
  const correctnessEffectAsDerived = componentRule({
2798
2881
  id: "correctness/effect-as-derived",
2799
2882
  title: "Effect used to derive state",
@@ -2807,8 +2890,7 @@ const correctnessEffectAsDerived = componentRule({
2807
2890
  message: "$effect only assigns state — use $derived instead"
2808
2891
  }))
2809
2892
  });
2810
- //#endregion
2811
- //#region src/rules/correctness/effect-as-onmount.ts
2893
+ // src/rules/correctness/effect-as-onmount.ts
2812
2894
  const correctnessEffectAsOnMount = componentRule({
2813
2895
  id: "correctness/effect-as-onmount",
2814
2896
  title: "Effect used as onMount",
@@ -2822,8 +2904,7 @@ const correctnessEffectAsOnMount = componentRule({
2822
2904
  message: "$effect reads no reactive value this analysis can see — consider an event handler, {@attach}, or onMount instead"
2823
2905
  }))
2824
2906
  });
2825
- //#endregion
2826
- //#region src/rules/correctness/unmutated-state.ts
2907
+ // src/rules/correctness/unmutated-state.ts
2827
2908
  const correctnessUnmutatedState = componentRule({
2828
2909
  id: "correctness/unmutated-state",
2829
2910
  title: "Unmutated $state",
@@ -2838,8 +2919,7 @@ const correctnessUnmutatedState = componentRule({
2838
2919
  message: `$state "${s.name}" is never mutated — use const (or $state.raw if you only reassign it)`
2839
2920
  }))
2840
2921
  });
2841
- //#endregion
2842
- //#region src/rules/correctness/prop-mutation.ts
2922
+ // src/rules/correctness/prop-mutation.ts
2843
2923
  /**
2844
2924
  * correctness/prop-mutation — mutating a prop directly is a silent bug in both Svelte modes,
2845
2925
  * for different reasons: in runes mode, a non-$bindable prop mutation doesn't propagate to the
@@ -2861,8 +2941,7 @@ const correctnessPropMutation = componentRule({
2861
2941
  message: m.legacy ? `Prop "${m.name}" is mutated directly — Svelte's legacy-mode reactivity is assignment-based, so this alone will not update the UI. Reassign it after mutating (e.g. "${m.name} = ${m.name}").` : `Prop "${m.name}" is mutated, but it is not declared $bindable`
2862
2942
  }))
2863
2943
  });
2864
- //#endregion
2865
- //#region src/rules/correctness/stale-prop-derivation.ts
2944
+ // src/rules/correctness/stale-prop-derivation.ts
2866
2945
  /**
2867
2946
  * correctness/stale-prop-derivation — a value computed from a prop without $derived (runes
2868
2947
  * mode) or $: (legacy mode) is evaluated once, at init, and silently stops tracking the
@@ -2885,8 +2964,7 @@ const correctnessStalePropDerivation = componentRule({
2885
2964
  message: s.legacy ? `"${s.name}" is computed from a prop once, at initialization — it will not update when the prop changes. Prefix the assignment with $: to make it a reactive statement.` : `"${s.name}" is computed from a prop once, at initialization — it will not update when the prop changes. Wrap it in $derived.`
2886
2965
  }))
2887
2966
  });
2888
- //#endregion
2889
- //#region src/rules/correctness/nonreactive-builtin-state.ts
2967
+ // src/rules/correctness/nonreactive-builtin-state.ts
2890
2968
  /**
2891
2969
  * correctness/nonreactive-builtin-state — $state's deep proxy covers plain
2892
2970
  * objects and arrays only. A plain Map/Set/Date/URL/URLSearchParams in $state
@@ -2909,8 +2987,7 @@ const correctnessNonreactiveBuiltinState = componentRule({
2909
2987
  message: `"${s.name}" is a plain ${s.type} in $state — its mutations are not tracked, so the UI silently stops updating when it changes. Use Svelte${s.type} from 'svelte/reactivity'.`
2910
2988
  }))
2911
2989
  });
2912
- //#endregion
2913
- //#region src/rules/correctness/checkable-bind-value.ts
2990
+ // src/rules/correctness/checkable-bind-value.ts
2914
2991
  /**
2915
2992
  * correctness/checkable-bind-value — bind:value binds the DOM value property. A
2916
2993
  * checkbox/radio's user interaction toggles checkedness, which bind:value never observes. A
@@ -2934,8 +3011,7 @@ const correctnessCheckableBindValue = componentRule({
2934
3011
  message: v.kind === "checkbox" ? "bind:value on a checkbox does not track its checked state — it throws bind_invalid_checkbox_value in development; in a production build it silently tracks the value attribute instead of checkedness. Use bind:checked (single checkbox) or bind:group (checkbox list) instead." : "bind:value on a radio input does not track which option is selected — the bound value silently never updates when the user picks one. Use bind:group with a shared group variable across the radio inputs instead."
2935
3012
  }))
2936
3013
  });
2937
- //#endregion
2938
- //#region src/rules/correctness/autoplay-muted.ts
3014
+ // src/rules/correctness/autoplay-muted.ts
2939
3015
  /**
2940
3016
  * correctness/autoplay-muted — Chrome and Safari block autoplay with audio, and a blocked
2941
3017
  * `<video autoplay>` does not error: it silently never starts. The author sees it work in dev
@@ -2963,8 +3039,7 @@ const correctnessAutoplayMuted = componentRule({
2963
3039
  message: "<video autoplay> without muted — browsers block audible autoplay, so the video silently never starts playing"
2964
3040
  }))
2965
3041
  });
2966
- //#endregion
2967
- //#region src/rules/correctness/orphan-effect.ts
3042
+ // src/rules/correctness/orphan-effect.ts
2968
3043
  const correctnessOrphanEffect = componentRule({
2969
3044
  id: "correctness/orphan-effect",
2970
3045
  title: "Orphan $effect",
@@ -2979,8 +3054,7 @@ const correctnessOrphanEffect = componentRule({
2979
3054
  message: o.kind === "top-level" ? "$effect at module scope runs outside component initialisation — it throws effect_orphan at runtime" : `class "${o.className}" runs $effect in its constructor and is instantiated at module scope — it throws effect_orphan at runtime`
2980
3055
  }))
2981
3056
  });
2982
- //#endregion
2983
- //#region src/rules/correctness/orphan-lifecycle.ts
3057
+ // src/rules/correctness/orphan-lifecycle.ts
2984
3058
  const ID$9 = "correctness/orphan-lifecycle";
2985
3059
  const DOCS_URL$2 = docsUrlFor(ID$9);
2986
3060
  const LABEL$2 = "Lifecycle-call context";
@@ -3078,8 +3152,7 @@ const correctnessOrphanLifecycle = {
3078
3152
  return out;
3079
3153
  }
3080
3154
  };
3081
- //#endregion
3082
- //#region src/rules/correctness/base-path-navigation.ts
3155
+ // src/rules/correctness/base-path-navigation.ts
3083
3156
  const ID$8 = "correctness/base-path-navigation";
3084
3157
  const DOCS_URL$1 = docsUrlFor(ID$8);
3085
3158
  const LABEL$1 = "Base-path-aware navigation";
@@ -3162,8 +3235,7 @@ const correctnessBasePathNavigation = {
3162
3235
  return out;
3163
3236
  }
3164
3237
  };
3165
- //#endregion
3166
- //#region src/rules/correctness/server-browser-global.ts
3238
+ // src/rules/correctness/server-browser-global.ts
3167
3239
  const ID$7 = "correctness/server-browser-global";
3168
3240
  const DOCS_URL = docsUrlFor(ID$7);
3169
3241
  const LABEL = "Server-safe module code";
@@ -3235,8 +3307,7 @@ const correctnessServerBrowserGlobal = {
3235
3307
  return out;
3236
3308
  }
3237
3309
  };
3238
- //#endregion
3239
- //#region src/rules/correctness/instance-browser-global.ts
3310
+ // src/rules/correctness/instance-browser-global.ts
3240
3311
  const correctnessInstanceBrowserGlobal = componentRule({
3241
3312
  id: "correctness/instance-browser-global",
3242
3313
  title: "Browser global during component initialisation",
@@ -3244,14 +3315,13 @@ const correctnessInstanceBrowserGlobal = componentRule({
3244
3315
  label: "Server-safe component init",
3245
3316
  recommendation: "Move browser-only code into onMount or $effect (they never run on the server), or guard it with browser from $app/environment (or a typeof check).",
3246
3317
  rationale: "A component instance script runs on the server on every SSR render, where window/document/localStorage do not exist. Warning, not critical: a component rendered only behind a parent {#if browser} (or a client-only dynamic import) is a legitimate pattern that static analysis cannot prove cross-file.",
3247
- applies: (c, _o, ctx) => (c.browserGlobalRefs ?? []).some((r) => r.context === "instance") && !appSsrDisabled(ctx.kitModules) && !routeNeverSsr(c.file, ctx),
3318
+ applies: (c, _o, ctx) => (c.browserGlobalRefs ?? []).some((r) => r.context === "instance") && !appSsrDisabled(ctx) && !routeNeverSsr(c.file, ctx),
3248
3319
  bad: (c) => (c.browserGlobalRefs ?? []).filter((r) => r.context === "instance").map((r) => ({
3249
3320
  line: r.line,
3250
3321
  message: `${r.name} is accessed during component initialisation — during SSR this runs on the server, where ${r.name} is not defined`
3251
3322
  }))
3252
3323
  });
3253
- //#endregion
3254
- //#region src/rules/security/raw-html.ts
3324
+ // src/rules/security/raw-html.ts
3255
3325
  const securityRawHtml = componentRule({
3256
3326
  id: "security/raw-html",
3257
3327
  title: "Raw HTML render",
@@ -3265,8 +3335,7 @@ const securityRawHtml = componentRule({
3265
3335
  message: "{@html} renders unescaped HTML — ensure it is sanitized"
3266
3336
  }))
3267
3337
  });
3268
- //#endregion
3269
- //#region src/rules/security/javascript-url.ts
3338
+ // src/rules/security/javascript-url.ts
3270
3339
  const securityJavascriptUrl = componentRule({
3271
3340
  id: "security/javascript-url",
3272
3341
  title: "javascript: URL",
@@ -3280,8 +3349,7 @@ const securityJavascriptUrl = componentRule({
3280
3349
  message: "javascript: URL in an attribute"
3281
3350
  }))
3282
3351
  });
3283
- //#endregion
3284
- //#region src/rules/security/handler-state-write.ts
3352
+ // src/rules/security/handler-state-write.ts
3285
3353
  const securityHandlerStateWrite = kitModuleRule({
3286
3354
  id: "security/handler-state-write",
3287
3355
  title: "Handler writes imported state",
@@ -3296,8 +3364,7 @@ const securityHandlerStateWrite = kitModuleRule({
3296
3364
  message: `a server-executed handler writes imported module state "${w.name}" — module state is shared across all requests on the server; if this holds per-request or per-user data, one user's data can leak to another. Caches and rate limiters keyed by non-personal data are the benign shape — verify which this is`
3297
3365
  }))
3298
3366
  });
3299
- //#endregion
3300
- //#region src/rules/security/server-module-state.ts
3367
+ // src/rules/security/server-module-state.ts
3301
3368
  const securityServerModuleState = kitModuleRule({
3302
3369
  id: "security/server-module-state",
3303
3370
  title: "Server module-scope state",
@@ -3311,8 +3378,7 @@ const securityServerModuleState = kitModuleRule({
3311
3378
  message: r.inHandler ? `module-scope variable "${r.name}" is reassigned from a request handler — its value is shared across all requests on the server` : `module-scope variable "${r.name}" is reassigned from a function — if it runs during a request, the value is shared across all requests on the server`
3312
3379
  }))
3313
3380
  });
3314
- //#endregion
3315
- //#region src/rules/security/shared-state-import.ts
3381
+ // src/rules/security/shared-state-import.ts
3316
3382
  /** The `.svelte.ts` ↔ `.svelte.js` sibling of a resolved runes-module path. */
3317
3383
  function extSibling(path) {
3318
3384
  return path.endsWith(".svelte.ts") ? path.replace(/\.svelte\.ts$/, ".svelte.js") : path.replace(/\.svelte\.js$/, ".svelte.ts");
@@ -3343,8 +3409,7 @@ const securitySharedStateImport = kitModuleRule({
3343
3409
  return out;
3344
3410
  }
3345
3411
  });
3346
- //#endregion
3347
- //#region src/rules/architecture/component-size.ts
3412
+ // src/rules/architecture/component-size.ts
3348
3413
  /**
3349
3414
  * A component longer than this many lines is a "god component" smell.
3350
3415
  *
@@ -3377,8 +3442,7 @@ const architectureComponentSize = componentRule({
3377
3442
  }] : [];
3378
3443
  }
3379
3444
  });
3380
- //#endregion
3381
- //#region src/rules/architecture/prop-count.ts
3445
+ // src/rules/architecture/prop-count.ts
3382
3446
  /**
3383
3447
  * More destructured props than this suggests the component is doing too much.
3384
3448
  *
@@ -3412,8 +3476,7 @@ const architecturePropCount = componentRule({
3412
3476
  }] : [];
3413
3477
  }
3414
3478
  });
3415
- //#endregion
3416
- //#region src/svelte-ast.ts
3479
+ // src/svelte-ast.ts
3417
3480
  /**
3418
3481
  * `<style lang="scss">` and friends. The leading `\s` before `lang` is what keeps `data-lang` out.
3419
3482
  * This is a text scan, not a parse, so it can also match style-like text inside a script string or
@@ -3432,7 +3495,8 @@ const PREPROCESSED_STYLE_RE = /(<style\b[^>]*\slang\s*=\s*['"]?[^'"\s>]+['"]?[^>
3432
3495
  * the text scan's imprecision cannot reach it. A file that does not parse is already a hard failure,
3433
3496
  * which the retry can only improve on.
3434
3497
  */
3435
- function parseSvelte(source, filename) {
3498
+ function parseSvelte(raw, filename) {
3499
+ const source = raw.charCodeAt(0) === 65279 ? ` ${raw.slice(1)}` : raw;
3436
3500
  try {
3437
3501
  return parse(source, {
3438
3502
  modern: true,
@@ -3498,12 +3562,25 @@ function attrValue(attributes, name) {
3498
3562
  const attr = findAttr(attributes, name);
3499
3563
  return attr ? attrValueOf(attr) : "absent";
3500
3564
  }
3565
+ const lineStarts = /* @__PURE__ */ new Map();
3501
3566
  function lineOf(source, offset) {
3502
3567
  if (typeof offset !== "number" || offset < 0) return 0;
3503
- let line = 1;
3568
+ let starts = lineStarts.get(source);
3569
+ if (!starts) {
3570
+ starts = [0];
3571
+ for (let i = source.indexOf("\n"); i !== -1; i = source.indexOf("\n", i + 1)) starts.push(i + 1);
3572
+ if (lineStarts.size >= 8) lineStarts.delete(lineStarts.keys().next().value);
3573
+ lineStarts.set(source, starts);
3574
+ }
3504
3575
  const end = Math.min(offset, source.length);
3505
- for (let i = 0; i < end; i++) if (source[i] === "\n") line++;
3506
- return line;
3576
+ let lo = 0;
3577
+ let hi = starts.length;
3578
+ while (lo < hi) {
3579
+ const mid = lo + hi >> 1;
3580
+ if (starts[mid] <= end) lo = mid + 1;
3581
+ else hi = mid;
3582
+ }
3583
+ return lo;
3507
3584
  }
3508
3585
  /**
3509
3586
  * An element's attribute by name, matched **case-insensitively**: HTML attribute names are, so
@@ -3532,11 +3609,10 @@ function attrTextOf(attr) {
3532
3609
  const v = attr?.value;
3533
3610
  return Array.isArray(v) ? textFromNodes(v) : void 0;
3534
3611
  }
3535
- //#endregion
3536
- //#region src/module-ast.ts
3612
+ // src/module-ast.ts
3537
3613
  function unwrapTs(expr) {
3538
3614
  let cur = expr;
3539
- while (cur !== void 0 && (cur.type === "TSSatisfiesExpression" || cur.type === "TSAsExpression" || cur.type === "TSNonNullExpression")) cur = cur.expression;
3615
+ while (cur != null && (cur.type === "TSSatisfiesExpression" || cur.type === "TSAsExpression" || cur.type === "TSNonNullExpression")) cur = cur.expression;
3540
3616
  return cur;
3541
3617
  }
3542
3618
  /** AST metadata keys every walker skips — never traversed as child nodes. Shared with the Kit-module parser (the security kit-module rules). */
@@ -3589,8 +3665,8 @@ function addBoundNames(id, acc) {
3589
3665
  }
3590
3666
  /** The base identifier name of a (possibly nested) member expression or identifier, else undefined. Shared with the Kit-module parser (the security kit-module rules). */
3591
3667
  function rootObjectName(node) {
3592
- let cur = node;
3593
- while (cur?.type === "MemberExpression") cur = cur.object;
3668
+ let cur = unwrapTs(node);
3669
+ while (cur?.type === "MemberExpression") cur = unwrapTs(cur.object);
3594
3670
  return cur?.type === "Identifier" ? cur.name : void 0;
3595
3671
  }
3596
3672
  /**
@@ -3842,6 +3918,11 @@ function collectProgramBindings(program) {
3842
3918
  for (const s of stmt.specifiers ?? []) if (s?.local?.type === "Identifier") bound.add(s.local.name);
3843
3919
  continue;
3844
3920
  }
3921
+ if (stmt?.type === "LabeledStatement" && stmt.label?.name === "$") {
3922
+ const e = stmt.body?.type === "ExpressionStatement" ? stmt.body.expression : void 0;
3923
+ if (e?.type === "AssignmentExpression" && e.operator === "=") addBoundNames(e.left, bound);
3924
+ continue;
3925
+ }
3845
3926
  const decl = unwrapExport(stmt);
3846
3927
  if (decl?.type === "VariableDeclaration") for (const d of decl.declarations ?? []) addBoundNames(d?.id, bound);
3847
3928
  else if ((decl?.type === "FunctionDeclaration" || decl?.type === "ClassDeclaration") && decl.id?.type === "Identifier") bound.add(decl.id.name);
@@ -3886,6 +3967,13 @@ function isBrowserGuardTest(test, guardBindings) {
3886
3967
  });
3887
3968
  return guarded;
3888
3969
  }
3970
+ /** The tracked global `G` of a `typeof G === 'undefined'` test: the test is false only where `G` is defined. */
3971
+ function missingGlobalOf(n) {
3972
+ if (n?.type !== "BinaryExpression" || n.operator !== "===" && n.operator !== "==") return void 0;
3973
+ const sides = [n.left, n.right];
3974
+ if (!sides.some((s) => s?.type === "Literal" && s.value === "undefined")) return void 0;
3975
+ return sides.find((s) => s?.type === "UnaryExpression" && s.operator === "typeof" && s.argument?.type === "Identifier" && BROWSER_GLOBALS.has(s.argument.name))?.argument.name;
3976
+ }
3889
3977
  /**
3890
3978
  * Names of derived guard bindings (one level, no fixpoint chasing): a top-level
3891
3979
  * (export-unwrapped) `const`/`let` declarator whose init passes `isBrowserGuardTest` —
@@ -3905,6 +3993,95 @@ function collectDerivedGuardBindings(program, guards) {
3905
3993
  }
3906
3994
  return derived;
3907
3995
  }
3996
+ const DOM_ONLY_GLOBALS = /* @__PURE__ */ new Set(["window", "document"]);
3997
+ /**
3998
+ * Unlike `isBrowserGuardTest` this keeps the polarity and each outcome apart, because a write the
3999
+ * guard leaves reachable on the server must still be reported: `!browser && url.search` being falsy
4000
+ * proves nothing.
4001
+ */
4002
+ function guardImplies(test, guards, shadowed) {
4003
+ if (test?.type === "Identifier") return !shadowed.has(test.name) && guards.get(test.name) || {};
4004
+ if (test?.type === "UnaryExpression" && test.operator === "!") {
4005
+ const inner = guardImplies(test.argument, guards, shadowed);
4006
+ return {
4007
+ truthy: inner.falsy,
4008
+ falsy: inner.truthy
4009
+ };
4010
+ }
4011
+ if (test?.type === "LogicalExpression" && (test.operator === "&&" || test.operator === "||")) {
4012
+ const a = guardImplies(test.left, guards, shadowed);
4013
+ const b = guardImplies(test.right, guards, shadowed);
4014
+ const agree = (x, y) => x === y ? x : void 0;
4015
+ return test.operator === "&&" ? {
4016
+ truthy: a.truthy ?? b.truthy,
4017
+ falsy: agree(a.falsy, b.falsy)
4018
+ } : {
4019
+ truthy: agree(a.truthy, b.truthy),
4020
+ falsy: a.falsy ?? b.falsy
4021
+ };
4022
+ }
4023
+ if (test?.type === "BinaryExpression" && [
4024
+ "===",
4025
+ "!==",
4026
+ "==",
4027
+ "!="
4028
+ ].includes(test.operator)) {
4029
+ const sides = [test.left, test.right];
4030
+ const hasTypeofGlobal = sides.some((s) => s?.type === "UnaryExpression" && s.operator === "typeof" && s.argument?.type === "Identifier" && DOM_ONLY_GLOBALS.has(s.argument.name) && !shadowed.has(s.argument.name));
4031
+ const type = sides.find((s) => s?.type === "Literal" && typeof s.value === "string")?.value;
4032
+ if (!hasTypeofGlobal || type === void 0) return {};
4033
+ const equal = test.operator === "===" || test.operator === "==";
4034
+ if (type === "undefined") return equal ? {
4035
+ truthy: "server",
4036
+ falsy: "browser"
4037
+ } : {
4038
+ truthy: "browser",
4039
+ falsy: "server"
4040
+ };
4041
+ return equal ? { truthy: "browser" } : { falsy: "browser" };
4042
+ }
4043
+ return {};
4044
+ }
4045
+ /**
4046
+ * Source ranges only the browser reaches: the arm of an `if`/ternary its browser guard selects, the
4047
+ * right side of `browser && x` or `!browser || x`, and the statements after a terminating early return
4048
+ * the server always takes (`if (!browser) return;`) in their block. A top-level `const` derived from a
4049
+ * guard (`const serverOnly = !browser`) carries its own polarity.
4050
+ */
4051
+ function browserOnlyRanges(program, envGuards) {
4052
+ const guards = new Map([...envGuards].map((name) => [name, {
4053
+ truthy: "browser",
4054
+ falsy: "server"
4055
+ }]));
4056
+ const bound = collectProgramBindings(program);
4057
+ for (const name of envGuards) bound.delete(name);
4058
+ for (const stmt of program.body ?? []) {
4059
+ const decl = unwrapExport(stmt);
4060
+ if (decl?.type !== "VariableDeclaration" || decl.kind !== "const") continue;
4061
+ for (const d of decl.declarations ?? []) {
4062
+ const implied = d?.id?.type === "Identifier" && d.init ? guardImplies(d.init, guards, bound) : {};
4063
+ if (implied.truthy || implied.falsy) guards.set(d.id.name, implied);
4064
+ }
4065
+ }
4066
+ for (const name of guards.keys()) bound.delete(name);
4067
+ const out = [];
4068
+ const push = (n) => n && out.push([n.start, n.end]);
4069
+ walkScoped(program, (n, shadowed) => {
4070
+ const implies = (test) => guardImplies(test, guards, shadowed);
4071
+ if (n.type === "IfStatement" || n.type === "ConditionalExpression") {
4072
+ const implied = implies(n.test);
4073
+ if (implied.truthy === "browser") push(n.consequent);
4074
+ if (implied.falsy === "browser") push(n.alternate);
4075
+ } else if (n.type === "LogicalExpression" && (n.operator === "&&" || n.operator === "||")) {
4076
+ if (implies(n.left)[n.operator === "&&" ? "truthy" : "falsy"] === "browser") push(n.right);
4077
+ } else if (n.type === "BlockStatement" || n.type === "Program") {
4078
+ const body = n.body ?? [];
4079
+ const at = body.findIndex((stmt) => stmt?.type === "IfStatement" && implies(stmt.test).falsy === "browser" && guardTerminates(stmt.consequent));
4080
+ if (at >= 0 && at < body.length - 1) out.push([body[at + 1].start, body[body.length - 1].end]);
4081
+ }
4082
+ }, bound);
4083
+ return out;
4084
+ }
3908
4085
  /**
3909
4086
  * Browser-global reads in code that executes when `program` (or a passed function body)
3910
4087
  * is evaluated (correctness/server-browser-global, correctness/instance-browser-global). Position-aware — only read positions match: never a
@@ -3940,6 +4117,12 @@ function collectBrowserGlobalRefs(program, source, extra) {
3940
4117
  if (EVAL_SCOPE_BOUNDARIES.has(n.type)) return;
3941
4118
  if ((n.type === "IfStatement" || n.type === "ConditionalExpression") && isBrowserGuardTest(n.test, guards)) return;
3942
4119
  if (n.type === "LogicalExpression" && (n.operator === "&&" ? isBrowserGuardTest(n.left, guards) : n.left?.type === "UnaryExpression" && n.left.operator === "!" && isBrowserGuardTest(n.left.argument, guards))) return;
4120
+ const missing = n.type === "LogicalExpression" && n.operator === "||" ? missingGlobalOf(n.left) : void 0;
4121
+ if (missing && !bound.has(missing) && !shadowed.has(missing)) {
4122
+ visit(n.left, shadowed);
4123
+ if (!DOM_ONLY_GLOBALS.has(missing)) visit(n.right, /* @__PURE__ */ new Set([...shadowed, missing]));
4124
+ return;
4125
+ }
3943
4126
  const introduced = scopeIntroducedNames(n);
3944
4127
  const scope = introduced.size > 0 ? /* @__PURE__ */ new Set([...shadowed, ...introduced]) : shadowed;
3945
4128
  switch (n.type) {
@@ -4003,8 +4186,7 @@ function parseModuleProgram(source, filename) {
4003
4186
  wrapped
4004
4187
  };
4005
4188
  }
4006
- //#endregion
4007
- //#region src/base-path.ts
4189
+ // src/base-path.ts
4008
4190
  /**
4009
4191
  * The path shape broken by `kit.paths.base` (correctness/base-path-navigation). Pure data
4010
4192
  * predicate — no imports, so both the component and Kit-module parsers can use it freely.
@@ -4017,8 +4199,7 @@ function parseModuleProgram(source, filename) {
4017
4199
  function isRootRelativePath(value) {
4018
4200
  return value.startsWith("/") && !value.startsWith("//");
4019
4201
  }
4020
- //#endregion
4021
- //#region src/kit-module-parse.ts
4202
+ // src/kit-module-parse.ts
4022
4203
  /** Exported names whose function bodies run on the server per request (SvelteKit's contract). */
4023
4204
  const HANDLER_NAMES = /* @__PURE__ */ new Set([
4024
4205
  "load",
@@ -4034,6 +4215,11 @@ const HANDLER_NAMES = /* @__PURE__ */ new Set([
4034
4215
  "OPTIONS",
4035
4216
  "fallback"
4036
4217
  ]);
4218
+ /** Whether `arg` can be a store updater: a function literal, or a function this module declares. */
4219
+ function isUpdaterArgument(arg, localFunctions) {
4220
+ const e = arg ? unwrapTs(arg) : void 0;
4221
+ return isFunctionNode(e) || e?.type === "Identifier" && localFunctions.has(e.name);
4222
+ }
4037
4223
  function isFunctionNode(n) {
4038
4224
  return n?.type === "FunctionDeclaration" || n?.type === "FunctionExpression" || n?.type === "ArrowFunctionExpression";
4039
4225
  }
@@ -4135,7 +4321,7 @@ function collectStartupFunctions(program) {
4135
4321
  }
4136
4322
  /**
4137
4323
  * The `export const ssr = false` / `export const csr = false` opt-out, when
4138
- * present: inline form (`satisfies`/`as` unwrapped) or same-file alias export
4324
+ * present (`= dev` too): inline form (`satisfies`/`as` unwrapped) or same-file alias export
4139
4325
  * (`const ssr = false; export { ssr };`). Returns the declaration's line in the
4140
4326
  * WRAPPED source (the caller applies the −1 shift). An `ssr = false` file never
4141
4327
  * runs on the server — correctness/server-browser-global skips its browser-global scan, and seo/ssr-disabled
@@ -4143,10 +4329,27 @@ function collectStartupFunctions(program) {
4143
4329
  * performance/load-waterfall exempts it (see `csrDisabled` on `KitModuleFacts`).
4144
4330
  */
4145
4331
  function findFalseOptOut(program, source, name) {
4332
+ const dev = collectNamedImportAliases(program, "$app/environment", DEV_NAMES);
4146
4333
  let hit;
4147
4334
  forEachNamedExport(program, (exported, value, anchor) => {
4148
- if (exported !== name || value?.type !== "Literal" || value.value !== false) return void 0;
4149
- hit = { line: lineOf(source, anchor.start) };
4335
+ const literal = value?.type === "Literal" && value.value === false;
4336
+ if (exported !== name || !(literal || value?.type === "Identifier" && dev.has(value.name))) return void 0;
4337
+ hit = {
4338
+ line: lineOf(source, anchor.start),
4339
+ literal
4340
+ };
4341
+ return true;
4342
+ });
4343
+ return hit;
4344
+ }
4345
+ const DEV_NAMES = /* @__PURE__ */ new Set(["dev"]);
4346
+ const BUILDING_NAMES = /* @__PURE__ */ new Set(["building"]);
4347
+ /** Whether the module exports `name` as the literal `true` (inline or same-file alias export). */
4348
+ function exportsTrue(program, name) {
4349
+ let hit = false;
4350
+ forEachNamedExport(program, (exported, value) => {
4351
+ if (exported !== name) return void 0;
4352
+ hit = value?.type === "Literal" && value.value === true;
4150
4353
  return true;
4151
4354
  });
4152
4355
  return hit;
@@ -4197,8 +4400,18 @@ const MUTATING_METHODS = /* @__PURE__ */ new Set([
4197
4400
  "add",
4198
4401
  "set"
4199
4402
  ]);
4403
+ const ITERATING_METHODS = /* @__PURE__ */ new Set([
4404
+ "forEach",
4405
+ "map",
4406
+ "flatMap",
4407
+ "filter",
4408
+ "some",
4409
+ "every",
4410
+ "reduce"
4411
+ ]);
4200
4412
  const REDIRECT_NAMES = /* @__PURE__ */ new Set(["redirect"]);
4201
4413
  const EXIT_NAMES = /* @__PURE__ */ new Set(["redirect", "error"]);
4414
+ const ERROR_NAMES = /* @__PURE__ */ new Set(["error"]);
4202
4415
  /**
4203
4416
  * Root-relative `redirect(status, '/…')` targets (correctness/base-path-navigation). Argument 1
4204
4417
  * is the location (argument 0 is the status). Only a plain string literal counts, which
@@ -4218,6 +4431,116 @@ function collectRedirectCalls(node, locals, out = []) {
4218
4431
  }
4219
4432
  return out;
4220
4433
  }
4434
+ /**
4435
+ * The string literals a `transformPageChunk` option replaces in the page HTML (`html.replace(TOKEN, …)`,
4436
+ * `.replaceAll`), wherever the file passes one to `resolve`, a same-file `const` holding the string
4437
+ * included. A token the hook builds at run time is not read.
4438
+ */
4439
+ function pageChunkTokens(program) {
4440
+ const consts = /* @__PURE__ */ new Map();
4441
+ for (const stmt of program.body ?? []) {
4442
+ const decl = stmt?.type === "ExportNamedDeclaration" ? stmt.declaration : stmt;
4443
+ if (decl?.type !== "VariableDeclaration" || decl.kind !== "const") continue;
4444
+ for (const d of decl.declarations ?? []) {
4445
+ const init = unwrapTs(d.init);
4446
+ if (d.id?.type === "Identifier" && init?.type === "Literal" && typeof init.value === "string") consts.set(d.id.name, init.value);
4447
+ }
4448
+ }
4449
+ const out = /* @__PURE__ */ new Set();
4450
+ const visit = (n, inChunk) => {
4451
+ if (Array.isArray(n)) return n.forEach((c) => visit(c, inChunk));
4452
+ if (!n || typeof n !== "object" || typeof n.type !== "string") return;
4453
+ const chunk = inChunk || n.type === "Property" && !n.computed && n.key?.type === "Identifier" && n.key.name === "transformPageChunk";
4454
+ if (chunk && n.type === "CallExpression" && n.callee?.type === "MemberExpression" && !n.callee.computed) {
4455
+ const method = n.callee.property?.name;
4456
+ const arg = unwrapTs(n.arguments?.[0]);
4457
+ const token = arg?.type === "Literal" && typeof arg.value === "string" ? arg.value : arg?.type === "Identifier" ? consts.get(arg.name) : void 0;
4458
+ if ((method === "replace" || method === "replaceAll") && token) out.add(token);
4459
+ }
4460
+ for (const key of Object.keys(n)) if (!WALK_IGNORED_KEYS.has(key)) visit(n[key], chunk);
4461
+ };
4462
+ visit(program, false);
4463
+ return [...out];
4464
+ }
4465
+ /** Whether `node` calls `name` outside nested functions. */
4466
+ function callsOutsideFunctions(node, name) {
4467
+ if (Array.isArray(node)) return node.some((n) => callsOutsideFunctions(n, name));
4468
+ if (!node || typeof node !== "object" || typeof node.type !== "string") return false;
4469
+ if (node.type === "CallExpression" && node.callee?.type === "Identifier" && node.callee.name === name) return true;
4470
+ return Object.keys(node).some((key) => !WALK_IGNORED_KEYS.has(key) && callsOutsideFunctions(node[key], name));
4471
+ }
4472
+ /**
4473
+ * The request paths the exported `handle` answers on every request, before calling `resolve`: an `if` on
4474
+ * the path alone (`pathname === '/x'`, `pathname.startsWith('/x')`, or an `||` of those, with `pathname`
4475
+ * read from the `event` parameter, directly or through a `const`) whose body returns or throws, among the
4476
+ * statements before the first one that calls `resolve`. A test that also reads anything else, a `sequence(…)`
4477
+ * handle and a guard in another function are not read.
4478
+ */
4479
+ function handleAnsweredPaths(program, exits) {
4480
+ let handle;
4481
+ forEachNamedExport(program, (name, value) => {
4482
+ if (name === "handle" && isFunctionNode(value)) handle = value;
4483
+ return handle !== void 0;
4484
+ });
4485
+ const param = handle?.params?.[0];
4486
+ if (handle?.body?.type !== "BlockStatement" || param?.type !== "ObjectPattern") return [];
4487
+ const local = (key) => {
4488
+ const p = param.properties?.find((q) => q.type === "Property" && q.key?.type === "Identifier" && q.key.name === key);
4489
+ return p?.value?.type === "Identifier" ? p.value.name : void 0;
4490
+ };
4491
+ const event = local("event");
4492
+ const resolve = local("resolve");
4493
+ if (!event || !resolve) return [];
4494
+ const isUrl = (n) => n?.type === "MemberExpression" && !n.computed && n.property?.name === "url" && n.object?.type === "Identifier" && n.object.name === event;
4495
+ const aliases = /* @__PURE__ */ new Set();
4496
+ const isPath = (n) => {
4497
+ const e = unwrapTs(n);
4498
+ if (e?.type === "Identifier") return aliases.has(e.name);
4499
+ return e?.type === "MemberExpression" && !e.computed && e.property?.name === "pathname" && isUrl(e.object);
4500
+ };
4501
+ const literal = (n) => n?.type === "Literal" && typeof n.value === "string" ? n.value : void 0;
4502
+ const conds = (t) => {
4503
+ if (t?.type === "LogicalExpression" && t.operator === "||") {
4504
+ const l = conds(t.left);
4505
+ const r = conds(t.right);
4506
+ return l && r ? [...l, ...r] : void 0;
4507
+ }
4508
+ if (t?.type === "BinaryExpression" && (t.operator === "===" || t.operator === "==")) {
4509
+ const v = isPath(t.left) ? literal(t.right) : isPath(t.right) ? literal(t.left) : void 0;
4510
+ return v === void 0 ? void 0 : [{
4511
+ op: "eq",
4512
+ v
4513
+ }];
4514
+ }
4515
+ const callee = t?.type === "CallExpression" ? t.callee : void 0;
4516
+ const v = literal(t?.arguments?.[0]);
4517
+ return callee?.type === "MemberExpression" && callee.property?.name === "startsWith" && isPath(callee.object) && v !== void 0 ? [{
4518
+ op: "starts",
4519
+ v
4520
+ }] : void 0;
4521
+ };
4522
+ const exitsAlways = (s) => {
4523
+ if (s?.type === "BlockStatement") return s.body.length > 0 && exitsAlways(s.body[s.body.length - 1]);
4524
+ if (s?.type === "ReturnStatement" || s?.type === "ThrowStatement") return true;
4525
+ const call = s?.type === "ExpressionStatement" ? unwrapTs(s.expression) : void 0;
4526
+ return call?.type === "CallExpression" && call.callee?.type === "Identifier" && exits.has(call.callee.name);
4527
+ };
4528
+ const out = [];
4529
+ for (const stmt of handle.body.body) {
4530
+ if (callsOutsideFunctions(stmt, resolve)) break;
4531
+ if (stmt.type === "VariableDeclaration" && stmt.kind === "const") for (const d of stmt.declarations ?? []) {
4532
+ if (d.id?.type === "Identifier" && isPath(d.init)) aliases.add(d.id.name);
4533
+ if (d.id?.type === "ObjectPattern" && isUrl(unwrapTs(d.init))) {
4534
+ const p = d.id.properties?.find((q) => q.type === "Property" && q.key?.name === "pathname");
4535
+ if (p?.value?.type === "Identifier") aliases.add(p.value.name);
4536
+ }
4537
+ }
4538
+ if (stmt.type !== "IfStatement" || !exitsAlways(stmt.consequent)) continue;
4539
+ const c = conds(stmt.test);
4540
+ if (c) out.push(...c);
4541
+ }
4542
+ return out;
4543
+ }
4221
4544
  /** Whether `node` holds a `return` outside nested functions. */
4222
4545
  function containsReturn(node) {
4223
4546
  if (Array.isArray(node)) return node.some(containsReturn);
@@ -4232,9 +4555,16 @@ function containsReturn(node) {
4232
4555
  * of the same file that itself always redirects. A redirect under an `if` without an `else`, in a
4233
4556
  * loop, or in a function declared inside `load` does not count.
4234
4557
  */
4235
- function loadNeverRenders(program, locals) {
4558
+ function loadNeverRenders(program, locals, building = /* @__PURE__ */ new Set()) {
4236
4559
  const load = locals.size > 0 ? findLoadFunction(program) : void 0;
4237
- if (!load?.body) return false;
4560
+ return !!load?.body && alwaysExits(program, load, locals, building);
4561
+ }
4562
+ /**
4563
+ * Whether `fn`, a function of `program`, redirects or errors on every call (see `loadNeverRenders`).
4564
+ * `building` holds the names `building` from `$app/environment` is imported as: an `if` on one of them
4565
+ * is read with the test false, as it is on every request.
4566
+ */
4567
+ function alwaysExits(program, fn, locals, building = /* @__PURE__ */ new Set()) {
4238
4568
  const topLevel = collectTopLevelBindings(program);
4239
4569
  const fnRedirects = (fn, seen, observed) => {
4240
4570
  const shadow = /* @__PURE__ */ new Set();
@@ -4276,15 +4606,183 @@ function loadNeverRenders(program, locals) {
4276
4606
  }
4277
4607
  return false;
4278
4608
  };
4609
+ const plainReturn = (node, shadow, frame) => {
4610
+ if (Array.isArray(node)) return node.some((n) => plainReturn(n, shadow, frame));
4611
+ if (!node || typeof node !== "object" || typeof node.type !== "string" || isFunctionNode(node)) return false;
4612
+ if (node.type === "ReturnStatement") return !isRedirect(node.argument, shadow, frame, frame.observed);
4613
+ const scope = node.type === "BlockStatement" ? within(node.body, shadow) : shadow;
4614
+ return Object.keys(node).some((key) => !WALK_IGNORED_KEYS.has(key) && plainReturn(node[key], scope, frame));
4615
+ };
4279
4616
  const always = (body, outer, rethrow, frame) => {
4280
4617
  const shadow = within(body, outer);
4281
- for (const stmt of body ?? []) {
4618
+ for (let stmt of body ?? []) {
4619
+ const test = stmt?.type === "IfStatement" ? unwrapTs(stmt.test) : void 0;
4620
+ if (test?.type === "Identifier" && building.has(test.name) && !shadow.has(test.name)) {
4621
+ if (!stmt.alternate) continue;
4622
+ stmt = stmt.alternate;
4623
+ }
4282
4624
  if (redirects(stmt, shadow, rethrow, frame)) return true;
4283
- if (containsReturn(stmt)) return false;
4625
+ if (plainReturn(stmt, shadow, frame)) return false;
4626
+ }
4627
+ return false;
4628
+ };
4629
+ return fnRedirects(fn, /* @__PURE__ */ new Set(), true);
4630
+ }
4631
+ /**
4632
+ * The binding a load's leading flag guard reads: a top-level `if (!FLAG) <exit>` (or `!NS.FLAG`) before
4633
+ * any `return`, where `FLAG` is imported from a repo-local module. When that export is the literal
4634
+ * `false`, every request takes the exit; `collectKitModuleFacts` reads the module to decide.
4635
+ */
4636
+ function leadingFlagGuard(program, exits, imported) {
4637
+ const load = exits.size > 0 ? findLoadFunction(program) : void 0;
4638
+ if (load?.body?.type !== "BlockStatement") return void 0;
4639
+ const local = /* @__PURE__ */ new Set();
4640
+ for (const param of load.params ?? []) addBoundNames(param, local);
4641
+ for (const stmt of load.body.body) if (stmt?.type === "VariableDeclaration") for (const d of stmt.declarations ?? []) addBoundNames(d?.id, local);
4642
+ else if ((stmt?.type === "FunctionDeclaration" || stmt?.type === "ClassDeclaration") && stmt.id) local.add(stmt.id.name);
4643
+ const exitCall = (e) => {
4644
+ const x = unwrapTs(e);
4645
+ return x?.type === "CallExpression" && x.callee?.type === "Identifier" && exits.has(x.callee.name) && !local.has(x.callee.name);
4646
+ };
4647
+ const exitsFirst = (stmt) => {
4648
+ if (stmt?.type === "BlockStatement") {
4649
+ for (const inner of stmt.body) {
4650
+ if (exitsFirst(inner)) return true;
4651
+ if (containsReturn(inner)) return false;
4652
+ }
4653
+ return false;
4654
+ }
4655
+ return stmt?.type === "ExpressionStatement" && exitCall(stmt.expression) || (stmt?.type === "ThrowStatement" || stmt?.type === "ReturnStatement") && exitCall(stmt.argument);
4656
+ };
4657
+ for (const stmt of load.body.body) {
4658
+ const test = stmt?.type === "IfStatement" && exitsFirst(stmt.consequent) ? unwrapTs(stmt.test) : void 0;
4659
+ if (test?.type === "UnaryExpression" && test.operator === "!") {
4660
+ const arg = unwrapTs(test.argument);
4661
+ const root = arg?.type === "MemberExpression" && !arg.computed ? unwrapTs(arg.object) : arg;
4662
+ const member = arg !== root && arg.property?.type === "Identifier" ? arg.property.name : void 0;
4663
+ const from = root?.type === "Identifier" && !local.has(root.name) && (arg === root || member) ? imported(root.name) : void 0;
4664
+ if (from) return {
4665
+ ...from,
4666
+ ...member ? { member } : {}
4667
+ };
4668
+ }
4669
+ if (containsReturn(stmt)) return void 0;
4670
+ }
4671
+ }
4672
+ /** The imported function `export const load = factory(…)` calls, for `collectKitModuleFacts` to read. */
4673
+ function loadFactory(program, imported) {
4674
+ let call;
4675
+ forEachNamedExport(program, (name, value) => {
4676
+ if (name !== "load") return void 0;
4677
+ call = unwrapTs(value);
4678
+ return true;
4679
+ });
4680
+ return call?.type === "CallExpression" && call.callee?.type === "Identifier" ? imported(call.callee.name) : void 0;
4681
+ }
4682
+ /**
4683
+ * The exported functions of a module that return a function which redirects or errors on every call
4684
+ * (`createRedirect = (to) => () => redirect(307, to)`), read like a `load` that does.
4685
+ */
4686
+ function parseExitFactoryExports(source, filename) {
4687
+ const { program } = parseModuleProgram(source, filename);
4688
+ const exits = collectNamedImportAliases(program, "@sveltejs/kit", EXIT_NAMES);
4689
+ const names = /* @__PURE__ */ new Set();
4690
+ if (exits.size === 0) return names;
4691
+ forEachNamedExport(program, (name, value) => {
4692
+ if (!isFunctionNode(value)) return void 0;
4693
+ const first = (value.body?.type === "BlockStatement" ? value.body.body : [{
4694
+ type: "ReturnStatement",
4695
+ argument: value.body
4696
+ }]).find((stmt) => containsReturn(stmt));
4697
+ const returned = first?.type === "ReturnStatement" ? first.argument : void 0;
4698
+ if (isFunctionNode(returned) && alwaysExits(program, returned, exits)) names.add(name);
4699
+ });
4700
+ return names;
4701
+ }
4702
+ /** The exports of a module that are the literal `false`, as `NAME` or `NAME.member` (an object literal's own property). */
4703
+ function parseFalseExports(source, filename) {
4704
+ return collectFalseExports(parseModuleProgram(source, filename).program);
4705
+ }
4706
+ /** `parseFalseExports` over a parsed module. */
4707
+ function collectFalseExports(program) {
4708
+ const names = /* @__PURE__ */ new Set();
4709
+ for (const stmt of program?.body ?? []) {
4710
+ if (stmt?.type !== "ExportNamedDeclaration" || stmt.declaration?.type !== "VariableDeclaration") continue;
4711
+ if (stmt.declaration.kind !== "const") continue;
4712
+ for (const d of stmt.declaration.declarations ?? []) {
4713
+ const init = unwrapTs(d?.init);
4714
+ if (d?.id?.type !== "Identifier") continue;
4715
+ if (init?.type === "Literal" && init.value === false) names.add(d.id.name);
4716
+ if (init?.type === "ObjectExpression") {
4717
+ const members = /* @__PURE__ */ new Map();
4718
+ for (const p of init.properties ?? []) {
4719
+ const v = unwrapTs(p?.value);
4720
+ if (p?.type !== "Property" || p.computed || p.key?.type !== "Identifier") members.clear();
4721
+ else members.set(p.key.name, v?.type === "Literal" && v.value === false);
4722
+ }
4723
+ for (const [key, isFalse] of members) if (isFalse) names.add(`${d.id.name}.${key}`);
4724
+ }
4725
+ }
4726
+ }
4727
+ return names;
4728
+ }
4729
+ /**
4730
+ * Whether the exported `load` sends a request without a session away before rendering: a top-level
4731
+ * `if` whose test is only negated reads of the request's `locals` (`!locals.user`,
4732
+ * `!(await locals.auth())`, or a `const` taken from one earlier in the body) and whose branch
4733
+ * redirects or errors 401/403. A test that also reads anything else — the URL, params — gates only
4734
+ * some requests and does not count; neither does a gate after a `return`.
4735
+ */
4736
+ function loadGatesOnLocals(program) {
4737
+ const redirects = collectNamedImportAliases(program, "@sveltejs/kit", REDIRECT_NAMES);
4738
+ const errors = collectNamedImportAliases(program, "@sveltejs/kit", ERROR_NAMES);
4739
+ const load = redirects.size + errors.size > 0 ? findLoadFunction(program) : void 0;
4740
+ if (load?.body?.type !== "BlockStatement") return false;
4741
+ const param = load.params?.[0];
4742
+ const event = param?.type === "Identifier" ? param.name : void 0;
4743
+ const derived = /* @__PURE__ */ new Set();
4744
+ if (param?.type === "ObjectPattern") {
4745
+ for (const p of param.properties ?? []) if (p?.type === "Property" && (p.key?.name ?? p.key?.value) === "locals") addBoundNames(p.value, derived);
4746
+ }
4747
+ const fromLocals = (expr) => {
4748
+ let cur = unwrapTs(expr);
4749
+ let prev;
4750
+ for (;;) if (cur?.type === "AwaitExpression" || cur?.type === "ChainExpression") cur = unwrapTs(cur.argument ?? cur.expression);
4751
+ else if (cur?.type === "CallExpression" && (cur.arguments ?? []).length === 0) cur = unwrapTs(cur.callee);
4752
+ else if (cur?.type === "MemberExpression" && !cur.computed) [prev, cur] = [cur, unwrapTs(cur.object)];
4753
+ else break;
4754
+ if (cur?.type !== "Identifier") return false;
4755
+ return derived.has(cur.name) || cur.name === event && prev?.computed === false && prev.property?.name === "locals";
4756
+ };
4757
+ const negated = (test) => {
4758
+ const t = unwrapTs(test);
4759
+ if (t?.type === "LogicalExpression") return t.operator === "||" && negated(t.left) && negated(t.right);
4760
+ return t?.type === "UnaryExpression" && t.operator === "!" && fromLocals(t.argument);
4761
+ };
4762
+ const exitCall = (expr) => {
4763
+ const e = unwrapTs(expr);
4764
+ if (e?.type !== "CallExpression" || e.callee?.type !== "Identifier") return false;
4765
+ if (redirects.has(e.callee.name)) return true;
4766
+ if (!errors.has(e.callee.name)) return false;
4767
+ const status = e.arguments?.[0];
4768
+ return status?.type === "Literal" && (status.value === 401 || status.value === 403);
4769
+ };
4770
+ const exitsNow = (stmt) => {
4771
+ if (stmt?.type !== "BlockStatement") return stmt?.type === "ExpressionStatement" && exitCall(stmt.expression) || (stmt?.type === "ThrowStatement" || stmt?.type === "ReturnStatement") && exitCall(stmt.argument);
4772
+ for (const inner of stmt.body) {
4773
+ if (exitsNow(inner)) return true;
4774
+ if (containsReturn(inner)) return false;
4284
4775
  }
4285
4776
  return false;
4286
4777
  };
4287
- return fnRedirects(load, /* @__PURE__ */ new Set(), true);
4778
+ for (const stmt of load.body.body) {
4779
+ if (stmt?.type === "IfStatement" && negated(stmt.test) && exitsNow(stmt.consequent)) return true;
4780
+ if (containsReturn(stmt)) return false;
4781
+ if (stmt?.type === "VariableDeclaration" && stmt.kind === "const") {
4782
+ for (const d of stmt.declarations ?? []) if (d?.init && fromLocals(d.init)) addBoundNames(d.id, derived);
4783
+ }
4784
+ }
4785
+ return false;
4288
4786
  }
4289
4787
  /**
4290
4788
  * Whether `await`'s argument is a `parent()` / `<x>.parent()` call (Kit's parent-load
@@ -4306,6 +4804,7 @@ const BODY_METHODS = /* @__PURE__ */ new Set([
4306
4804
  "formData",
4307
4805
  "bytes"
4308
4806
  ]);
4807
+ const PROMISE_COMBINATORS = /* @__PURE__ */ new Set(["all", "allSettled"]);
4309
4808
  /**
4310
4809
  * Whether `await`'s argument is a response-body read (`res.json()`, `res.text()`, …):
4311
4810
  * parsing an already-received body costs no extra round trip, so it is not a
@@ -4314,9 +4813,12 @@ const BODY_METHODS = /* @__PURE__ */ new Set([
4314
4813
  */
4315
4814
  function isBodyParseCall(arg) {
4316
4815
  const e = unwrapTs(arg);
4317
- if (e?.type !== "CallExpression" || e.arguments?.length) return false;
4816
+ if (e?.type !== "CallExpression") return false;
4318
4817
  const callee = e.callee;
4319
- return callee?.type === "MemberExpression" && !callee.computed && callee.property.type === "Identifier" && BODY_METHODS.has(callee.property.name);
4818
+ if (callee?.type !== "MemberExpression" || callee.computed || callee.property.type !== "Identifier") return false;
4819
+ if (BODY_METHODS.has(callee.property.name)) return !e.arguments?.length;
4820
+ const list = e.arguments?.length === 1 ? unwrapTs(e.arguments[0]) : void 0;
4821
+ return callee.object.type === "Identifier" && callee.object.name === "Promise" && PROMISE_COMBINATORS.has(callee.property.name) && list?.type === "ArrayExpression" && list.elements.length > 0 && list.elements.every((el) => el && isBodyParseCall(el));
4320
4822
  }
4321
4823
  const WORK_STARTING = /* @__PURE__ */ new Set([
4322
4824
  "CallExpression",
@@ -4413,6 +4915,19 @@ function collectLoadWaterfalls(program, wrapped) {
4413
4915
  };
4414
4916
  const line = (start) => Math.max(0, lineOf(wrapped, start) - 1);
4415
4917
  const tainted = /* @__PURE__ */ new Set();
4918
+ const ownBindings = /* @__PURE__ */ new Set();
4919
+ const collectOwn = (body) => {
4920
+ for (const stmt of body ?? []) {
4921
+ if (stmt?.type === "TryStatement") collectOwn(stmt.block?.body);
4922
+ if (stmt?.type !== "VariableDeclaration") continue;
4923
+ for (const d of stmt.declarations ?? []) {
4924
+ let init = unwrapTs(d?.init);
4925
+ if (init?.type === "AwaitExpression") init = unwrapTs(init.argument);
4926
+ if (init?.type === "CallExpression" || init?.type === "NewExpression") addBoundNames(d?.id, ownBindings);
4927
+ }
4928
+ }
4929
+ };
4930
+ collectOwn(load.body.body);
4416
4931
  const syncTainted = /* @__PURE__ */ new Set();
4417
4932
  let sawAwaitSite = false;
4418
4933
  const taintTarget = (target, rhs) => {
@@ -4435,6 +4950,26 @@ function collectLoadWaterfalls(program, wrapped) {
4435
4950
  const root = rootObjectName(callee);
4436
4951
  if (root) tainted.add(root);
4437
4952
  };
4953
+ const taintLoopFill = (call) => {
4954
+ const callee = unwrapTs(call?.callee);
4955
+ if (call?.type !== "CallExpression" || callee?.type !== "MemberExpression" || callee.computed) return;
4956
+ if (!ITERATING_METHODS.has(callee.property?.name) || !refsTainted(callee.object, tainted)) return;
4957
+ const fill = (node) => {
4958
+ if (Array.isArray(node)) return node.forEach(fill);
4959
+ if (!node || typeof node !== "object" || typeof node.type !== "string") return;
4960
+ if (isFunctionNode(node)) return;
4961
+ const c = node.type === "CallExpression" ? unwrapTs(node.callee) : void 0;
4962
+ if (c?.type === "MemberExpression" && !c.computed && MUTATING_METHODS.has(c.property?.name)) {
4963
+ const root = rootObjectName(c);
4964
+ if (root) tainted.add(root);
4965
+ }
4966
+ if (c?.type === "MemberExpression" && !c.computed && ITERATING_METHODS.has(c.property?.name)) {
4967
+ for (const arg of node.arguments ?? []) if (isFunctionNode(arg)) fill(arg.body);
4968
+ }
4969
+ for (const key of Object.keys(node)) if (!WALK_IGNORED_KEYS.has(key)) fill(node[key]);
4970
+ };
4971
+ for (const arg of call.arguments ?? []) if (isFunctionNode(arg)) fill(arg.body);
4972
+ };
4438
4973
  const taintOnly = (node) => {
4439
4974
  if (Array.isArray(node)) {
4440
4975
  for (const child of node) taintOnly(child);
@@ -4443,13 +4978,18 @@ function collectLoadWaterfalls(program, wrapped) {
4443
4978
  if (!node || typeof node !== "object" || typeof node.type !== "string") return;
4444
4979
  if (isFunctionNode(node)) return;
4445
4980
  if (node.type === "AssignmentExpression") taintTarget(node.left, node.right);
4446
- else if (node.type === "CallExpression") taintMutation(node);
4447
- else if ((node.type === "ForOfStatement" || node.type === "ForInStatement") && refsTainted(node.right, tainted)) {
4981
+ else if (node.type === "CallExpression") {
4982
+ taintMutation(node);
4983
+ taintLoopFill(node);
4984
+ } else if ((node.type === "ForOfStatement" || node.type === "ForInStatement") && refsTainted(node.right, tainted)) {
4448
4985
  const names = /* @__PURE__ */ new Set();
4449
4986
  addBoundNames(node.left?.type === "VariableDeclaration" ? node.left.declarations?.[0]?.id : node.left, names);
4450
4987
  for (const name of names) tainted.add(name);
4451
4988
  } else if (node.type === "VariableDeclaration") {
4452
- for (const d of node.declarations ?? []) if (d?.id && d.init) taintTarget(d.id, d.init);
4989
+ for (const d of node.declarations ?? []) if (d?.id && d.init) {
4990
+ taintTarget(d.id, d.init);
4991
+ taintLoopFill(unwrapTs(d.init));
4992
+ }
4453
4993
  }
4454
4994
  for (const key of Object.keys(node)) {
4455
4995
  if (WALK_IGNORED_KEYS.has(key)) continue;
@@ -4483,11 +5023,21 @@ function collectLoadWaterfalls(program, wrapped) {
4483
5023
  sawAwaitSite = true;
4484
5024
  }
4485
5025
  if (stmt.type === "VariableDeclaration") {
4486
- for (const d of stmt.declarations ?? []) if (d?.id && d.init) taintTarget(d.id, d.init);
5026
+ for (const d of stmt.declarations ?? []) if (d?.id && d.init) {
5027
+ taintTarget(d.id, d.init);
5028
+ taintLoopFill(unwrapTs(d.init));
5029
+ }
4487
5030
  } else if (stmt.type === "ExpressionStatement") {
4488
5031
  const expr = unwrapTs(stmt.expression);
4489
5032
  if (expr?.type === "AssignmentExpression") taintTarget(expr.left, expr.right);
4490
- else taintMutation(expr);
5033
+ else {
5034
+ taintMutation(expr);
5035
+ taintLoopFill(expr);
5036
+ }
5037
+ const call = expr?.type === "AwaitExpression" ? unwrapTs(expr.argument) : void 0;
5038
+ const callee = call?.type === "CallExpression" ? unwrapTs(call.callee) : void 0;
5039
+ const owner = callee?.type === "MemberExpression" && !callee.computed ? unwrapTs(callee.object) : void 0;
5040
+ if (owner?.type === "Identifier" && ownBindings.has(owner.name)) tainted.add(owner.name);
4491
5041
  }
4492
5042
  } else taintOnly(stmt);
4493
5043
  }
@@ -4584,7 +5134,7 @@ function aliasMatches(entry, spec) {
4584
5134
  */
4585
5135
  function resolveRepoLocalPath(spec, importerFile, aliases = DEFAULT_KIT_ALIASES) {
4586
5136
  let path;
4587
- if (spec.startsWith("./") || spec.startsWith("../")) path = `${importerFile.split("/").slice(0, -1).join("/")}/${spec}`;
5137
+ if (spec === "." || spec === ".." || spec.startsWith("./") || spec.startsWith("../")) path = `${importerFile.split("/").slice(0, -1).join("/")}/${spec}`;
4588
5138
  else {
4589
5139
  const entry = aliases.find((a) => aliasMatches(a, spec));
4590
5140
  if (entry?.replacement == null) return void 0;
@@ -4650,13 +5200,9 @@ function libServerRoot(aliases) {
4650
5200
  * risks a false positive in this default-on security rule, and staying silent only costs a
4651
5201
  * missed finding.
4652
5202
  */
4653
- /** The resolved repo path when `spec` lands on, or under, the `$lib` server root; else undefined. */
4654
- function serverRootRelativePath(spec, importerFile, aliases) {
4655
- const serverRoot = libServerRoot(aliases);
4656
- if (serverRoot === void 0) return void 0;
4657
- const path = resolveRepoLocalPath(spec, importerFile, aliases);
4658
- if (path === void 0) return void 0;
4659
- return path === serverRoot || path.startsWith(`${serverRoot}/`) ? path : void 0;
5203
+ /** The resolved repo path of a repo-local `spec`, or undefined when it is a package or the `$lib` root is opaque. */
5204
+ function localModulePath(spec, importerFile, aliases) {
5205
+ return libServerRoot(aliases) === void 0 ? void 0 : resolveRepoLocalPath(spec, importerFile, aliases);
4660
5206
  }
4661
5207
  function isLocalStateSpecifier(spec, importerFile, aliases) {
4662
5208
  const serverRoot = libServerRoot(aliases);
@@ -4672,23 +5218,60 @@ const IN_MEMORY_CTORS = /* @__PURE__ */ new Set([
4672
5218
  "WeakMap",
4673
5219
  "WeakSet"
4674
5220
  ]);
5221
+ const isContainerCtor = (n) => n?.type === "NewExpression" && n.callee?.type === "Identifier" && IN_MEMORY_CTORS.has(n.callee.name);
4675
5222
  /**
4676
5223
  * Whether an initializer positively identifies an in-memory container. An object literal with a
4677
5224
  * spread is a composite of values this parse cannot see — typically a facade over clients and
4678
5225
  * imported modules (`{ ...prismaModels, ...handlers }`) — so it counts only when one of its own
4679
- * properties is itself a container.
5226
+ * properties is itself a container. One whose properties are all functions (`{ get, set }` of the
5227
+ * module's own functions) holds no data: `.set()` on it calls its own method.
4680
5228
  */
4681
- function isInMemoryInit(init) {
5229
+ function isInMemoryInit(init, fns = /* @__PURE__ */ new Set()) {
4682
5230
  if (!init) return false;
4683
5231
  if (init.type === "ArrayExpression") return true;
4684
5232
  if (init.type === "ObjectExpression") {
4685
5233
  const props = init.properties ?? [];
5234
+ const isFn = (p) => p?.type === "Property" && (p.method || p.value?.type === "FunctionExpression" || p.value?.type === "ArrowFunctionExpression" || p.value?.type === "Identifier" && fns.has(p.value.name));
5235
+ if (props.length > 0 && props.every(isFn)) return false;
4686
5236
  if (!props.some((p) => p?.type === "SpreadElement")) return true;
4687
- return props.some((p) => p?.type === "Property" && isInMemoryInit(p.value));
5237
+ return props.some((p) => p?.type === "Property" && isInMemoryInit(p.value, fns));
4688
5238
  }
4689
5239
  return init.type === "NewExpression" && init.callee?.type === "Identifier" && IN_MEMORY_CTORS.has(init.callee.name);
4690
5240
  }
4691
5241
  /**
5242
+ * The exported bindings of a module that are a persistence or API client: `new C()` of a class imported
5243
+ * from an installed package, or of a class this module declares that neither extends another class nor
5244
+ * keeps a `Map`/`Set`/`WeakMap`/`WeakSet` field; or a call into an installed package (`drizzle(…)`,
5245
+ * `createClient(…)`). A write through one of them reaches a database or service, not module state.
5246
+ */
5247
+ function parseClientExports(source, filename, aliases) {
5248
+ const names = /* @__PURE__ */ new Set();
5249
+ const { program } = parseModuleProgram(source, filename);
5250
+ const fromPackage = /* @__PURE__ */ new Set();
5251
+ for (const stmt of program?.body ?? []) {
5252
+ const src = stmt?.type === "ImportDeclaration" ? String(stmt.source?.value ?? "") : "";
5253
+ if (!(!src || /^[./$~#]|^@\//.test(src) || resolveRepoLocalPath(src, filename, aliases) !== void 0) && !/^svelte|store/i.test(src)) for (const sp of stmt.specifiers ?? []) fromPackage.add(sp.local.name);
5254
+ }
5255
+ const plainClasses = /* @__PURE__ */ new Set();
5256
+ for (const stmt of program?.body ?? []) {
5257
+ const decl = unwrapExport(stmt);
5258
+ if (decl?.type !== "ClassDeclaration" || !decl.id || decl.superClass) continue;
5259
+ if (!(decl.body?.body ?? []).some((m) => isContainerCtor(m?.value) || m?.kind === "constructor" && m.value?.body?.body?.some((st) => st?.type === "ExpressionStatement" && isContainerCtor(st.expression?.right)))) plainClasses.add(decl.id.name);
5260
+ }
5261
+ for (const stmt of program?.body ?? []) {
5262
+ if (stmt?.type !== "ExportNamedDeclaration" || stmt.declaration?.type !== "VariableDeclaration") continue;
5263
+ for (const d of stmt.declaration.declarations ?? []) {
5264
+ let init = unwrapTs(d?.init);
5265
+ if (init?.type === "AwaitExpression") init = unwrapTs(init.argument);
5266
+ if (d?.id?.type !== "Identifier") continue;
5267
+ const ctor = init?.type === "NewExpression" && init.callee?.type === "Identifier" ? init.callee.name : void 0;
5268
+ if (ctor !== void 0 && (fromPackage.has(ctor) || plainClasses.has(ctor))) names.add(d.id.name);
5269
+ if (init?.type === "CallExpression" && fromPackage.has(rootObjectName(init.callee) ?? "")) names.add(d.id.name);
5270
+ }
5271
+ }
5272
+ return names;
5273
+ }
5274
+ /**
4692
5275
  * The exported bindings of a module that are initialized to an in-memory container — an object
4693
5276
  * or array literal (a spread literal only as `isInMemoryInit` allows), or `new Map`/`Set`/`WeakMap`/`WeakSet`. Used to arbitrate a `.set()` call on
4694
5277
  * an import from under the `$lib` server root, where the call shape alone cannot separate a
@@ -4702,11 +5285,16 @@ function isInMemoryInit(init) {
4702
5285
  function parseInMemoryExports(source, filename) {
4703
5286
  const names = /* @__PURE__ */ new Set();
4704
5287
  const { program } = parseModuleProgram(source, filename);
5288
+ const fns = /* @__PURE__ */ new Set();
5289
+ for (const stmt of program?.body ?? []) {
5290
+ const decl = unwrapExport(stmt);
5291
+ if (decl?.type === "FunctionDeclaration" && decl.id) fns.add(decl.id.name);
5292
+ }
4705
5293
  for (const stmt of program?.body ?? []) {
4706
5294
  if (stmt?.type !== "ExportNamedDeclaration" || !stmt.declaration) continue;
4707
5295
  const decl = stmt.declaration;
4708
5296
  if (decl.type !== "VariableDeclaration") continue;
4709
- for (const d of decl.declarations ?? []) if (d?.id?.type === "Identifier" && isInMemoryInit(d.init)) names.add(d.id.name);
5297
+ for (const d of decl.declarations ?? []) if (d?.id?.type === "Identifier" && isInMemoryInit(d.init, fns)) names.add(d.id.name);
4710
5298
  }
4711
5299
  return names;
4712
5300
  }
@@ -4722,6 +5310,7 @@ function parseKitModuleFacts(source, filename, aliases) {
4722
5310
  const importedStateWrites = [];
4723
5311
  const importedStateWritesOutsideHandlers = [];
4724
5312
  const pendingServerStoreWrites = [];
5313
+ const storeWriteTargets = [];
4725
5314
  const runesModuleImports = [];
4726
5315
  const lifecycleCalls = [];
4727
5316
  const browserGlobalRefs = [];
@@ -4740,6 +5329,11 @@ function parseKitModuleFacts(source, filename, aliases) {
4740
5329
  const importedSpecifiers = /* @__PURE__ */ new Map();
4741
5330
  const importedNames = /* @__PURE__ */ new Map();
4742
5331
  const namespaceImports = /* @__PURE__ */ new Set();
5332
+ const localFunctions = /* @__PURE__ */ new Set();
5333
+ walkEstree(program, (n) => {
5334
+ if (n.type === "FunctionDeclaration" && n.id?.name) localFunctions.add(n.id.name);
5335
+ if (n.type === "VariableDeclarator" && n.id?.type === "Identifier" && n.init && isFunctionNode(unwrapTs(n.init))) localFunctions.add(n.id.name);
5336
+ });
4743
5337
  for (const stmt of program.body ?? []) {
4744
5338
  if (stmt?.type !== "ImportDeclaration" || stmt.importKind === "type") continue;
4745
5339
  const spec = typeof stmt.source?.value === "string" ? stmt.source.value : "";
@@ -4771,7 +5365,7 @@ function parseKitModuleFacts(source, filename, aliases) {
4771
5365
  const ssrOptOut = findFalseOptOut(program, wrapped, "ssr");
4772
5366
  const csrOptOut = findFalseOptOut(program, wrapped, "csr");
4773
5367
  const waterfalls = collectLoadWaterfalls(program, wrapped);
4774
- if (!ssrOptOut) {
5368
+ if (!ssrOptOut?.literal) {
4775
5369
  const shiftLine = (l) => Math.max(0, l - 1);
4776
5370
  const browserImports = collectBrowserGuardImports(program);
4777
5371
  const guards = /* @__PURE__ */ new Set([...browserImports, ...collectDerivedGuardBindings(program, browserImports)]);
@@ -4803,10 +5397,12 @@ function parseKitModuleFacts(source, filename, aliases) {
4803
5397
  scanFn(fn, false);
4804
5398
  }
4805
5399
  }
5400
+ const browserOnly = browserOnlyRanges(program, collectBrowserGuardImports(program));
5401
+ const reachedOnlyByBrowser = (at) => browserOnly.some(([from, to]) => at >= from && at < to);
4806
5402
  walkKit(program, handlerFns, startupFns, (n, shadowed, inFunction, inHandler, inStartup) => {
4807
5403
  if (inFunction && !inStartup) {
4808
5404
  const flagLet = (name) => {
4809
- if (name && !shadowed.has(name) && moduleLets.has(name)) moduleStateReassignments.push({
5405
+ if (name && !shadowed.has(name) && moduleLets.has(name) && !reachedOnlyByBrowser(n.start)) moduleStateReassignments.push({
4810
5406
  name,
4811
5407
  line: line(n.start),
4812
5408
  inHandler
@@ -4847,23 +5443,25 @@ function parseKitModuleFacts(source, filename, aliases) {
4847
5443
  } else if (n.type === "CallExpression" && n.callee?.type === "MemberExpression") {
4848
5444
  const method = n.callee.property?.type === "Identifier" ? n.callee.property.name : void 0;
4849
5445
  const nsFunction = n.callee.object?.type === "Identifier" && namespaceImports.has(n.callee.object.name);
4850
- if ((method === "set" || method === "update") && !nsFunction) {
5446
+ const updater = method !== "update" || isUpdaterArgument(n.arguments?.[0], localFunctions);
5447
+ if ((method === "set" || method === "update") && !nsFunction && updater) {
4851
5448
  const r = importedRoot(n.callee.object);
4852
5449
  const spec = r ? importedSpecifiers.get(r) : void 0;
4853
5450
  if (r && spec !== void 0) {
4854
- if (isLocalStateSpecifier(spec, filename, aliases)) write = {
5451
+ const resolved = localModulePath(spec, filename, aliases);
5452
+ const target = {
4855
5453
  name: r,
4856
- via: "set-call"
5454
+ imported: importedNames.get(r) ?? r,
5455
+ resolved,
5456
+ line: line(n.start)
4857
5457
  };
4858
- else {
4859
- const resolved = serverRootRelativePath(spec, filename, aliases);
4860
- if (resolved !== void 0 && inHandler) pendingServerStoreWrites.push({
5458
+ if (isLocalStateSpecifier(spec, filename, aliases)) {
5459
+ write = {
4861
5460
  name: r,
4862
- imported: importedNames.get(r) ?? r,
4863
- resolved,
4864
- line: line(n.start)
4865
- });
4866
- }
5461
+ via: "set-call"
5462
+ };
5463
+ if (inHandler) storeWriteTargets.push(target);
5464
+ } else if (resolved !== void 0 && inHandler) pendingServerStoreWrites.push(target);
4867
5465
  }
4868
5466
  }
4869
5467
  } else if (n.type === "AssignmentExpression" && (n.left?.type === "ObjectPattern" || n.left?.type === "ArrayPattern")) {
@@ -4884,6 +5482,7 @@ function parseKitModuleFacts(source, filename, aliases) {
4884
5482
  };
4885
5483
  scanPatternTargets(n.left);
4886
5484
  }
5485
+ if (write && reachedOnlyByBrowser(n.start)) write = void 0;
4887
5486
  if (write) {
4888
5487
  if (inHandler) importedStateWrites.push({
4889
5488
  ...write,
@@ -4915,25 +5514,56 @@ function parseKitModuleFacts(source, filename, aliases) {
4915
5514
  line: line(call.start)
4916
5515
  });
4917
5516
  }
5517
+ const exitLocals = collectNamedImportAliases(program, "@sveltejs/kit", EXIT_NAMES);
5518
+ const neverRenders = loadNeverRenders(program, exitLocals);
5519
+ const building = collectNamedImportAliases(program, "$app/environment", BUILDING_NAMES);
5520
+ const hooks = /(^|\/)hooks\.server\.(ts|js)$/.test(filename);
5521
+ const answered = hooks ? handleAnsweredPaths(program, exitLocals) : [];
5522
+ const chunkTokens = hooks ? pageChunkTokens(program) : [];
5523
+ const flagGuard = leadingFlagGuard(program, exitLocals, (local) => {
5524
+ const spec = namespaceImports.has(local) ? void 0 : importedSpecifiers.get(local);
5525
+ const resolved = spec === void 0 ? void 0 : localModulePath(spec, filename, aliases);
5526
+ return resolved === void 0 ? void 0 : {
5527
+ resolved,
5528
+ name: importedNames.get(local) ?? local
5529
+ };
5530
+ });
5531
+ const factory = loadFactory(program, (local) => {
5532
+ const spec = namespaceImports.has(local) ? void 0 : importedSpecifiers.get(local);
5533
+ const resolved = spec === void 0 ? void 0 : localModulePath(spec, filename, aliases);
5534
+ return resolved === void 0 ? void 0 : {
5535
+ resolved,
5536
+ name: importedNames.get(local) ?? local
5537
+ };
5538
+ });
4918
5539
  return {
4919
5540
  moduleStateReassignments: byLine(moduleStateReassignments),
4920
5541
  importedStateWrites: byLine(importedStateWrites),
4921
5542
  importedStateWritesOutsideHandlers: byLine(importedStateWritesOutsideHandlers),
4922
5543
  pendingServerStoreWrites: byLine(pendingServerStoreWrites),
5544
+ ...storeWriteTargets.length > 0 ? { storeWriteTargets } : {},
4923
5545
  runesModuleImports: byLine(runesModuleImports),
4924
5546
  lifecycleCalls: byLine(lifecycleCalls),
4925
5547
  browserGlobalRefs: byLine(browserGlobalRefs),
4926
5548
  basePathLinks: byLine(basePathLinks),
4927
5549
  ...ssrOptOut ? { ssrDisabled: { line: Math.max(0, ssrOptOut.line - 1) } } : {},
4928
5550
  ...!ssrOptOut && exportsName(program, "ssr") ? { ssrEnabled: true } : {},
5551
+ ...!ssrOptOut && exportsTrue(program, "ssr") ? { ssrTrue: true } : {},
4929
5552
  ...csrOptOut ? { csrDisabled: { line: Math.max(0, csrOptOut.line - 1) } } : {},
4930
- ...loadNeverRenders(program, collectNamedImportAliases(program, "@sveltejs/kit", EXIT_NAMES)) ? { loadNeverRenders: true } : {},
5553
+ ...!csrOptOut && exportsName(program, "csr") ? { csrEnabled: true } : {},
5554
+ ...neverRenders ? { loadNeverRenders: true } : {},
5555
+ ...!neverRenders && building.size > 0 && loadNeverRenders(program, exitLocals, building) ? { loadNeverRendersOutsideBuild: true } : {},
5556
+ ...exportsName(program, "prerender") ? { prerenderExported: true } : {},
5557
+ ...answered.length > 0 ? { answeredPaths: answered } : {},
5558
+ ...chunkTokens.length > 0 ? { pageChunkTokens: chunkTokens } : {},
5559
+ ...flagGuard ? { pendingFlagGuard: flagGuard } : {},
5560
+ ...factory ? { pendingLoadFactory: factory } : {},
5561
+ ...loadGatesOnLocals(program) ? { loadGated: true } : {},
4931
5562
  ...waterfalls.dependentLines.length > 0 || waterfalls.independentLines.length > 0 ? { loadWaterfalls: waterfalls } : {},
4932
5563
  suppressions
4933
5564
  };
4934
5565
  }
4935
- //#endregion
4936
- //#region src/rules/architecture/private-scope-import.ts
5566
+ // src/rules/architecture/private-scope-import.ts
4937
5567
  const docsUrl$4 = docsUrlFor("architecture/private-scope-import");
4938
5568
  const recommendation$4 = "Move the unit to the directory shared by all of its importers, or import it only from inside its own scope.";
4939
5569
  const OPTIONS$5 = { scopes: {
@@ -5060,8 +5690,7 @@ const architecturePrivateScopeImport = {
5060
5690
  return out;
5061
5691
  }
5062
5692
  };
5063
- //#endregion
5064
- //#region src/rules/architecture/declarations.ts
5693
+ // src/rules/architecture/declarations.ts
5065
5694
  /**
5066
5695
  * Glob-declaration machinery shared by the Architecture rules that let a project declare a
5067
5696
  * convention over directory globs — `architecture/unit-entry-file` (design 2026-07-28),
@@ -5311,8 +5940,7 @@ function classifyUnusedKeys(unused, excludedDirs, compile) {
5311
5940
  for (const key of unused) out.set(key, shadowed.has(key) ? "only-excluded" : "no-match");
5312
5941
  return out;
5313
5942
  }
5314
- //#endregion
5315
- //#region src/rules/architecture/unit-entry-file.ts
5943
+ // src/rules/architecture/unit-entry-file.ts
5316
5944
  const ID$6 = "architecture/unit-entry-file";
5317
5945
  const docsUrl$3 = docsUrlFor(ID$6);
5318
5946
  const recommendation$3 = "Give every declared unit directory a file named after it, or stop declaring that directory a unit.";
@@ -5454,8 +6082,7 @@ const architectureUnitEntryFile = {
5454
6082
  return out;
5455
6083
  }
5456
6084
  };
5457
- //#endregion
5458
- //#region src/rules/architecture/casing.ts
6085
+ // src/rules/architecture/casing.ts
5459
6086
  /**
5460
6087
  * The casing vocabulary and the SvelteKit route-segment decoder used by
5461
6088
  * `architecture/directory-naming` (design 2026-07-29).
@@ -5533,8 +6160,7 @@ function satisfiesCasing(name, allowed) {
5533
6160
  if (!/[a-zA-Z]/.test(name)) return true;
5534
6161
  return allowed.some((c) => Object.hasOwn(CASINGS, c) && CASINGS[c].test(name));
5535
6162
  }
5536
- //#endregion
5537
- //#region src/rules/architecture/directory-naming.ts
6163
+ // src/rules/architecture/directory-naming.ts
5538
6164
  const ID$5 = "architecture/directory-naming";
5539
6165
  const docsUrl$2 = docsUrlFor(ID$5);
5540
6166
  const recommendation$2 = "Name each directory in the casing its location declares, or narrow the declaration.";
@@ -5659,8 +6285,7 @@ const architectureDirectoryNaming = {
5659
6285
  return out;
5660
6286
  }
5661
6287
  };
5662
- //#endregion
5663
- //#region src/rules/architecture/reserved-directory-names.ts
6288
+ // src/rules/architecture/reserved-directory-names.ts
5664
6289
  const ID$4 = "architecture/reserved-directory-names";
5665
6290
  const docsUrl$1 = docsUrlFor(ID$4);
5666
6291
  const recommendation$1 = "Use one of the names this location declares, or add the new name to the declaration.";
@@ -5912,8 +6537,7 @@ const architectureReservedDirectoryNames = {
5912
6537
  return out;
5913
6538
  }
5914
6539
  };
5915
- //#endregion
5916
- //#region src/rules/architecture/reserved-name-placement.ts
6540
+ // src/rules/architecture/reserved-name-placement.ts
5917
6541
  const ID$3 = "architecture/reserved-name-placement";
5918
6542
  const docsUrl = docsUrlFor(ID$3);
5919
6543
  const recommendation = "Move it to one of the places declared for this name, or declare this place for it.";
@@ -6113,8 +6737,7 @@ const architectureReservedNamePlacement = {
6113
6737
  return out;
6114
6738
  }
6115
6739
  };
6116
- //#endregion
6117
- //#region src/rules/architecture/route-component-import.ts
6740
+ // src/rules/architecture/route-component-import.ts
6118
6741
  const ID$2 = "architecture/route-component-import";
6119
6742
  /**
6120
6743
  * Satellite files that legitimately render a route entry by hand: a story renders it to look at,
@@ -6207,8 +6830,7 @@ const architectureRouteComponentImport = componentRule({
6207
6830
  }));
6208
6831
  }
6209
6832
  });
6210
- //#endregion
6211
- //#region src/rules/architecture/doc-link-target.ts
6833
+ // src/rules/architecture/doc-link-target.ts
6212
6834
  const ID$1 = "architecture/doc-link-target";
6213
6835
  /** A `#fragment` or `?query` addresses a location within the target, not the target's own path. */
6214
6836
  function stripFragment(url) {
@@ -6326,8 +6948,7 @@ const performanceHeavyImport = componentRule({
6326
6948
  return out;
6327
6949
  }
6328
6950
  });
6329
- //#endregion
6330
- //#region src/rules/perf/namespace-import.ts
6951
+ // src/rules/perf/namespace-import.ts
6331
6952
  const performanceNamespaceImport = componentRule({
6332
6953
  id: "performance/namespace-import",
6333
6954
  title: "Namespace import",
@@ -6349,8 +6970,7 @@ const performanceNamespaceImport = componentRule({
6349
6970
  }));
6350
6971
  }
6351
6972
  });
6352
- //#endregion
6353
- //#region src/rules/perf/minify-disabled.ts
6973
+ // src/rules/perf/minify-disabled.ts
6354
6974
  const PENALIZED = {
6355
6975
  presence: "none",
6356
6976
  value: "absent"
@@ -6393,14 +7013,13 @@ const performanceMinifyDisabled = {
6393
7013
  }];
6394
7014
  }
6395
7015
  };
6396
- //#endregion
6397
- //#region src/rules/perf/load-waterfall.ts
7016
+ // src/rules/perf/load-waterfall.ts
6398
7017
  const MESSAGE$1 = "Sequential dependent awaits in a universal load create a client-side request waterfall — each hop is a network round trip from the browser. Move this chain to a server load (+page.server.ts / +layout.server.ts), where the hops run server-side.";
6399
7018
  /**
6400
7019
  * performance/load-waterfall — dependent await chains in universal loads. Server loads are exempt:
6401
7020
  * a dependent chain cannot be parallelized, and on the server there is no better
6402
- * placement to suggest. csr = false files are exempt too — without a client
6403
- * runtime the universal load only runs during SSR.
7021
+ * placement to suggest. Loads on a route with `csr = false` (its own or a layout's) are exempt
7022
+ * too — without a client runtime the universal load only runs during SSR.
6404
7023
  */
6405
7024
  const performanceLoadWaterfall = kitModuleRule({
6406
7025
  id: "performance/load-waterfall",
@@ -6415,14 +7034,13 @@ const performanceLoadWaterfall = kitModuleRule({
6415
7034
  snippet: "// +page.server.ts — same chain, server-side hops\nexport async function load({ fetch }) {\n const user = await fetch(`/api/user`).then((r) => r.json());\n const posts = await fetch(`/api/posts/${user.id}`).then((r) => r.json());\n return { user, posts };\n}",
6416
7035
  lang: "ts"
6417
7036
  },
6418
- applies: (m) => m.kind === "universal" && m.csrDisabled === void 0 && (m.loadWaterfalls?.dependentLines.length ?? 0) > 0,
7037
+ applies: (m, ctx) => m.kind === "universal" && (m.loadWaterfalls?.dependentLines.length ?? 0) > 0 && !universalNeverCsr(m, ctx),
6419
7038
  bad: (m) => m.loadWaterfalls.dependentLines.map((line) => ({
6420
7039
  line,
6421
7040
  message: MESSAGE$1
6422
7041
  }))
6423
7042
  });
6424
- //#endregion
6425
- //#region src/rules/perf/sequential-awaits.ts
7043
+ // src/rules/perf/sequential-awaits.ts
6426
7044
  const MESSAGE = "This await does not use the results of the awaits before it — the requests run sequentially for no reason. Start them together and await them with Promise.all.";
6427
7045
  /**
6428
7046
  * performance/sequential-awaits — independent sequential awaits in any load. Info severity: static
@@ -6448,8 +7066,7 @@ const performanceSequentialAwaits = kitModuleRule({
6448
7066
  message: MESSAGE
6449
7067
  }))
6450
7068
  });
6451
- //#endregion
6452
- //#region src/rules/perf/state-raw.ts
7069
+ // src/rules/perf/state-raw.ts
6453
7070
  /**
6454
7071
  * performance/state-raw — deep $state proxies every property access; a binding
6455
7072
  * that is only ever reassigned never uses that machinery. Svelte's guidance:
@@ -6472,8 +7089,7 @@ const performanceStateRaw = componentRule({
6472
7089
  message: `"${s.name}" is an object/array $state that is only ever reassigned, never mutated — $state.raw skips the deep-proxy overhead (reassignment stays reactive).`
6473
7090
  }))
6474
7091
  });
6475
- //#endregion
6476
- //#region src/rules/perf/iframe-loading.ts
7092
+ // src/rules/perf/iframe-loading.ts
6477
7093
  /** Any literal `loading` value passes (the author made a choice); an expression value is
6478
7094
  * unknowable and passes; a spread could supply `loading` and passes. */
6479
7095
  const performanceIframeLoading = componentRule({
@@ -6495,8 +7111,7 @@ const performanceIframeLoading = componentRule({
6495
7111
  message: "<iframe> without a loading attribute loads eagerly even when offscreen"
6496
7112
  }))
6497
7113
  });
6498
- //#endregion
6499
- //#region src/rules/a11y/invalid-role.ts
7114
+ // src/rules/a11y/invalid-role.ts
6500
7115
  const a11yInvalidRole = componentRule({
6501
7116
  id: "a11y/invalid-role",
6502
7117
  title: "Invalid ARIA role",
@@ -6517,8 +7132,7 @@ const a11yInvalidRole = componentRule({
6517
7132
  }];
6518
7133
  })
6519
7134
  });
6520
- //#endregion
6521
- //#region src/rules/a11y/unknown-aria-attribute.ts
7135
+ // src/rules/a11y/unknown-aria-attribute.ts
6522
7136
  const a11yUnknownAriaAttribute = componentRule({
6523
7137
  id: "a11y/unknown-aria-attribute",
6524
7138
  title: "Unknown ARIA attribute",
@@ -6532,8 +7146,7 @@ const a11yUnknownAriaAttribute = componentRule({
6532
7146
  message: `\`${a.name}\` is not a WAI-ARIA attribute`
6533
7147
  })))
6534
7148
  });
6535
- //#endregion
6536
- //#region src/rules/a11y/required-aria-props.ts
7149
+ // src/rules/a11y/required-aria-props.ts
6537
7150
  /** ARIA-in-HTML host elements that supply a required prop's semantics natively, so the
6538
7151
  * explicit `aria-*` attribute is redundant. Spec-fixed, not derived from aria-query. */
6539
7152
  const HOST_SUPPLIED = {
@@ -6582,8 +7195,7 @@ const a11yRequiredAriaProps = componentRule({
6582
7195
  }];
6583
7196
  })
6584
7197
  });
6585
- //#endregion
6586
- //#region src/rules/a11y/invalid-aria-value.ts
7198
+ // src/rules/a11y/invalid-aria-value.ts
6587
7199
  function isValid(type, values, literal) {
6588
7200
  switch (type) {
6589
7201
  case "boolean": return literal === "true" || literal === "false";
@@ -6617,8 +7229,7 @@ const a11yInvalidAriaValue = componentRule({
6617
7229
  }];
6618
7230
  }))
6619
7231
  });
6620
- //#endregion
6621
- //#region src/rules/a11y/interactive-nesting.ts
7232
+ // src/rules/a11y/interactive-nesting.ts
6622
7233
  const a11yInteractiveNesting = componentRule({
6623
7234
  id: "a11y/interactive-nesting",
6624
7235
  title: "Interactive element nested in an interactive element",
@@ -6632,8 +7243,7 @@ const a11yInteractiveNesting = componentRule({
6632
7243
  message: `<${f.descendantTag}> is nested inside interactive <${f.containerTag}${f.containerRole ? ` role="${f.containerRole}"` : ""}>`
6633
7244
  }))
6634
7245
  });
6635
- //#endregion
6636
- //#region src/rules/a11y/aria-hidden-focus.ts
7246
+ // src/rules/a11y/aria-hidden-focus.ts
6637
7247
  const a11yAriaHiddenFocus = componentRule({
6638
7248
  id: "a11y/aria-hidden-focus",
6639
7249
  title: "Focusable element hidden by aria-hidden",
@@ -6647,8 +7257,7 @@ const a11yAriaHiddenFocus = componentRule({
6647
7257
  message: f.containerTag ? `<${f.tag}> inside <${f.containerTag} aria-hidden="true"> is still keyboard-focusable` : `<${f.tag} aria-hidden="true"> is still keyboard-focusable`
6648
7258
  }))
6649
7259
  });
6650
- //#endregion
6651
- //#region src/rules/a11y/accessible-name.ts
7260
+ // src/rules/a11y/accessible-name.ts
6652
7261
  const NAMING_ATTRS = /* @__PURE__ */ new Set([
6653
7262
  "title",
6654
7263
  "aria-label",
@@ -6698,8 +7307,7 @@ const a11yAccessibleName = componentRule({
6698
7307
  message: "<iframe> has no accessible name"
6699
7308
  }))]
6700
7309
  });
6701
- //#endregion
6702
- //#region src/rules/a11y/label-has-control.ts
7310
+ // src/rules/a11y/label-has-control.ts
6703
7311
  const a11yLabelHasControl = componentRule({
6704
7312
  id: "a11y/label-has-control",
6705
7313
  title: "<label> has no associated control",
@@ -6713,8 +7321,7 @@ const a11yLabelHasControl = componentRule({
6713
7321
  message: "<label> has no associated control"
6714
7322
  }))
6715
7323
  });
6716
- //#endregion
6717
- //#region src/rules/a11y/use-list.ts
7324
+ // src/rules/a11y/use-list.ts
6718
7325
  const a11yUseList = componentRule({
6719
7326
  id: "a11y/use-list",
6720
7327
  title: "Bullet text should be a list",
@@ -6729,8 +7336,7 @@ const a11yUseList = componentRule({
6729
7336
  message: `Text starts with a bullet character ('${b.char}') — use a list element`
6730
7337
  }))
6731
7338
  });
6732
- //#endregion
6733
- //#region src/rules/a11y/placeholder-label-option.ts
7339
+ // src/rules/a11y/placeholder-label-option.ts
6734
7340
  const a11yPlaceholderLabelOption = componentRule({
6735
7341
  id: "a11y/placeholder-label-option",
6736
7342
  title: "Missing placeholder label option",
@@ -6744,8 +7350,7 @@ const a11yPlaceholderLabelOption = componentRule({
6744
7350
  message: "<select required> is missing a placeholder label option"
6745
7351
  }))
6746
7352
  });
6747
- //#endregion
6748
- //#region src/rules/a11y/require-datetime.ts
7353
+ // src/rules/a11y/require-datetime.ts
6749
7354
  const a11yRequireDatetime = componentRule({
6750
7355
  id: "a11y/require-datetime",
6751
7356
  title: "Missing datetime attribute",
@@ -6760,8 +7365,7 @@ const a11yRequireDatetime = componentRule({
6760
7365
  message: `<time> content "${f.text}" is not machine-readable and has no datetime attribute`
6761
7366
  }))
6762
7367
  });
6763
- //#endregion
6764
- //#region src/rules/a11y/interactive.ts
7368
+ // src/rules/a11y/interactive.ts
6765
7369
  /** Tags that are always interactive, regardless of attributes. */
6766
7370
  const ALWAYS_INTERACTIVE_TAGS = /* @__PURE__ */ new Set([
6767
7371
  "button",
@@ -6874,8 +7478,7 @@ function isInteractiveContainer(tag, attrs) {
6874
7478
  if (tag === "a") return literalOf(attrs, "href") !== void 0;
6875
7479
  return hasRoleIn(attrs, CONTAINER_ROLES);
6876
7480
  }
6877
- //#endregion
6878
- //#region src/rules/a11y/positive-tabindex.ts
7481
+ // src/rules/a11y/positive-tabindex.ts
6879
7482
  /**
6880
7483
  * Literal values only — an expression-valued `tabindex` is unknowable and passes. The
6881
7484
  * Number()-based parse deliberately follows the Svelte compiler's a11y_positive_tabindex
@@ -6906,8 +7509,7 @@ const a11yPositiveTabindex = componentRule({
6906
7509
  }];
6907
7510
  })
6908
7511
  });
6909
- //#endregion
6910
- //#region src/rules/a11y/no-accesskey.ts
7512
+ // src/rules/a11y/no-accesskey.ts
6911
7513
  /**
6912
7514
  * a11y/no-accesskey — unlike most attribute rules, an expression-valued `accesskey` is reported
6913
7515
  * too: the attribute's presence is the problem and its value never matters, so there is nothing
@@ -6930,8 +7532,7 @@ const a11yNoAccesskey = componentRule({
6930
7532
  message: `accesskey on <${e.tag}> — the shortcut key varies by browser and OS, is undiscoverable, and conflicts with assistive-technology bindings`
6931
7533
  }))
6932
7534
  });
6933
- //#endregion
6934
- //#region src/rules/a11y/no-autofocus.ts
7535
+ // src/rules/a11y/no-autofocus.ts
6935
7536
  /**
6936
7537
  * `<dialog>` and popover containers run their focusing steps on show, not on page load, and both
6937
7538
  * honour an `autofocus` descendant — so autofocus there is the correct tool, not focus theft.
@@ -6981,8 +7582,7 @@ const a11yNoAutofocus = componentRule({
6981
7582
  function literalAutofocusElements(c) {
6982
7583
  return (c.elements ?? []).filter((e) => e.attrs.some((a) => a.name === "autofocus" && a.value !== void 0));
6983
7584
  }
6984
- //#endregion
6985
- //#region src/rules/a11y/no-duplicate-dt.ts
7585
+ // src/rules/a11y/no-duplicate-dt.ts
6986
7586
  /**
6987
7587
  * a11y/no-duplicate-dt — the candidate gathering (direct and div-wrapped `<dt>` children of a
6988
7588
  * `<dl>`, fully-static names only, whitespace-normalized, case-sensitive) lives in the
@@ -7003,8 +7603,7 @@ const a11yNoDuplicateDt = componentRule({
7003
7603
  message: `Duplicate <dt> "${d.text}" in the same <dl>`
7004
7604
  }))
7005
7605
  });
7006
- //#endregion
7007
- //#region src/rules/a11y/abbr-title.ts
7606
+ // src/rules/a11y/abbr-title.ts
7008
7607
  /**
7009
7608
  * a11y/abbr-title — a best-practice nudge, not a conformance check: the spec makes `title` on
7010
7609
  * `<abbr>` optional, and an expansion given in the surrounding prose is correct markup this
@@ -7035,8 +7634,7 @@ const a11yAbbrTitle = componentRule({
7035
7634
  message: "<abbr> without a title gives readers no expansion of the abbreviation"
7036
7635
  }))
7037
7636
  });
7038
- //#endregion
7039
- //#region src/rules/a11y/pattern-title.ts
7637
+ // src/rules/a11y/pattern-title.ts
7040
7638
  /** The input types the `pattern` attribute applies to, per the spec's applies-to table. */
7041
7639
  const PATTERN_TYPES = /* @__PURE__ */ new Set([
7042
7640
  "text",
@@ -7085,10 +7683,9 @@ const a11yPatternTitle = componentRule({
7085
7683
  message: "<input pattern> without a title — a failed match tells the user nothing about the expected format"
7086
7684
  }))
7087
7685
  });
7088
- //#endregion
7089
- //#region src/html-spec/generated.ts
7686
+ // src/html-spec/generated.ts
7090
7687
  /*!
7091
- * HTML spec data projected from @markuplint/html-spec@5.0.0 — https://github.com/markuplint/markuplint
7688
+ * HTML spec data projected from @markuplint/html-spec@5.4.0 — https://github.com/markuplint/markuplint
7092
7689
  *
7093
7690
  * MIT License
7094
7691
  *
@@ -7112,9 +7709,8 @@ const a11yPatternTitle = componentRule({
7112
7709
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
7113
7710
  * SOFTWARE.
7114
7711
  */
7115
- const 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,\"nonStandard\":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))\"}],\"forbiddenAncestors\":[\"address\"]},\"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\"],\"conditions\":{\":is(article, aside, nav, section, blockquote, details, dialog, fieldset, figure, td) *\":{\"implicitRole\":\"generic\",\"namingProhibited\":true},\":is(article, aside, nav, section, blockquote, details, dialog, fieldset, figure, td) *:aria(has name)\":{\"implicitRole\":\"complementary\"}}},\"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\":{},\"loading\":{\"experimental\":false},\"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\",\"requiredEither\":[\"target\"]},\"target\":{\"requiredEither\":[\"href\"]}}},\"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\":{\"type\":{\"enum\":[\"ltr\",\"rtl\"]},\"required\":true}}},\"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\":\"DateStringWithOptionalTime\"}}},\"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,\"nonStandard\":true}}},\"div\":{\"categories\":[\"#flow\",\"#palpable\"],\"contentModel\":{\"contents\":[{\"oneOrMore\":\":model(flow)\"}],\"conditional\":[{\"condition\":\"dl > div\",\"contents\":[{\"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\":[[{\"zeroOrMore\":[{\"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\":\"NonEmptyURL\",\"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\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#HTMLGlobalAttrs\"],\"attributes\":{\"color\":{\"deprecated\":true,\"nonStandard\":true},\"face\":{\"deprecated\":true,\"nonStandard\":true},\"size\":{\"deprecated\":true,\"nonStandard\":true}}},\"footer\":{\"categories\":[\"#flow\",\"#palpable\"],\"contentModel\":{\"contents\":[{\"oneOrMore\":\":model(flow):not(header, footer, :has(header, footer))\"}],\"forbiddenAncestors\":[\"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\":\"NonEmptyURL\"},\"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,\"nonStandard\":true},\"marginheight\":{\"deprecated\":true,\"nonStandard\":true},\"marginwidth\":{\"deprecated\":true,\"nonStandard\":true},\"name\":{\"deprecated\":true,\"nonStandard\":true},\"noresize\":{\"deprecated\":true,\"nonStandard\":true},\"scrolling\":{\"deprecated\":true,\"nonStandard\":true},\"src\":{\"deprecated\":true,\"nonStandard\":true}}},\"frameset\":{\"categories\":[],\"obsolete\":true,\"contentModel\":{\"contents\":true},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[],\"attributes\":{\"cols\":{\"deprecated\":true,\"nonStandard\":true},\"rows\":{\"deprecated\":true,\"nonStandard\":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))\"}],\"forbiddenAncestors\":[\"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\":{\"nonStandard\":true}}},\"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,\"nonStandard\":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\":{\"type\":\"SourceSizeList\",\"condition\":\"[srcset]\"},\"src\":{\"type\":\"NonEmptyURL\",\"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\",\"required\":true,\"condition\":\"[type='image' i]\"},\"autocapitalize\":{},\"autocomplete\":{\"type\":[{\"condition\":\"[type='hidden' i]\",\"type\":\"AutoCompleteAnchorMantle\"},{\"condition\":\":not([type='hidden' i])\",\"type\":\"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\":[{\"condition\":\"[type='date' i]\",\"type\":\"DateString\"},{\"condition\":\"[type='month' i]\",\"type\":\"MonthString\"},{\"condition\":\"[type='week' i]\",\"type\":\"WeekString\"},{\"condition\":\"[type='time' i]\",\"type\":\"TimeString\"},{\"condition\":\"[type='datetime-local' i]\",\"type\":\"LocalDateTimeString\"},{\"condition\":[\"[type='number' i]\",\"[type='range' i]\"],\"type\":{\"type\":\"float\"}}],\"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\":[{\"condition\":\"[type='date' i]\",\"type\":\"DateString\"},{\"condition\":\"[type='month' i]\",\"type\":\"MonthString\"},{\"condition\":\"[type='week' i]\",\"type\":\"WeekString\"},{\"condition\":\"[type='time' i]\",\"type\":\"TimeString\"},{\"condition\":\"[type='datetime-local' i]\",\"type\":\"LocalDateTimeString\"},{\"condition\":[\"[type='number' i]\",\"[type='range' i]\"],\"type\":{\"type\":\"float\"}}],\"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\":{\"type\":{\"pattern\":\"/^(?!isindex$).+/\"}},\"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\",\"nonStandard\":true,\"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\":[{\"condition\":\"[type='color' i]\",\"type\":\"SimpleColor\"},{\"condition\":\"[type='url' i]\",\"type\":\"AbsoluteURLOrEmpty\"},{\"condition\":\"[type='email' i]\",\"type\":\"Email\"},{\"condition\":[\"[type='number' i]\",\"[type='range' i]\"],\"type\":{\"type\":\"float\"}},{\"condition\":\"[type='date' i]\",\"type\":\"DateString\"},{\"condition\":\"[type='month' i]\",\"type\":\"MonthString\"},{\"condition\":\"[type='week' i]\",\"type\":\"WeekString\"},{\"condition\":\"[type='time' i]\",\"type\":\"TimeString\"},{\"condition\":\"[type='datetime-local' i]\",\"type\":\"LocalDateTimeString\"}]},\"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\":\"DateStringWithOptionalTime\"}}},\"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\":[{\"condition\":\"[rel~='preload' i]\",\"type\":{\"enum\":[\"fetch\",\"font\",\"image\",\"script\",\"style\",\"track\"]}},{\"condition\":\"[rel~='modulepreload' i]\",\"type\":{\"enum\":[\"audioworklet\",\"json\",\"paintworklet\",\"script\",\"serviceworker\",\"sharedworker\",\"style\",\"worker\"]}}],\"required\":\"[rel~='preload' i]\",\"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\",\"condition\":\"[rel~='stylesheet' i]\"},\"fetchpriority\":{},\"href\":{\"type\":\"NonEmptyURL\",\"requiredEither\":[\"imagesrcset\"]},\"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\":[{\"condition\":\"[rel~='alternate' i][rel~='stylesheet' i]\",\"type\":\"NoEmptyAny\"}],\"required\":\"[rel~='alternate' i][rel~='stylesheet' i]\"},\"type\":{}}},\"listing\":{\"categories\":[],\"obsolete\":true,\"contentModel\":{\"contents\":true},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[],\"attributes\":{}},\"main\":{\"categories\":[\"#flow\",\"#palpable\"],\"contentModel\":{\"contents\":[{\"oneOrMore\":\":model(flow)\"}],\"forbiddenAncestors\":[\"article\",\"aside\",\"footer\",\"header\",\"nav\"]},\"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,\"nonStandard\":true},\"hspace\":{\"deprecated\":true,\"nonStandard\":true},\"loop\":{\"deprecated\":true},\"scrollamount\":{\"deprecated\":true,\"nonStandard\":true},\"scrolldelay\":{\"deprecated\":true,\"nonStandard\":true},\"truespeed\":{\"deprecated\":true},\"vspace\":{\"deprecated\":true,\"nonStandard\":true},\"width\":{\"deprecated\":true,\"nonStandard\":true}}},\"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\":[{\"condition\":\"[http-equiv='refresh' i]\",\"type\":\"HTTPEquivRefresh\"},{\"condition\":\"[http-equiv='content-type' i]\",\"type\":\"HTTPEquivContentType\"},{\"condition\":\"[http-equiv='x-ua-compatible' i]\",\"type\":{\"enum\":[\"IE=edge\"],\"caseInsensitive\":true}},{\"condition\":\"[http-equiv='content-security-policy' i]\",\"type\":\"ContentSecurityPolicy\"}],\"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\":\"NonEmptyURL\",\"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\":\"NoEmptyAny\",\"required\":true}}},\"option\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":\"#nonEmptyText\"}],\"conditional\":[{\"condition\":\"[label][value]\",\"contents\":false},{\"condition\":\"label\",\"contents\":[{\"optional\":\"#text\"}]},{\"condition\":\"datalist > :scope\",\"contents\":[{\"optional\":\"#text\"}]},{\"condition\":\"datalist > [label]\",\"contents\":[{\"optional\":\"#text\"}]}]},\"aria\":{\"permittedRoles\":[],\"conditions\":{\":is(select, select > optgroup, 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,\"nonStandard\":true},\"type\":{\"deprecated\":true,\"nonStandard\":true},\"value\":{\"deprecated\":true,\"nonStandard\":true},\"valuetype\":{\"deprecated\":true,\"nonStandard\":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\":{\"type\":\"float\",\"gt\":0}},\"value\":{\"type\":{\"type\":\"float\",\"gte\":0}}}},\"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\":[\":is(:not([type]), [type=''], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])[src]\",\"[type='module' i]\"]},\"attributionsrc\":{\"deprecated\":true,\"nonStandard\":true},\"blocking\":{\"type\":{\"token\":{\"enum\":[\"render\"]},\"separator\":\"space\",\"unique\":true},\"condition\":\":is(:not([type]), [type=''], [type='module' i], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])[src]\"},\"charset\":{\"deprecated\":true,\"condition\":\"[src]\"},\"crossorigin\":{\"condition\":\":is(:not([type]), [type=''], [type='module' i], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])\"},\"defer\":{\"type\":\"Boolean\",\"ineffective\":[\":not([src])\",\"[async]\"],\"condition\":\":is(:not([type]), [type=''], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])[src]\"},\"fetchpriority\":{\"condition\":\":is(:not([type]), [type=''], [type='module' i], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])[src]\"},\"integrity\":{\"condition\":\":is(:not([type]), [type=''], [type='module' i], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])[src]\"},\"language\":{\"deprecated\":true,\"nonStandard\":true},\"nomodule\":{\"type\":\"Boolean\",\"condition\":\":is(:not([type]), [type=''], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])\"},\"nonce\":{},\"referrerpolicy\":{\"condition\":\":is(:not([type]), [type=''], [type='module' i], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])\"},\"src\":{\"type\":\"NonEmptyURL\",\"condition\":\":is(:not([type]), [type=''], [type='module' i], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])\"},\"type\":{\"type\":[\"MIMEType\",{\"enum\":[\"module\",\"importmap\",\"speculationrules\"],\"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\":{\"type\":\"AutoCompleteNoWebauthn\"},\"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\":\"MediaQueryList\"},\"sizes\":{\"condition\":\"picture > source[srcset]\"},\"src\":{\"type\":\"NonEmptyURL\",\"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\":\"MediaQueryList\"},\"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,\"nonStandard\":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\":{\"for\":{\"experimental\":true},\"shadowrootclonable\":{\"type\":\"Boolean\"},\"shadowrootcustomelementregistry\":{\"type\":\"Boolean\"},\"shadowrootdelegatesfocus\":{\"type\":\"Boolean\"},\"shadowrootmode\":{\"type\":{\"enum\":[\"open\",\"closed\"],\"missingValueDefault\":\"none\",\"invalidValueDefault\":\"none\"}},\"shadowrootreferencetarget\":{\"type\":\"DOMID\",\"nonStandard\":true,\"experimental\":true},\"shadowrootserializable\":{\"type\":\"Boolean\"},\"shadowrootslotassignment\":{\"type\":{\"enum\":[\"named\",\"manual\"],\"missingValueDefault\":\"named\",\"invalidValueDefault\":\"named\"},\"experimental\":true}}},\"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,\"nonStandard\":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,\"nonStandard\":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\":\"#nonEmptyText\"}]},\"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,\"uniqueAttrs\":[\"default\"]},\"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\":\"NonEmptyURL\",\"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\":{},\"loading\":{\"experimental\":false},\"loop\":{},\"muted\":{},\"playsinline\":{\"type\":\"Boolean\"},\"poster\":{\"type\":\"NonEmptyURL\"},\"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\":{}},\"mml:annotation\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"encoding\":{\"type\":\"MIMEType\"},\"src\":{\"type\":\"URL\",\"deprecated\":true}}},\"mml:annotation-xml\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"encoding\":{\"type\":\"MIMEType\"},\"src\":{\"type\":\"URL\",\"deprecated\":true}}},\"mml:maction\":{\"categories\":[],\"deprecated\":true,\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"actiontype\":{\"type\":\"Any\",\"deprecated\":true,\"nonStandard\":true},\"selection\":{\"type\":\"Any\",\"deprecated\":true,\"nonStandard\":true}}},\"math\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"#text\"]}]},\"aria\":{\"implicitRole\":\"math\",\"permittedRoles\":[]},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"alttext\":{\"type\":\"Any\"},\"display\":{\"type\":{\"enum\":[\"block\",\"inline\"],\"disallowToSurroundBySpaces\":false}},\"xmlns\":{\"type\":\"URL\"}}},\"mml:menclose\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"notation\":{\"type\":\"Any\",\"nonStandard\":true}}},\"mml:merror\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mfenced\":{\"categories\":[],\"deprecated\":true,\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"close\":{\"type\":\"Any\"},\"open\":{\"type\":\"Any\"},\"separators\":{\"type\":\"Any\"}}},\"mml:mfrac\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"#text\"],\"min\":2,\"max\":2}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"denomalign\":{\"deprecated\":true,\"nonStandard\":true},\"linethickness\":{\"type\":\"<length-percentage>\"},\"numalign\":{\"deprecated\":true,\"nonStandard\":true}}},\"mml:mi\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"mathvariant\":{\"type\":{\"enum\":[\"normal\"],\"disallowToSurroundBySpaces\":false}}}},\"mml:mmultiscripts\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|mprescripts\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"subscriptshift\":{\"deprecated\":true,\"nonStandard\":true},\"superscriptshift\":{\"deprecated\":true,\"nonStandard\":true}}},\"mml:mn\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mo\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"accent\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false},\"nonStandard\":true},\"fence\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}},\"form\":{\"type\":{\"enum\":[\"prefix\",\"infix\",\"postfix\"],\"disallowToSurroundBySpaces\":false}},\"largeop\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}},\"lspace\":{\"type\":\"<length-percentage>\"},\"maxsize\":{\"type\":\"<length-percentage>\"},\"minsize\":{\"type\":\"<length-percentage>\"},\"movablelimits\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}},\"rspace\":{\"type\":\"<length-percentage>\"},\"separator\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}},\"stretchy\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}},\"symmetric\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}}}},\"mml:mover\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"],\"min\":2,\"max\":2}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"accent\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}}}},\"mml:mpadded\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"depth\":{\"type\":\"<length-percentage>\"},\"height\":{\"type\":\"<length-percentage>\"},\"lspace\":{\"type\":\"<length-percentage>\"},\"voffset\":{\"type\":\"<length-percentage>\"},\"width\":{\"type\":\"<length-percentage>\"}}},\"mml:mphantom\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mprescripts\":{\"categories\":[],\"contentModel\":{\"contents\":false},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mroot\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"#text\"],\"min\":2,\"max\":2}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mrow\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"mml|mtr\",\"mml|mtd\",\"mml|mprescripts\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:ms\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mspace\":{\"categories\":[],\"contentModel\":{\"contents\":false},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"depth\":{\"type\":\"<length-percentage>\"},\"height\":{\"type\":\"<length-percentage>\"},\"width\":{\"type\":\"<length-percentage>\"}}},\"mml:msqrt\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mstyle\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"background\":{\"deprecated\":true,\"nonStandard\":true},\"color\":{\"deprecated\":true,\"nonStandard\":true},\"fontsize\":{\"deprecated\":true,\"nonStandard\":true},\"fontstyle\":{\"deprecated\":true,\"nonStandard\":true},\"fontweight\":{\"deprecated\":true,\"nonStandard\":true}}},\"mml:msub\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"],\"min\":2,\"max\":2}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"subscriptshift\":{\"deprecated\":true,\"nonStandard\":true}}},\"mml:msubsup\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"],\"min\":3,\"max\":3}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"subscriptshift\":{\"deprecated\":true,\"nonStandard\":true},\"superscriptshift\":{\"deprecated\":true,\"nonStandard\":true}}},\"mml:msup\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"],\"min\":2,\"max\":2}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"superscriptshift\":{\"deprecated\":true,\"nonStandard\":true}}},\"mml:mtable\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\"mml|mtr\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"align\":{\"nonStandard\":true},\"columnalign\":{\"nonStandard\":true},\"columnlines\":{\"nonStandard\":true},\"columnspacing\":{\"nonStandard\":true},\"frame\":{\"nonStandard\":true},\"framespacing\":{\"nonStandard\":true},\"rowalign\":{\"nonStandard\":true},\"rowlines\":{\"nonStandard\":true},\"rowspacing\":{\"nonStandard\":true},\"width\":{\"nonStandard\":true}}},\"mml:mtd\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"columnalign\":{\"nonStandard\":true},\"columnspan\":{\"type\":{\"type\":\"integer\",\"gt\":0}},\"rowalign\":{\"nonStandard\":true},\"rowspan\":{\"type\":{\"type\":\"integer\",\"gt\":0}}}},\"mml:mtext\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mtr\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\"mml|mtd\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"columnalign\":{\"nonStandard\":true},\"rowalign\":{\"nonStandard\":true}}},\"mml:munder\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"],\"min\":2,\"max\":2}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"accentunder\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}}}},\"mml:munderover\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"],\"min\":3,\"max\":3}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"accent\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}},\"accentunder\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}}}},\"mml:semantics\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"svg:a\":{\"categories\":[],\"contentModel\":{\"conditional\":[{\"condition\":\"svg|switch > svg|a\",\"contents\":[{\"transparent\":\":not(svg|a, :has(svg|a))\"}]}],\"contents\":[{\"transparent\":\":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\":{\"async\":{\"type\":\"Boolean\",\"experimental\":true},\"crossorigin\":{\"type\":{\"enum\":[\"anonymous\",\"use-credentials\",\"\"],\"disallowToSurroundBySpaces\":false}},\"defer\":{\"type\":\"Boolean\",\"experimental\":true},\"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\":\"MediaQueryList\"},\"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\"],\"#MathMLPresentation\":[\"mml|merror\",\"mml|mfrac\",\"mml|mi\",\"mml|mmultiscripts\",\"mml|mn\",\"mml|mo\",\"mml|mover\",\"mml|mpadded\",\"mml|mphantom\",\"mml|mroot\",\"mml|mrow\",\"mml|ms\",\"mml|mspace\",\"mml|msqrt\",\"mml|mstyle\",\"mml|msub\",\"mml|msup\",\"mml|msubsup\",\"mml|mtable\",\"mml|mtext\",\"mml|munder\",\"mml|munderover\",\"mml|maction\",\"mml|menclose\",\"mml|mfenced\"],\"#MathMLScript\":[\"mml|msub\",\"mml|msup\",\"mml|msubsup\",\"mml|mmultiscripts\"],\"#MathMLTabular\":[\"mml|mtable\",\"mml|mtr\",\"mml|mtd\"]},\"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\"]}},\"focusgroup\":{\"type\":{\"token\":{\"enum\":[\"toolbar\",\"tablist\",\"radiogroup\",\"listbox\",\"menu\",\"menubar\",\"none\",\"inline\",\"block\",\"wrap\",\"nowrap\",\"nomemory\"]},\"separator\":\"space\",\"unique\":true,\"caseInsensitive\":true},\"experimental\":true},\"focusgroupstart\":{\"type\":\"Boolean\",\"experimental\":true},\"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\",\"condition\":\"[itemscope][itemtype]\"},\"itemprop\":{\"type\":{\"token\":\"ItemProp\",\"ordered\":false,\"unique\":true,\"separator\":\"space\"}},\"itemref\":{\"type\":{\"token\":\"DOMID\",\"unique\":true,\"separator\":\"space\"},\"condition\":\"[itemscope]\"},\"itemscope\":{\"type\":\"Boolean\"},\"itemtype\":{\"type\":{\"token\":\"AbsoluteURL\",\"ordered\":false,\"unique\":true,\"allowEmpty\":false,\"separator\":\"space\"},\"condition\":\"[itemscope]\"},\"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},\"ontouchstart\":{\"type\":\"FunctionBody\"},\"ontouchend\":{\"type\":\"FunctionBody\"},\"ontouchmove\":{\"type\":\"FunctionBody\"},\"ontouchcancel\":{\"type\":\"FunctionBody\"}},\"#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\":\"SRIHash\"},\"media\":{\"type\":\"MediaQueryList\"},\"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\":\"NonEmptyURL\"},\"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\":\"NonEmptyURL\"},\"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>\"}},\"#MathMLGlobalAttrs\":{\"autofocus\":{\"type\":\"Boolean\"},\"class\":{\"type\":\"Any\"},\"data-*\":{\"type\":\"Any\"},\"dir\":{\"type\":{\"enum\":[\"ltr\",\"rtl\"]}},\"displaystyle\":{\"type\":{\"enum\":[\"true\",\"false\"]}},\"id\":{\"type\":\"DOMID\"},\"mathbackground\":{\"type\":\"<color>\",\"deprecated\":true},\"mathcolor\":{\"type\":\"<color>\",\"deprecated\":true},\"mathsize\":{\"type\":\"<length-percentage>\",\"deprecated\":true},\"nonce\":{\"type\":\"Any\"},\"scriptlevel\":{\"type\":\"Any\"},\"style\":{\"type\":\"<css-declaration-list>\"},\"tabindex\":{\"type\":\"TabIndex\"}},\"#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-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\"]},\"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\"]}}");
7116
- //#endregion
7117
- //#region src/html-spec/index.ts
7712
+ const 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,\"nonStandard\":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))\"}],\"forbiddenAncestors\":[\"address\"]},\"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\"],\"conditions\":{\":is(article, aside, nav, section, blockquote, details, dialog, fieldset, figure, td) *\":{\"implicitRole\":\"generic\",\"namingProhibited\":true},\":is(article, aside, nav, section, blockquote, details, dialog, fieldset, figure, td) *:aria(has name)\":{\"implicitRole\":\"complementary\"}}},\"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\":{},\"loading\":{\"experimental\":false},\"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\",\"requiredEither\":[\"target\"]},\"target\":{\"requiredEither\":[\"href\"]}}},\"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\":{\"type\":{\"enum\":[\"ltr\",\"rtl\"]},\"required\":true}}},\"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\":\"DateStringWithOptionalTime\"}}},\"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,\"nonStandard\":true}}},\"div\":{\"categories\":[\"#flow\",\"#palpable\"],\"contentModel\":{\"contents\":[{\"oneOrMore\":\":model(flow)\"}],\"conditional\":[{\"condition\":\"dl > div\",\"contents\":[{\"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\":[[{\"zeroOrMore\":[{\"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\":\"NonEmptyURL\",\"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\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#HTMLGlobalAttrs\"],\"attributes\":{\"color\":{\"deprecated\":true,\"nonStandard\":true},\"face\":{\"deprecated\":true,\"nonStandard\":true},\"size\":{\"deprecated\":true,\"nonStandard\":true}}},\"footer\":{\"categories\":[\"#flow\",\"#palpable\"],\"contentModel\":{\"contents\":[{\"oneOrMore\":\":model(flow):not(header, footer, :has(header, footer))\"}],\"forbiddenAncestors\":[\"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\":\"NonEmptyURL\"},\"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,\"nonStandard\":true},\"marginheight\":{\"deprecated\":true,\"nonStandard\":true},\"marginwidth\":{\"deprecated\":true,\"nonStandard\":true},\"name\":{\"deprecated\":true,\"nonStandard\":true},\"noresize\":{\"deprecated\":true,\"nonStandard\":true},\"scrolling\":{\"deprecated\":true,\"nonStandard\":true},\"src\":{\"deprecated\":true,\"nonStandard\":true}}},\"frameset\":{\"categories\":[],\"obsolete\":true,\"contentModel\":{\"contents\":true},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[],\"attributes\":{\"cols\":{\"deprecated\":true,\"nonStandard\":true},\"rows\":{\"deprecated\":true,\"nonStandard\":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))\"}],\"forbiddenAncestors\":[\"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\":{\"nonStandard\":true}}},\"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,\"nonStandard\":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\":{\"type\":\"SourceSizeList\",\"condition\":\"[srcset]\"},\"src\":{\"type\":\"NonEmptyURL\",\"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\",\"required\":true,\"condition\":\"[type='image' i]\"},\"autocapitalize\":{},\"autocomplete\":{\"type\":[{\"condition\":\"[type='hidden' i]\",\"type\":\"AutoCompleteAnchorMantle\"},{\"condition\":\":not([type='hidden' i])\",\"type\":\"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\":[{\"condition\":\"[type='date' i]\",\"type\":\"DateString\"},{\"condition\":\"[type='month' i]\",\"type\":\"MonthString\"},{\"condition\":\"[type='week' i]\",\"type\":\"WeekString\"},{\"condition\":\"[type='time' i]\",\"type\":\"TimeString\"},{\"condition\":\"[type='datetime-local' i]\",\"type\":\"LocalDateTimeString\"},{\"condition\":[\"[type='number' i]\",\"[type='range' i]\"],\"type\":{\"type\":\"float\"}}],\"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\":[{\"condition\":\"[type='date' i]\",\"type\":\"DateString\"},{\"condition\":\"[type='month' i]\",\"type\":\"MonthString\"},{\"condition\":\"[type='week' i]\",\"type\":\"WeekString\"},{\"condition\":\"[type='time' i]\",\"type\":\"TimeString\"},{\"condition\":\"[type='datetime-local' i]\",\"type\":\"LocalDateTimeString\"},{\"condition\":[\"[type='number' i]\",\"[type='range' i]\"],\"type\":{\"type\":\"float\"}}],\"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\":{\"type\":{\"pattern\":\"/^(?!isindex$).+/\"}},\"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\",\"nonStandard\":true,\"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\":[{\"condition\":\"[type='color' i]\",\"type\":\"SimpleColor\"},{\"condition\":\"[type='url' i]\",\"type\":\"AbsoluteURLOrEmpty\"},{\"condition\":\"[type='email' i]\",\"type\":\"Email\"},{\"condition\":[\"[type='number' i]\",\"[type='range' i]\"],\"type\":{\"type\":\"float\"}},{\"condition\":\"[type='date' i]\",\"type\":\"DateString\"},{\"condition\":\"[type='month' i]\",\"type\":\"MonthString\"},{\"condition\":\"[type='week' i]\",\"type\":\"WeekString\"},{\"condition\":\"[type='time' i]\",\"type\":\"TimeString\"},{\"condition\":\"[type='datetime-local' i]\",\"type\":\"LocalDateTimeString\"}],\"condition\":\":not([type='file' i]):not([type='image' i]):not([type='hidden' i][name='_charset_' i])\"},\"webkitdirectory\":{},\"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\":\"DateStringWithOptionalTime\"}}},\"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\":[{\"condition\":\"[rel~='preload' i]\",\"type\":{\"enum\":[\"fetch\",\"font\",\"image\",\"script\",\"style\",\"track\"]}},{\"condition\":\"[rel~='modulepreload' i]\",\"type\":{\"enum\":[\"audioworklet\",\"json\",\"paintworklet\",\"script\",\"serviceworker\",\"sharedworker\",\"style\",\"worker\"]}}],\"required\":\"[rel~='preload' i]\",\"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\",\"condition\":\"[rel~='stylesheet' i]\"},\"fetchpriority\":{},\"href\":{\"type\":\"NonEmptyURL\",\"requiredEither\":[\"imagesrcset\"]},\"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\":[{\"condition\":\"[rel~='alternate' i][rel~='stylesheet' i]\",\"type\":\"NoEmptyAny\"}],\"required\":\"[rel~='alternate' i][rel~='stylesheet' i]\"},\"type\":{}}},\"listing\":{\"categories\":[],\"obsolete\":true,\"contentModel\":{\"contents\":true},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[],\"attributes\":{}},\"main\":{\"categories\":[\"#flow\",\"#palpable\"],\"contentModel\":{\"contents\":[{\"oneOrMore\":\":model(flow)\"}],\"forbiddenAncestors\":[\"article\",\"aside\",\"footer\",\"header\",\"nav\"]},\"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,\"nonStandard\":true},\"hspace\":{\"deprecated\":true,\"nonStandard\":true},\"loop\":{\"deprecated\":true},\"scrollamount\":{\"deprecated\":true,\"nonStandard\":true},\"scrolldelay\":{\"deprecated\":true,\"nonStandard\":true},\"truespeed\":{\"deprecated\":true},\"vspace\":{\"deprecated\":true,\"nonStandard\":true},\"width\":{\"deprecated\":true,\"nonStandard\":true}}},\"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\":[{\"condition\":\"[http-equiv='refresh' i]\",\"type\":\"HTTPEquivRefresh\"},{\"condition\":\"[http-equiv='content-type' i]\",\"type\":\"HTTPEquivContentType\"},{\"condition\":\"[http-equiv='x-ua-compatible' i]\",\"type\":{\"enum\":[\"IE=edge\"],\"caseInsensitive\":true}},{\"condition\":\"[http-equiv='content-security-policy' i]\",\"type\":\"ContentSecurityPolicy\"}],\"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\":\"NonEmptyURL\",\"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\":\"NoEmptyAny\",\"required\":true}}},\"option\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":\"#nonEmptyText\"}],\"conditional\":[{\"condition\":\"[label][value]\",\"contents\":false},{\"condition\":\"label\",\"contents\":[{\"optional\":\"#text\"}]},{\"condition\":\"datalist > :scope\",\"contents\":[{\"optional\":\"#text\"}]},{\"condition\":\"datalist > [label]\",\"contents\":[{\"optional\":\"#text\"}]}]},\"aria\":{\"permittedRoles\":[],\"conditions\":{\":is(select, select > optgroup, 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,\"nonStandard\":true},\"type\":{\"deprecated\":true,\"nonStandard\":true},\"value\":{\"deprecated\":true,\"nonStandard\":true},\"valuetype\":{\"deprecated\":true,\"nonStandard\":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\":{\"type\":\"float\",\"gt\":0}},\"value\":{\"type\":{\"type\":\"float\",\"gte\":0}}}},\"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\":[\":is(:not([type]), [type=''], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])[src]\",\"[type='module' i]\"]},\"attributionsrc\":{\"deprecated\":true,\"nonStandard\":true},\"blocking\":{\"type\":{\"token\":{\"enum\":[\"render\"]},\"separator\":\"space\",\"unique\":true},\"condition\":\":is(:not([type]), [type=''], [type='module' i], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])[src]\"},\"charset\":{\"deprecated\":true,\"condition\":\"[src]\"},\"crossorigin\":{\"condition\":\":is(:not([type]), [type=''], [type='module' i], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])\"},\"defer\":{\"type\":\"Boolean\",\"ineffective\":[\":not([src])\",\"[async]\"],\"condition\":\":is(:not([type]), [type=''], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])[src]\"},\"fetchpriority\":{\"condition\":\":is(:not([type]), [type=''], [type='module' i], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])[src]\"},\"integrity\":{\"condition\":\":is(:not([type]), [type=''], [type='module' i], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])[src]\"},\"language\":{\"deprecated\":true,\"nonStandard\":true},\"nomodule\":{\"type\":\"Boolean\",\"condition\":\":is(:not([type]), [type=''], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])\"},\"nonce\":{},\"referrerpolicy\":{\"condition\":\":is(:not([type]), [type=''], [type='module' i], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])\"},\"src\":{\"type\":\"NonEmptyURL\",\"condition\":\":is(:not([type]), [type=''], [type='module' i], [type='application/ecmascript' i], [type='application/javascript' i], [type='application/x-ecmascript' i], [type='application/x-javascript' i], [type='text/ecmascript' i], [type='text/javascript' i], [type='text/javascript1.0' i], [type='text/javascript1.1' i], [type='text/javascript1.2' i], [type='text/javascript1.3' i], [type='text/javascript1.4' i], [type='text/javascript1.5' i], [type='text/jscript' i], [type='text/livescript' i], [type='text/x-ecmascript' i], [type='text/x-javascript' i])\"},\"type\":{\"type\":[\"MIMEType\",{\"enum\":[\"module\",\"importmap\",\"speculationrules\"],\"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\":{\"type\":\"AutoCompleteNoWebauthn\"},\"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\":\"MediaQueryList\"},\"sizes\":{\"condition\":\"picture > source[srcset]\"},\"src\":{\"type\":\"NonEmptyURL\",\"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\":\"MediaQueryList\"},\"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,\"nonStandard\":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\":{\"for\":{\"experimental\":true},\"shadowrootclonable\":{\"type\":\"Boolean\"},\"shadowrootcustomelementregistry\":{\"type\":\"Boolean\"},\"shadowrootdelegatesfocus\":{\"type\":\"Boolean\"},\"shadowrootmode\":{\"type\":{\"enum\":[\"open\",\"closed\"],\"missingValueDefault\":\"none\",\"invalidValueDefault\":\"none\"}},\"shadowrootreferencetarget\":{\"type\":\"DOMID\",\"nonStandard\":true,\"experimental\":true},\"shadowrootserializable\":{\"type\":\"Boolean\"},\"shadowrootslotassignment\":{\"type\":{\"enum\":[\"named\",\"manual\"],\"missingValueDefault\":\"named\",\"invalidValueDefault\":\"named\"},\"experimental\":true}}},\"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,\"nonStandard\":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,\"nonStandard\":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\":\"#nonEmptyText\"}]},\"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,\"uniqueAttrs\":[\"default\"]},\"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\":\"NonEmptyURL\",\"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\":{},\"loading\":{\"experimental\":false},\"loop\":{},\"muted\":{},\"playsinline\":{\"type\":\"Boolean\"},\"poster\":{\"type\":\"NonEmptyURL\"},\"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\":{}},\"mml:annotation\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"encoding\":{\"type\":\"MIMEType\"},\"src\":{\"type\":\"URL\",\"deprecated\":true}}},\"mml:annotation-xml\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"encoding\":{\"type\":\"MIMEType\"},\"src\":{\"type\":\"URL\",\"deprecated\":true}}},\"mml:maction\":{\"categories\":[],\"deprecated\":true,\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"actiontype\":{\"type\":\"Any\",\"deprecated\":true,\"nonStandard\":true},\"selection\":{\"type\":\"Any\",\"deprecated\":true,\"nonStandard\":true}}},\"math\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"#text\"]}]},\"aria\":{\"implicitRole\":\"math\",\"permittedRoles\":[]},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"alttext\":{\"type\":\"Any\"},\"display\":{\"type\":{\"enum\":[\"block\",\"inline\"],\"disallowToSurroundBySpaces\":false}},\"xmlns\":{\"type\":\"URL\"}}},\"mml:menclose\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"notation\":{\"type\":\"Any\",\"nonStandard\":true}}},\"mml:merror\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mfenced\":{\"categories\":[],\"deprecated\":true,\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"close\":{\"type\":\"Any\"},\"open\":{\"type\":\"Any\"},\"separators\":{\"type\":\"Any\"}}},\"mml:mfrac\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"#text\"],\"min\":2,\"max\":2}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"denomalign\":{\"deprecated\":true,\"nonStandard\":true},\"linethickness\":{\"type\":\"<length-percentage>\"},\"numalign\":{\"deprecated\":true,\"nonStandard\":true}}},\"mml:mi\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"mathvariant\":{\"type\":{\"enum\":[\"normal\"],\"disallowToSurroundBySpaces\":false}}}},\"mml:mmultiscripts\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|mprescripts\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"subscriptshift\":{\"deprecated\":true,\"nonStandard\":true},\"superscriptshift\":{\"deprecated\":true,\"nonStandard\":true}}},\"mml:mn\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mo\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"accent\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false},\"nonStandard\":true},\"fence\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}},\"form\":{\"type\":{\"enum\":[\"prefix\",\"infix\",\"postfix\"],\"disallowToSurroundBySpaces\":false}},\"largeop\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}},\"lspace\":{\"type\":\"<length-percentage>\"},\"maxsize\":{\"type\":\"<length-percentage>\"},\"minsize\":{\"type\":\"<length-percentage>\"},\"movablelimits\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}},\"rspace\":{\"type\":\"<length-percentage>\"},\"separator\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}},\"stretchy\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}},\"symmetric\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}}}},\"mml:mover\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"],\"min\":2,\"max\":2}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"accent\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}}}},\"mml:mpadded\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"depth\":{\"type\":\"<length-percentage>\"},\"height\":{\"type\":\"<length-percentage>\"},\"lspace\":{\"type\":\"<length-percentage>\"},\"voffset\":{\"type\":\"<length-percentage>\"},\"width\":{\"type\":\"<length-percentage>\"}}},\"mml:mphantom\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mprescripts\":{\"categories\":[],\"contentModel\":{\"contents\":false},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mroot\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"#text\"],\"min\":2,\"max\":2}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mrow\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"mml|mtr\",\"mml|mtd\",\"mml|mprescripts\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:ms\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mspace\":{\"categories\":[],\"contentModel\":{\"contents\":false},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"depth\":{\"type\":\"<length-percentage>\"},\"height\":{\"type\":\"<length-percentage>\"},\"width\":{\"type\":\"<length-percentage>\"}}},\"mml:msqrt\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mstyle\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"background\":{\"deprecated\":true,\"nonStandard\":true},\"color\":{\"deprecated\":true,\"nonStandard\":true},\"fontsize\":{\"deprecated\":true,\"nonStandard\":true},\"fontstyle\":{\"deprecated\":true,\"nonStandard\":true},\"fontweight\":{\"deprecated\":true,\"nonStandard\":true}}},\"mml:msub\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"],\"min\":2,\"max\":2}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"subscriptshift\":{\"deprecated\":true,\"nonStandard\":true}}},\"mml:msubsup\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"],\"min\":3,\"max\":3}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"subscriptshift\":{\"deprecated\":true,\"nonStandard\":true},\"superscriptshift\":{\"deprecated\":true,\"nonStandard\":true}}},\"mml:msup\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"],\"min\":2,\"max\":2}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"superscriptshift\":{\"deprecated\":true,\"nonStandard\":true}}},\"mml:mtable\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\"mml|mtr\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"align\":{\"nonStandard\":true},\"columnalign\":{\"nonStandard\":true},\"columnlines\":{\"nonStandard\":true},\"columnspacing\":{\"nonStandard\":true},\"frame\":{\"nonStandard\":true},\"framespacing\":{\"nonStandard\":true},\"rowalign\":{\"nonStandard\":true},\"rowlines\":{\"nonStandard\":true},\"rowspacing\":{\"nonStandard\":true},\"width\":{\"nonStandard\":true}}},\"mml:mtd\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"columnalign\":{\"nonStandard\":true},\"columnspan\":{\"type\":{\"type\":\"integer\",\"gt\":0}},\"rowalign\":{\"nonStandard\":true},\"rowspan\":{\"type\":{\"type\":\"integer\",\"gt\":0}}}},\"mml:mtext\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"mml:mtr\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\"mml|mtd\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"columnalign\":{\"nonStandard\":true},\"rowalign\":{\"nonStandard\":true}}},\"mml:munder\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"],\"min\":2,\"max\":2}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"accentunder\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}}}},\"mml:munderover\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"require\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"],\"min\":3,\"max\":3}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{\"accent\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}},\"accentunder\":{\"type\":{\"enum\":[\"true\",\"false\"],\"disallowToSurroundBySpaces\":false}}}},\"mml:semantics\":{\"categories\":[],\"contentModel\":{\"contents\":[{\"zeroOrMore\":[\":model(MathMLPresentation)\",\"mml|semantics\",\"mml|annotation\",\"mml|annotation-xml\",\"#text\"]}]},\"aria\":{\"permittedRoles\":\"any\"},\"globalAttrs\":[\"#ARIAAttrs\",\"#GlobalEventAttrs\",\"#MathMLGlobalAttrs\"],\"attributes\":{}},\"svg:a\":{\"categories\":[],\"contentModel\":{\"conditional\":[{\"condition\":\"svg|switch > svg|a\",\"contents\":[{\"transparent\":\":not(svg|a, :has(svg|a))\"}]}],\"contents\":[{\"transparent\":\":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\":{\"async\":{\"type\":\"Boolean\",\"experimental\":true},\"crossorigin\":{\"type\":{\"enum\":[\"anonymous\",\"use-credentials\",\"\"],\"disallowToSurroundBySpaces\":false}},\"defer\":{\"type\":\"Boolean\",\"experimental\":true},\"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\":\"MediaQueryList\"},\"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\"],\"#MathMLPresentation\":[\"mml|merror\",\"mml|mfrac\",\"mml|mi\",\"mml|mmultiscripts\",\"mml|mn\",\"mml|mo\",\"mml|mover\",\"mml|mpadded\",\"mml|mphantom\",\"mml|mroot\",\"mml|mrow\",\"mml|ms\",\"mml|mspace\",\"mml|msqrt\",\"mml|mstyle\",\"mml|msub\",\"mml|msup\",\"mml|msubsup\",\"mml|mtable\",\"mml|mtext\",\"mml|munder\",\"mml|munderover\",\"mml|maction\",\"mml|menclose\",\"mml|mfenced\"],\"#MathMLScript\":[\"mml|msub\",\"mml|msup\",\"mml|msubsup\",\"mml|mmultiscripts\"],\"#MathMLTabular\":[\"mml|mtable\",\"mml|mtr\",\"mml|mtd\"]},\"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\"]}},\"focusgroup\":{\"type\":{\"token\":{\"enum\":[\"toolbar\",\"tablist\",\"radiogroup\",\"listbox\",\"menu\",\"menubar\",\"none\",\"inline\",\"block\",\"wrap\",\"nowrap\",\"nomemory\"]},\"separator\":\"space\",\"unique\":true,\"caseInsensitive\":true},\"experimental\":true},\"focusgroupstart\":{\"type\":\"Boolean\",\"experimental\":true},\"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\",\"condition\":\"[itemscope][itemtype]\"},\"itemprop\":{\"type\":{\"token\":\"ItemProp\",\"ordered\":false,\"unique\":true,\"separator\":\"space\"}},\"itemref\":{\"type\":{\"token\":\"DOMID\",\"unique\":true,\"separator\":\"space\"},\"condition\":\"[itemscope]\"},\"itemscope\":{\"type\":\"Boolean\"},\"itemtype\":{\"type\":{\"token\":\"AbsoluteURL\",\"ordered\":false,\"unique\":true,\"allowEmpty\":false,\"separator\":\"space\"},\"condition\":\"[itemscope]\"},\"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},\"ontouchstart\":{\"type\":\"FunctionBody\"},\"ontouchend\":{\"type\":\"FunctionBody\"},\"ontouchmove\":{\"type\":\"FunctionBody\"},\"ontouchcancel\":{\"type\":\"FunctionBody\"}},\"#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\":\"SRIHash\"},\"media\":{\"type\":\"MediaQueryList\"},\"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\":\"NonEmptyURL\"},\"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\":\"NonEmptyURL\"},\"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>\"}},\"#MathMLGlobalAttrs\":{\"autofocus\":{\"type\":\"Boolean\"},\"class\":{\"type\":\"Any\"},\"data-*\":{\"type\":\"Any\"},\"dir\":{\"type\":{\"enum\":[\"ltr\",\"rtl\"]}},\"displaystyle\":{\"type\":{\"enum\":[\"true\",\"false\"]}},\"id\":{\"type\":\"DOMID\"},\"mathbackground\":{\"type\":\"<color>\",\"deprecated\":true},\"mathcolor\":{\"type\":\"<color>\",\"deprecated\":true},\"mathsize\":{\"type\":\"<length-percentage>\",\"deprecated\":true},\"nonce\":{\"type\":\"Any\"},\"scriptlevel\":{\"type\":\"Any\"},\"style\":{\"type\":\"<css-declaration-list>\"},\"tabindex\":{\"type\":\"TabIndex\"}},\"#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-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\"]},\"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\"]}}");
7713
+ // src/html-spec/index.ts
7118
7714
  /** The HTML element's spec row; `undefined` for SVG (`svg:*`), MathML below `<math>` (`mml:*`) and unknown names. */
7119
7715
  function htmlElement(tag) {
7120
7716
  const key = tag.toLowerCase();
@@ -7150,8 +7746,7 @@ function isDeprecatedAttr(tag, name) {
7150
7746
  const a = elementAttr(tag, name);
7151
7747
  return a?.deprecated === true || a?.obsolete === true;
7152
7748
  }
7153
- //#endregion
7154
- //#region src/rules/a11y/deprecated-element.ts
7749
+ // src/rules/a11y/deprecated-element.ts
7155
7750
  const a11yDeprecatedElement = componentRule({
7156
7751
  id: "a11y/deprecated-element",
7157
7752
  title: "Obsolete HTML element",
@@ -7166,8 +7761,7 @@ const a11yDeprecatedElement = componentRule({
7166
7761
  message: `<${e.tag}> is an obsolete element`
7167
7762
  }))
7168
7763
  });
7169
- //#endregion
7170
- //#region src/rules/a11y/deprecated-attr.ts
7764
+ // src/rules/a11y/deprecated-attr.ts
7171
7765
  const a11yDeprecatedAttr = componentRule({
7172
7766
  id: "a11y/deprecated-attr",
7173
7767
  title: "Deprecated HTML attribute",
@@ -7187,8 +7781,7 @@ const a11yDeprecatedAttr = componentRule({
7187
7781
  }];
7188
7782
  })
7189
7783
  });
7190
- //#endregion
7191
- //#region src/rules/a11y/role-candidates.ts
7784
+ // src/rules/a11y/role-candidates.ts
7192
7785
  const ELEMENT_FACT_OVERRIDES = {
7193
7786
  hgroup: { implicitRole: "group" },
7194
7787
  address: { implicitRole: "group" }
@@ -7226,8 +7819,7 @@ function roleCandidates(e) {
7226
7819
  function roleRow(role) {
7227
7820
  return role === false ? void 0 : HTML_SPEC.aria.roles[role];
7228
7821
  }
7229
- //#endregion
7230
- //#region src/rules/a11y/disallowed-aria-props.ts
7822
+ // src/rules/a11y/disallowed-aria-props.ts
7231
7823
  const NAMING = /* @__PURE__ */ new Set([
7232
7824
  "aria-label",
7233
7825
  "aria-labelledby",
@@ -7292,8 +7884,7 @@ const a11yDisallowedAriaProps = componentRule({
7292
7884
  });
7293
7885
  })
7294
7886
  });
7295
- //#endregion
7296
- //#region src/rules/a11y/deprecated-aria.ts
7887
+ // src/rules/a11y/deprecated-aria.ts
7297
7888
  const a11yDeprecatedAria = componentRule({
7298
7889
  id: "a11y/deprecated-aria",
7299
7890
  title: "Deprecated ARIA role or attribute",
@@ -7333,8 +7924,7 @@ const a11yDeprecatedAria = componentRule({
7333
7924
  return out;
7334
7925
  })
7335
7926
  });
7336
- //#endregion
7337
- //#region src/rules/a11y/element-declarations.ts
7927
+ // src/rules/a11y/element-declarations.ts
7338
7928
  /**
7339
7929
  * The declaration grammar the two config-driven element rules share: a bare tag name, lowercased at
7340
7930
  * read. Reserved at config load rather than left open — a `string-list` would otherwise accept
@@ -7350,8 +7940,7 @@ const ELEMENTS_OPTION = {
7350
7940
  describe: "a bare tag name (letters, digits and hyphens; no selector syntax)"
7351
7941
  }
7352
7942
  };
7353
- //#endregion
7354
- //#region src/rules/a11y/disallowed-element.ts
7943
+ // src/rules/a11y/disallowed-element.ts
7355
7944
  const declared = (o) => new Set(listOption(o, "elements").map((t) => t.toLowerCase()));
7356
7945
  const a11yDisallowedElement = componentRule({
7357
7946
  id: "a11y/disallowed-element",
@@ -7371,8 +7960,7 @@ const a11yDisallowedElement = componentRule({
7371
7960
  }));
7372
7961
  }
7373
7962
  });
7374
- //#endregion
7375
- //#region src/html-spec/content-model.ts
7963
+ // src/html-spec/content-model.ts
7376
7964
  /** Split a selector list on top-level commas (brackets and parens nest). */
7377
7965
  function splitTop(s) {
7378
7966
  const out = [];
@@ -7674,8 +8262,7 @@ function conditionApplies(ev, condition, holderIdx, holder, grandparentTag) {
7674
8262
  if (/^[a-z]+\[/.test(condition)) return ev.matchSelector(condition, holderIdx);
7675
8263
  return "unknown";
7676
8264
  }
7677
- //#endregion
7678
- //#region src/rules/a11y/permitted-contents.ts
8265
+ // src/rules/a11y/permitted-contents.ts
7679
8266
  const KNOWN_TAGS = new Set(Object.keys(HTML_SPEC.elements).map((k) => k.replace(/^svg:/, "").toLowerCase()));
7680
8267
  const FIX$1 = { 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>)." };
7681
8268
  /** The compiler deliberately allows rich content in <option>/<optgroup>; the dataset does not. Compiler wins. */
@@ -7728,8 +8315,7 @@ const a11yPermittedContents = componentRule({
7728
8315
  return out;
7729
8316
  }
7730
8317
  });
7731
- //#endregion
7732
- //#region src/rules/a11y/route-rule.ts
8318
+ // src/rules/a11y/route-rule.ts
7733
8319
  /**
7734
8320
  * Per-rule Result builder for the route-scoped a11y rules — the one place their shared
7735
8321
  * shape lives. `line` is emitted only when positive: PASS results deliberately carry no
@@ -7794,8 +8380,7 @@ function surplusRule(spec) {
7794
8380
  }
7795
8381
  };
7796
8382
  }
7797
- //#endregion
7798
- //#region src/rules/a11y/required-element.ts
8383
+ // src/rules/a11y/required-element.ts
7799
8384
  const ID = "a11y/required-element";
7800
8385
  const OPTIONS = { elements: ELEMENTS_OPTION };
7801
8386
  const result$3 = resultFactory(ID, "Add the element to the route — usually in the layout the route composes — or narrow the declaration with an `overrides` entry for the routes it does not apply to.", "warning");
@@ -7847,8 +8432,7 @@ const a11yRequiredElement = {
7847
8432
  return out;
7848
8433
  }
7849
8434
  };
7850
- //#endregion
7851
- //#region src/rules/a11y/doctype.ts
8435
+ // src/rules/a11y/doctype.ts
7852
8436
  const present = {
7853
8437
  presence: "own",
7854
8438
  value: "static"
@@ -7886,8 +8470,7 @@ const a11yDoctype = {
7886
8470
  }];
7887
8471
  }
7888
8472
  };
7889
- //#endregion
7890
- //#region src/rules/a11y/duplicate-landmark.ts
8473
+ // src/rules/a11y/duplicate-landmark.ts
7891
8474
  const KINDS$1 = [
7892
8475
  "main",
7893
8476
  "banner",
@@ -7911,8 +8494,7 @@ const a11yDuplicateLandmark = surplusRule({
7911
8494
  message: (kind, i, n) => `Duplicate ${kind} landmark (${i + 1} of ${n})`,
7912
8495
  passMessage: "No duplicate landmarks"
7913
8496
  });
7914
- //#endregion
7915
- //#region src/rules/a11y/top-level-landmark.ts
8497
+ // src/rules/a11y/top-level-landmark.ts
7916
8498
  const result$2 = resultFactory("a11y/top-level-landmark", "A banner, main, complementary, or contentinfo landmark should not be nested inside another landmark.", "warning");
7917
8499
  const KINDS = [
7918
8500
  "main",
@@ -7947,8 +8529,7 @@ const a11yTopLevelLandmark = {
7947
8529
  return out;
7948
8530
  }
7949
8531
  };
7950
- //#endregion
7951
- //#region src/rules/a11y/id-duplication.ts
8532
+ // src/rules/a11y/id-duplication.ts
7952
8533
  /**
7953
8534
  * a11y/id-duplication — a literal id repeated within a composed route. `ctx.a11y[].ids`
7954
8535
  * already holds the branch-aware-folded representatives per id, so this rule only counts them.
@@ -7963,8 +8544,7 @@ const a11yIdDuplication = surplusRule({
7963
8544
  recommendationFor: (rep, first) => first.file === "src/app.html" || first.line === 0 ? void 0 : rep.file === first.file && rep.line === first.line ? "This id is hardcoded in a component rendered more than once on this route. Generate it per instance with $props.id() (Svelte 5.20+): `const uid = $props.id();`, then `id=\"{uid}-name\"`." : "Rename one of them. Separate {#if} blocks are treated as able to render together; if these never render at the same time, make them branches of one {#if}…{:else}.",
7964
8545
  passMessage: "No duplicate ids"
7965
8546
  });
7966
- //#endregion
7967
- //#region src/rules/a11y/no-missing-id-ref.ts
8547
+ // src/rules/a11y/no-missing-id-ref.ts
7968
8548
  const result$1 = resultFactory("a11y/no-missing-id-ref", "An id reference should point to an id that exists somewhere in the composed route.", "warning");
7969
8549
  /**
7970
8550
  * a11y/no-missing-id-ref — an id-reference attribute (`IDREF_ATTRS`: HTML's `for`/`list`/`headers`/
@@ -8001,8 +8581,7 @@ const a11yNoMissingIdRef = {
8001
8581
  return out;
8002
8582
  }
8003
8583
  };
8004
- //#endregion
8005
- //#region src/rules/a11y/unverified-id-ref.ts
8584
+ // src/rules/a11y/unverified-id-ref.ts
8006
8585
  const result = resultFactory("a11y/unverified-id-ref", "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.", "info");
8007
8586
  const CAUSE_LABEL = {
8008
8587
  component: "unresolved component",
@@ -8056,8 +8635,7 @@ const a11yUnverifiedIdRef = {
8056
8635
  return out;
8057
8636
  }
8058
8637
  };
8059
- //#endregion
8060
- //#region src/rules/index.ts
8638
+ // src/rules/index.ts
8061
8639
  const allRules = [
8062
8640
  seoTitlePresence,
8063
8641
  seoDescriptionPresence,
@@ -8190,8 +8768,7 @@ function explainRule(id) {
8190
8768
  ...rule.options ? { options: optionInfos(rule.options) } : {}
8191
8769
  };
8192
8770
  }
8193
- //#endregion
8194
- //#region src/reporter/shared.ts
8771
+ // src/reporter/shared.ts
8195
8772
  /** Sort key: critical first. */
8196
8773
  const SEVERITY_RANK = {
8197
8774
  critical: 0,
@@ -8218,8 +8795,7 @@ const RULE_META = new Map(allRules.map((r) => [r.id, {
8218
8795
  function ruleMetaById(id) {
8219
8796
  return RULE_META.get(id);
8220
8797
  }
8221
- //#endregion
8222
- //#region src/reporter/github.ts
8798
+ // src/reporter/github.ts
8223
8799
  /** Escape workflow-command message data (the text after `::`). */
8224
8800
  function escapeData(s) {
8225
8801
  return s.replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A");
@@ -8246,8 +8822,7 @@ function formatGithubReport(results, config) {
8246
8822
  return `::${level} ${props.join(",")}::${escapeData(messageText(r))}`;
8247
8823
  }).join("\n");
8248
8824
  }
8249
- //#endregion
8250
- //#region src/scoring/inventory.ts
8825
+ // src/scoring/inventory.ts
8251
8826
  const DEDUCTION = {
8252
8827
  critical: 15,
8253
8828
  warning: 5,
@@ -8279,8 +8854,7 @@ function buildInventory(config, rules = selectRules(allRules, config)) {
8279
8854
  function ruleScopes(rules) {
8280
8855
  return new Map(rules.map((r) => [r.id, pairKey(r.category, r.scope)]));
8281
8856
  }
8282
- //#endregion
8283
- //#region src/scoring/score.ts
8857
+ // src/scoring/score.ts
8284
8858
  const CRITICAL_CAP = 79;
8285
8859
  function clamp(n) {
8286
8860
  return Math.max(0, Math.min(100, n));
@@ -8401,8 +8975,7 @@ function computeHealth(results, config) {
8401
8975
  weights
8402
8976
  };
8403
8977
  }
8404
- //#endregion
8405
- //#region src/reporter/json.ts
8978
+ // src/reporter/json.ts
8406
8979
  function issueOf(result) {
8407
8980
  return {
8408
8981
  id: result.id,
@@ -8481,11 +9054,31 @@ function buildJsonReport(results, config, meta, ruleIds, examined, skipped) {
8481
9054
  };
8482
9055
  }
8483
9056
  /** Render results as the documented JSON report string (design §7). */
8484
- function formatJsonReport(results, config, meta, ruleIds, examined, skipped) {
8485
- return JSON.stringify(buildJsonReport(results, config, meta, ruleIds, examined, skipped), null, 2);
9057
+ function formatJsonReport(...args) {
9058
+ return [...formatJsonReportChunks(...args)].join("");
9059
+ }
9060
+ /**
9061
+ * `formatJsonReport`'s text in pieces, one route at a time: a large prerendered site's report is
9062
+ * longer than the longest string V8 can hold.
9063
+ */
9064
+ function* formatJsonReportChunks(results, config, meta, ruleIds, examined, skipped) {
9065
+ const report = buildJsonReport(results, config, meta, ruleIds, examined, skipped);
9066
+ const marker = JSON.stringify("\0routes");
9067
+ const text = JSON.stringify({
9068
+ ...report,
9069
+ routes: "\0routes"
9070
+ }, null, 2);
9071
+ const at = text.indexOf(marker);
9072
+ yield text.slice(0, at);
9073
+ if (report.routes.length === 0) yield "[]";
9074
+ else {
9075
+ yield "[\n";
9076
+ for (const [i, route] of report.routes.entries()) yield `${i > 0 ? ",\n" : ""} ${JSON.stringify(route, null, 2).replaceAll("\n", "\n ")}`;
9077
+ yield "\n ]";
9078
+ }
9079
+ yield text.slice(at + marker.length);
8486
9080
  }
8487
- //#endregion
8488
- //#region src/reporter/sanitize.ts
9081
+ // src/reporter/sanitize.ts
8489
9082
  /**
8490
9083
  * Escapers for strings that originate from the analyzed project (file paths, route ids,
8491
9084
  * rule messages that quote page content such as `<title>` or JSON-LD values) rather than
@@ -8533,8 +9126,7 @@ function mdEscape(text) {
8533
9126
  function terminalSafe(text) {
8534
9127
  return text.replace(/(?:\x1b\]|\x9d)[^\x07\x9c\x1b]*(?:\x07|\x9c|\x1b\\)?/g, "").replace(/(?:\x1b\[|\x9b)[0-?]*[ -/]*[@-~]/g, "").replace(/[\x00-\x08\x0b-\x1f\x7f-\x9f]/g, "");
8535
9128
  }
8536
- //#endregion
8537
- //#region src/reporter/markdown.ts
9129
+ // src/reporter/markdown.ts
8538
9130
  /** Cap on rendered finding rows — keeps PR comments/job summaries within GitHub's size limits. */
8539
9131
  const MAX_FINDINGS = 50;
8540
9132
  const SEVERITY_EMOJI = {
@@ -8627,5 +9219,4 @@ function formatMarkdownReport(results, config, meta) {
8627
9219
  }
8628
9220
  return lines.join("\n");
8629
9221
  }
8630
- //#endregion
8631
- export { performanceMinifyDisabled as $, applyRuleSeverities as $n, correctnessOrphanLifecycle as $t, a11yAbbrTitle as A, seoImageAlt as An, defaultProject as Ar, walkEstree as At, a11yUseList as B, seoSitemapInRobots as Bn, parseSvelte as Bt, a11yDisallowedElement as C, foldOccurrences as Cn, effectiveSeverity as Cr, collectSvelteLifecycleImports as Ct, a11yDeprecatedElement as D, stripTextDirective as Dn, isPenalized as Dr, scopeIntroducedNames as Dt, a11yDeprecatedAttr as E, splitTokens as En, docsUrlFor as Er, rootObjectName as Et, isInteractiveContainer as F, seoJsonLdPlaceholder as Fn, attrTextOf as Ft, a11yInvalidAriaValue as G, seoIndexability as Gn, securitySharedStateImport as Gt, a11yAccessibleName as H, seoOgUrl as Hn, valueFromNodes as Ht, isInteractiveElement as I, seoJsonLdDateFormat as In, attrValue as It, a11yInvalidRole as J, resolveRuleOptions as Jn, securityJavascriptUrl as Jt, a11yRequiredAriaProps as K, performancePreconnect as Kn, securityServerModuleState as Kt, literalTabindexValue as L, seoJsonLdRelativeUrl as Ln, attrValueOf as Lt, a11yNoAutofocus as M, seoDescriptionLength as Mn, walkScoped as Mt, a11yNoAccesskey as N, seoTitleLength as Nn, CHILD_NODE_KEYS as Nt, HTML_SPEC as O, resolveRole as On, CATEGORIES as Or, unwrapExport as Ot, a11yPositiveTabindex as P, seoJsonLdRequiredProps as Pn, attrText as Pt, performanceLoadWaterfall as Q, applyOverrides as Qn, correctnessBasePathNavigation as Qt, a11yRequireDatetime as R, seoJsonLdDeprecatedType as Rn, findAttr as Rt, a11yPermittedContents as S, decodeFragmentId as Sn, classify as Sr, collectSuppressions as St, a11yDisallowedAriaProps as T, resolveLandmark as Tn, summarize as Tr, parseModuleProgram as Tt, a11yAriaHiddenFocus as U, seoOgDescription as Un, architecturePropCount as Ut, a11yLabelHasControl as V, seoViewport as Vn, textFromNodes as Vt, a11yInteractiveNesting as W, seoTwitterCard as Wn, architectureComponentSize as Wt, performanceStateRaw as X, validateRuleSetting as Xn, correctnessInstanceBrowserGlobal as Xt, performanceIframeLoading as Y, shouldSkipRangeCheck as Yn, securityRawHtml as Yt, performanceSequentialAwaits as Z, SEARCH_RESULT_RULES as Zn, correctnessServerBrowserGlobal as Zt, a11yIdDuplication as _, ANCESTRY_DEPENDENT_TAGS as _n, seoOgTitle as _r, collectBrowserGlobalRefs as _t, formatJsonReport as a, correctnessPropMutation as an, withIndexableOff as ar, architectureReservedDirectoryNames as at, a11yDoctype as b, NAMING_ATTRS$1 as bn, seoDescriptionPresence as br, collectNamedImportAliases as bt, formatGithubReport as c, correctnessEffectAsDerived as cn, performanceFontPreloadCrossorigin as cr, architecturePrivateScopeImport as ct, ruleMetaById as d, seoSsrDisabled as dn, performanceImageLoadingHint as dr, parseInMemoryExports as dt, correctnessOrphanEffect as en, compileOverrides as er, performanceNamespaceImport as et, severityToSarifLevel as f, routeNeverSsr as fn, performanceImageDimensions as fr, parseKitModuleFacts as ft, a11yNoMissingIdRef as g, seoSingleH1 as gn, seoJsonLd as gr, addBoundNames as gt, a11yUnverifiedIdRef as h, seoDuplicateTitle as hn, seoRobotsTxt as hr, WALK_IGNORED_KEYS as ht, buildJsonReport as i, correctnessStalePropDerivation as in, withFailedRulesOff as ir, architectureReservedNamePlacement as it, a11yNoDuplicateDt as j, seoCharset as jn, defineConfig as jr, walkEvalScope as jt, a11yPatternTitle as k, seoHreflang as kn, defaultConfig as kr, unwrapTs as kt, SEVERITY_RANK as l, correctnessEachIndexKey as ln, performancePreloadMissingAs as lr, DEFAULT_KIT_ALIASES as lt, explainRule as m, seoDuplicateDescription as mn, seoSitemapXml as mr, isRootRelativePath as mt, mdEscape as n, correctnessCheckableBindValue as nn, selectRules as nr, architectureDocLinkTarget as nt, computeHealth as o, correctnessUnmutatedState as on, performanceRenderBlockingScript as or, architectureDirectoryNaming as ot, allRules as p, seoHeadingLevelSkip as pn, seoHtmlLang as pr, resolveRepoLocalPath as pt, a11yUnknownAriaAttribute as q, isPlainObject as qn, securityHandlerStateWrite as qt, terminalSafe as r, correctnessNonreactiveBuiltinState as rn, settingSeverity as rr, architectureRouteComponentImport as rt, computeScore as s, correctnessEffectAsOnMount as sn, performanceLcpImage as sr, architectureUnitEntryFile as st, formatMarkdownReport as t, correctnessAutoplayMuted as tn, formatFailedRuleWarning as tr, performanceHeavyImport as tt, messageText as u, correctnessEachKey as un, performanceResponsiveImage as ur, collectTopLevelBindings as ut, a11yTopLevelLandmark as v, ASIDE_DEMOTING_TAGS as vn, seoOgImage as vr, collectBrowserGuardImports as vt, a11yDeprecatedAria as w, isTopFragment as wn, hasFailureAtOrAbove as wr, matchLifecycleCall as wt, a11yRequiredElement as x, SECTIONING_TAGS as xn, seoTitlePresence as xr, collectProgramBindings as xt, a11yDuplicateLandmark as y, IDREF_ATTRS as yn, seoCanonicalUrl as yr, collectDerivedGuardBindings as yt, a11yPlaceholderLabelOption as z, seoJsonLdValidity as zn, lineOf as zt };
9222
+ export { performanceLoadWaterfall as $, shouldSkipRangeCheck as $n, securityJavascriptUrl as $t, a11yPatternTitle as A, splitTokens as An, seoTitlePresence as Ar, parseModuleProgram as At, a11yPlaceholderLabelOption as B, seoJsonLdDateFormat as Bn, defineConfig as Br, attrTextOf as Bt, a11yPermittedContents as C, IDREF_ATTRS as Cn, seoCanonicalUrl as Cr, collectBrowserGuardImports as Ct, a11yDeprecatedAttr as D, foldOccurrences as Dn, layoutNeverRenders as Dr, collectSuppressions as Dt, a11yDisallowedAriaProps as E, decodeFragmentId as En, seoDescriptionPresence as Er, collectProgramBindings as Et, a11yPositiveTabindex as F, seoCharset as Fn, docsUrlFor as Fr, walkEstree as Ft, a11yInteractiveNesting as G, seoViewport as Gn, parseSvelte as Gt, a11yLabelHasControl as H, seoJsonLdDeprecatedType as Hn, attrValueOf as Ht, isInteractiveContainer as I, seoDescriptionLength as In, isPenalized as Ir, walkEvalScope as It, a11yUnknownAriaAttribute as J, seoTwitterCard as Jn, architecturePropCount as Jt, a11yInvalidAriaValue as K, seoOgUrl as Kn, textFromNodes as Kt, isInteractiveElement as L, seoTitleLength as Ln, CATEGORIES as Lr, walkScoped as Lt, a11yNoDuplicateDt as M, resolveRole as Mn, effectiveSeverity as Mr, scopeIntroducedNames as Mt, a11yNoAutofocus as N, seoHreflang as Nn, hasFailureAtOrAbove as Nr, unwrapExport as Nt, a11yDeprecatedElement as O, isTopFragment as On, pageRendersOnlyWhenBuilding as Or, collectSvelteLifecycleImports as Ot, a11yNoAccesskey as P, seoImageAlt as Pn, summarize as Pr, unwrapTs as Pt, performanceSequentialAwaits as Q, resolveRuleOptions as Qn, securityHandlerStateWrite as Qt, literalTabindexValue as R, seoJsonLdRequiredProps as Rn, defaultConfig as Rr, CHILD_NODE_KEYS as Rt, a11yRequiredElement as S, ASIDE_DEMOTING_TAGS as Sn, seoOgImage as Sr, collectBrowserGlobalRefs as St, a11yDeprecatedAria as T, SECTIONING_TAGS as Tn, isClassicScriptType as Tr, collectNamedImportAliases as Tt, a11yAccessibleName as U, seoJsonLdValidity as Un, findAttr as Ut, a11yUseList as V, seoJsonLdRelativeUrl as Vn, attrValue as Vt, a11yAriaHiddenFocus as W, seoSitemapInRobots as Wn, lineOf as Wt, performanceIframeLoading as X, performancePreconnect as Xn, securitySharedStateImport as Xt, a11yInvalidRole as Y, seoIndexability as Yn, architectureComponentSize as Yt, performanceStateRaw as Z, isPlainObject as Zn, securityServerModuleState as Zt, a11yNoMissingIdRef as _, seoHeadingLevelSkip as _n, seoHtmlLang as _r, parseKitModuleFacts as _t, formatJsonReport as a, correctnessOrphanEffect as an, formatFailedRuleWarning as ar, architectureReservedNamePlacement as at, a11yDuplicateLandmark as b, seoSingleH1 as bn, seoJsonLd as br, WALK_IGNORED_KEYS as bt, computeScore as c, correctnessNonreactiveBuiltinState as cn, withFailedRulesOff as cr, architectureUnitEntryFile as ct, messageText as d, correctnessUnmutatedState as dn, performanceLcpImage as dr, collectFalseExports as dt, securityRawHtml as en, validateRuleSetting as er, performanceMinifyDisabled as et, ruleMetaById as f, correctnessEffectAsOnMount as fn, performanceFontPreloadCrossorigin as fr, collectTopLevelBindings as ft, a11yUnverifiedIdRef as g, seoSsrDisabled as gn, performanceImageDimensions as gr, parseInMemoryExports as gt, explainRule as h, correctnessEachKey as hn, performanceImageLoadingHint as hr, parseFalseExports as ht, buildJsonReport as i, correctnessOrphanLifecycle as in, compileOverrides as ir, architectureRouteComponentImport as it, a11yAbbrTitle as j, stripTextDirective as jn, classify as jr, rootObjectName as jt, HTML_SPEC as k, resolveLandmark as kn, routeNeverSsr as kr, matchLifecycleCall as kt, formatGithubReport as l, correctnessStalePropDerivation as ln, withIndexableOff as lr, architecturePrivateScopeImport as lt, allRules as m, correctnessEachIndexKey as mn, performanceResponsiveImage as mr, parseExitFactoryExports as mt, mdEscape as n, correctnessServerBrowserGlobal as nn, applyOverrides as nr, performanceHeavyImport as nt, formatJsonReportChunks as o, correctnessAutoplayMuted as on, selectRules as or, architectureReservedDirectoryNames as ot, severityToSarifLevel as p, correctnessEffectAsDerived as pn, performancePreloadMissingAs as pr, parseClientExports as pt, a11yRequiredAriaProps as q, seoOgDescription as qn, valueFromNodes as qt, terminalSafe as r, correctnessBasePathNavigation as rn, applyRuleSeverities as rr, architectureDocLinkTarget as rt, computeHealth as s, correctnessCheckableBindValue as sn, settingSeverity as sr, architectureDirectoryNaming as st, formatMarkdownReport as t, correctnessInstanceBrowserGlobal as tn, SEARCH_RESULT_RULES as tr, performanceNamespaceImport as tt, SEVERITY_RANK as u, correctnessPropMutation as un, performanceRenderBlockingScript as ur, DEFAULT_KIT_ALIASES as ut, a11yIdDuplication as v, seoDuplicateDescription as vn, seoSitemapXml as vr, resolveRepoLocalPath as vt, a11yDisallowedElement as w, NAMING_ATTRS$1 as wn, hasRel as wr, collectDerivedGuardBindings as wt, a11yDoctype as x, ANCESTRY_DEPENDENT_TAGS as xn, seoOgTitle as xr, addBoundNames as xt, a11yTopLevelLandmark as y, seoDuplicateTitle as yn, seoRobotsTxt as yr, isRootRelativePath as yt, a11yRequireDatetime as z, seoJsonLdPlaceholder as zn, defaultProject as zr, attrText as zt };