@markuplint/html-spec 3.0.0-alpha.66 → 3.0.0-dev.24

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.
Files changed (158) hide show
  1. package/README.md +8 -3
  2. package/index.json +817 -667
  3. package/package.json +8 -8
  4. package/src/spec-common.attributes.json +2 -2
  5. package/src/spec-common.contents.json +80 -1
  6. package/src/spec.a.json +2 -3
  7. package/src/spec.abbr.json +1 -1
  8. package/src/spec.address.json +1 -2
  9. package/src/spec.article.json +1 -1
  10. package/src/spec.aside.json +1 -1
  11. package/src/spec.audio.json +2 -4
  12. package/src/spec.b.json +1 -1
  13. package/src/spec.bdi.json +1 -1
  14. package/src/spec.bdo.json +1 -1
  15. package/src/spec.blockquote.json +1 -1
  16. package/src/spec.body.json +1 -1
  17. package/src/spec.br.json +1 -1
  18. package/src/spec.button.json +1 -2
  19. package/src/spec.canvas.json +1 -2
  20. package/src/spec.caption.json +1 -1
  21. package/src/spec.cite.json +1 -1
  22. package/src/spec.code.json +1 -1
  23. package/src/spec.data.json +1 -1
  24. package/src/spec.datalist.json +2 -2
  25. package/src/spec.dd.json +1 -1
  26. package/src/spec.del.json +1 -1
  27. package/src/spec.details.json +1 -1
  28. package/src/spec.dfn.json +1 -2
  29. package/src/spec.dialog.json +1 -1
  30. package/src/spec.div.json +4 -4
  31. package/src/spec.dl.json +10 -4
  32. package/src/spec.dt.json +1 -2
  33. package/src/spec.em.json +1 -1
  34. package/src/spec.fieldset.json +1 -1
  35. package/src/spec.figcaption.json +1 -1
  36. package/src/spec.figure.json +14 -3
  37. package/src/spec.footer.json +1 -2
  38. package/src/spec.form.json +1 -2
  39. package/src/spec.h1.json +1 -1
  40. package/src/spec.h2.json +1 -1
  41. package/src/spec.h3.json +1 -1
  42. package/src/spec.h4.json +1 -1
  43. package/src/spec.h5.json +1 -1
  44. package/src/spec.h6.json +1 -1
  45. package/src/spec.head.json +2 -4
  46. package/src/spec.header.json +1 -2
  47. package/src/spec.hgroup.json +19 -11
  48. package/src/spec.i.json +1 -1
  49. package/src/spec.iframe.json +1 -5
  50. package/src/spec.input.json +10 -10
  51. package/src/spec.ins.json +1 -1
  52. package/src/spec.kbd.json +1 -1
  53. package/src/spec.label.json +1 -2
  54. package/src/spec.legend.json +1 -1
  55. package/src/spec.li.json +1 -1
  56. package/src/spec.main.json +1 -1
  57. package/src/spec.map.json +1 -1
  58. package/src/spec.mark.json +1 -1
  59. package/src/spec.menu.json +1 -1
  60. package/src/spec.meter.json +2 -3
  61. package/src/spec.nav.json +1 -1
  62. package/src/spec.noscript.json +1 -1
  63. package/src/spec.object.json +1 -1
  64. package/src/spec.ol.json +1 -1
  65. package/src/spec.option.json +1 -1
  66. package/src/spec.output.json +1 -1
  67. package/src/spec.p.json +1 -1
  68. package/src/spec.picture.json +3 -3
  69. package/src/spec.portal.json +1 -1
  70. package/src/spec.pre.json +1 -1
  71. package/src/spec.progress.json +2 -3
  72. package/src/spec.q.json +1 -2
  73. package/src/spec.rp.json +1 -2
  74. package/src/spec.rt.json +1 -1
  75. package/src/spec.ruby.json +1 -2
  76. package/src/spec.s.json +1 -1
  77. package/src/spec.samp.json +1 -1
  78. package/src/spec.script.json +1 -1
  79. package/src/spec.section.json +1 -1
  80. package/src/spec.select.json +2 -2
  81. package/src/spec.slot.json +1 -1
  82. package/src/spec.small.json +1 -1
  83. package/src/spec.span.json +1 -1
  84. package/src/spec.strong.json +1 -1
  85. package/src/spec.sub.json +1 -1
  86. package/src/spec.summary.json +2 -2
  87. package/src/spec.sup.json +1 -1
  88. package/src/spec.svg_a.json +3 -4
  89. package/src/spec.svg_animate.json +1 -1
  90. package/src/spec.svg_animateMotion.json +3 -3
  91. package/src/spec.svg_animateTransform.json +1 -1
  92. package/src/spec.svg_circle.json +3 -3
  93. package/src/spec.svg_clipPath.json +8 -1
  94. package/src/spec.svg_defs.json +5 -5
  95. package/src/spec.svg_desc.json +1 -1
  96. package/src/spec.svg_discard.json +1 -1
  97. package/src/spec.svg_ellipse.json +3 -3
  98. package/src/spec.svg_feBlend.json +1 -1
  99. package/src/spec.svg_feColorMatrix.json +1 -1
  100. package/src/spec.svg_feComponentTransfer.json +1 -1
  101. package/src/spec.svg_feComposite.json +1 -1
  102. package/src/spec.svg_feConvolveMatrix.json +1 -1
  103. package/src/spec.svg_feDiffuseLighting.json +5 -5
  104. package/src/spec.svg_feDisplacementMap.json +1 -1
  105. package/src/spec.svg_feDistantLight.json +1 -1
  106. package/src/spec.svg_feDropShadow.json +1 -1
  107. package/src/spec.svg_feFlood.json +1 -1
  108. package/src/spec.svg_feFuncA.json +1 -1
  109. package/src/spec.svg_feFuncB.json +1 -1
  110. package/src/spec.svg_feFuncG.json +1 -1
  111. package/src/spec.svg_feFuncR.json +1 -1
  112. package/src/spec.svg_feGaussianBlur.json +1 -1
  113. package/src/spec.svg_feImage.json +1 -1
  114. package/src/spec.svg_feMerge.json +1 -1
  115. package/src/spec.svg_feMergeNode.json +1 -1
  116. package/src/spec.svg_feMorphology.json +1 -1
  117. package/src/spec.svg_feOffset.json +1 -1
  118. package/src/spec.svg_fePointLight.json +1 -1
  119. package/src/spec.svg_feSpecularLighting.json +5 -5
  120. package/src/spec.svg_feSpotLight.json +1 -1
  121. package/src/spec.svg_feTile.json +1 -1
  122. package/src/spec.svg_feTurbulence.json +3 -2
  123. package/src/spec.svg_filter.json +1 -1
  124. package/src/spec.svg_g.json +5 -5
  125. package/src/spec.svg_image.json +2 -2
  126. package/src/spec.svg_line.json +3 -3
  127. package/src/spec.svg_linearGradient.json +1 -1
  128. package/src/spec.svg_marker.json +5 -5
  129. package/src/spec.svg_mask.json +5 -5
  130. package/src/spec.svg_metadata.json +1 -1
  131. package/src/spec.svg_mpath.json +1 -1
  132. package/src/spec.svg_path.json +3 -3
  133. package/src/spec.svg_pattern.json +5 -5
  134. package/src/spec.svg_polygon.json +3 -3
  135. package/src/spec.svg_polyline.json +3 -3
  136. package/src/spec.svg_radialGradient.json +1 -1
  137. package/src/spec.svg_rect.json +3 -3
  138. package/src/spec.svg_script.json +1 -1
  139. package/src/spec.svg_set.json +1 -1
  140. package/src/spec.svg_svg.json +5 -5
  141. package/src/spec.svg_switch.json +2 -2
  142. package/src/spec.svg_symbol.json +5 -5
  143. package/src/spec.svg_text.json +4 -4
  144. package/src/spec.svg_textPath.json +2 -2
  145. package/src/spec.svg_title.json +1 -1
  146. package/src/spec.svg_tspan.json +2 -2
  147. package/src/spec.svg_use.json +2 -2
  148. package/src/spec.svg_view.json +1 -1
  149. package/src/spec.table.json +6 -6
  150. package/src/spec.td.json +4 -4
  151. package/src/spec.template.json +1 -5
  152. package/src/spec.th.json +7 -8
  153. package/src/spec.time.json +1 -1
  154. package/src/spec.tr.json +1 -1
  155. package/src/spec.u.json +1 -1
  156. package/src/spec.ul.json +1 -1
  157. package/src/spec.var.json +1 -1
  158. package/src/spec.video.json +2 -4
@@ -5,11 +5,11 @@
5
5
  "contents": [
6
6
  {
7
7
  "zeroOrMore": [
8
- "#SVGAnimation",
9
- "#SVGDescriptive",
10
- "#SVGPaintServer",
11
- "#SVGShape",
12
- "#SVGStructural",
8
+ ":model(SVGAnimation)",
9
+ ":model(SVGDescriptive)",
10
+ ":model(SVGPaintServer)",
11
+ ":model(SVGShape)",
12
+ ":model(SVGStructural)",
13
13
  "svg|a",
14
14
  "svg|clipPath",
15
15
  "svg|filter",
@@ -6,10 +6,10 @@
6
6
  {
7
7
  "zeroOrMore": [
8
8
  "#text",
9
- "#SVGAnimation",
10
- "#SVGDescriptive",
11
- "#SVGPaintServer",
12
- "#SVGTextContentChild",
9
+ ":model(SVGAnimation)",
10
+ ":model(SVGDescriptive)",
11
+ ":model(SVGPaintServer)",
12
+ ":model(SVGTextContentChild)",
13
13
  "svg|a",
14
14
  "svg|clipPath",
15
15
  "svg|marker",
@@ -6,8 +6,8 @@
6
6
  {
7
7
  "zeroOrMore": [
8
8
  "#text",
9
- "#SVGDescriptive",
10
- "#SVGPaintServer",
9
+ ":model(SVGDescriptive)",
10
+ ":model(SVGPaintServer)",
11
11
  "svg|a",
12
12
  "svg|animate",
13
13
  "svg|clipPath",
@@ -4,7 +4,7 @@
4
4
  "contentModel": {
5
5
  "contents": [
6
6
  {
7
- "zeroOrMore": ["#SVGOtherXMLNamespace", "#text"]
7
+ "zeroOrMore": [":model(SVGDescriptive)", ":model(SVGNeverRendered)", "#text"]
8
8
  }
9
9
  ]
10
10
  },
@@ -5,8 +5,8 @@
5
5
  "contents": [
6
6
  {
7
7
  "zeroOrMore": [
8
- "#SVGDescriptive",
9
- "#SVGPaintServer",
8
+ ":model(SVGDescriptive)",
9
+ ":model(SVGPaintServer)",
10
10
  "svg|a",
11
11
  "svg|animate",
12
12
  "svg|script",
@@ -5,8 +5,8 @@
5
5
  "contents": [
6
6
  {
7
7
  "zeroOrMore": [
8
- "#SVGAnimation",
9
- "#SVGDescriptive",
8
+ ":model(SVGAnimation)",
9
+ ":model(SVGDescriptive)",
10
10
  "svg|clipPath",
11
11
  "svg|mask",
12
12
  "svg|script",
@@ -4,7 +4,7 @@
4
4
  "contentModel": {
5
5
  "contents": [
6
6
  {
7
- "zeroOrMore": ["#SVGAnimation", "#SVGDescriptive", "svg|script", "svg|style"]
7
+ "zeroOrMore": [":model(SVGAnimation)", ":model(SVGDescriptive)", "svg|script", "svg|style"]
8
8
  }
9
9
  ]
10
10
  },
@@ -5,25 +5,25 @@
5
5
  "contentModel": {
6
6
  "contents": [
7
7
  {
8
- "zeroOrMore": "#script-supporting"
8
+ "zeroOrMore": ":model(script-supporting)"
9
9
  },
10
10
  {
11
11
  "optional": "caption"
12
12
  },
13
13
  {
14
- "zeroOrMore": "#script-supporting"
14
+ "zeroOrMore": ":model(script-supporting)"
15
15
  },
16
16
  {
17
17
  "zeroOrMore": "colgroup"
18
18
  },
19
19
  {
20
- "zeroOrMore": "#script-supporting"
20
+ "zeroOrMore": ":model(script-supporting)"
21
21
  },
22
22
  {
23
23
  "optional": "thead"
24
24
  },
25
25
  {
26
- "zeroOrMore": "#script-supporting"
26
+ "zeroOrMore": ":model(script-supporting)"
27
27
  },
28
28
  {
29
29
  "choice": [
@@ -40,13 +40,13 @@
40
40
  ]
41
41
  },
42
42
  {
43
- "zeroOrMore": "#script-supporting"
43
+ "zeroOrMore": ":model(script-supporting)"
44
44
  },
45
45
  {
46
46
  "optional": "tfoot"
47
47
  },
48
48
  {
49
- "zeroOrMore": "#script-supporting"
49
+ "zeroOrMore": ":model(script-supporting)"
50
50
  }
51
51
  ]
52
52
  },
package/src/spec.td.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "contentModel": {
6
6
  "contents": [
7
7
  {
8
- "zeroOrMore": "#flow"
8
+ "oneOrMore": ":model(flow)"
9
9
  }
10
10
  ]
11
11
  },
@@ -22,13 +22,13 @@
22
22
  "implicitRole": false,
23
23
  "permittedRoles": true,
24
24
  "conditions": {
25
- "table:is(:not([role]), [role=table]) > :is(thead, tfoot, tbody) > tr > td": {
25
+ "table:is(:not([role]), [role=table]) > :is(thead, tfoot, tbody) > tr > td, table:is(:not([role]), [role=table]) > tr > td": {
26
26
  "implicitRole": "cell"
27
27
  },
28
- "table:is([role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > td": {
28
+ "table:is([role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > td, table:is([role=grid], [role=treegrid]) > tr > td": {
29
29
  "implicitRole": "gridcell"
30
30
  },
31
- "table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > td": {
31
+ "table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > td, table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > tr > td": {
32
32
  // No role if the ancestor table element has role=table, grid, or treegrid; otherwise any role.
33
33
  "permittedRoles": false
34
34
  }
@@ -3,11 +3,7 @@
3
3
  // https://w3c.github.io/html-aria/#el-template
4
4
  {
5
5
  "contentModel": {
6
- "contents": [
7
- {
8
- "zeroOrMore": "#transparent"
9
- }
10
- ]
6
+ "contents": true
11
7
  },
12
8
  "globalAttrs": {
13
9
  "#HTMLGlobalAttrs": true,
package/src/spec.th.json CHANGED
@@ -5,8 +5,7 @@
5
5
  "contentModel": {
6
6
  "contents": [
7
7
  {
8
- "zeroOrMore": "#flow",
9
- "notAllowedDescendants": ["header", "footer", "#sectioning", "#heading"]
8
+ "oneOrMore": ":model(flow):not(header, footer, :model(sectioning), :model(heading), :has(header, footer, :model(sectioning), :model(heading)))"
10
9
  }
11
10
  ]
12
11
  },
@@ -39,27 +38,27 @@
39
38
  // role=columnheader, rowheader or cell if the ancestor table element is exposed as a role=table.
40
39
  // role=columnheader, rowheader or gridcell if the ancestor table element is exposed as a role=grid or treegrid.
41
40
  "conditions": {
42
- "table:is(:not([role]), [role=table]) > :is(thead, tfoot, tbody) > tr > th": {
41
+ "table:is(:not([role]), [role=table]) > :is(thead, tfoot, tbody) > tr > th, table:is(:not([role]), [role=table]) > tr > th": {
43
42
  "implicitRole": "cell"
44
43
  },
45
- "table:is([role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > th": {
44
+ "table:is([role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > th, table:is([role=grid], [role=treegrid]) > tr > th": {
46
45
  "implicitRole": "gridcell"
47
46
  },
48
47
  "table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > thead > tr > th:not([scope])": {
49
48
  "implicitRole": "columnheader"
50
49
  },
51
- "table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > :is(tfoot, tbody) > tr > th:not([scope])": {
50
+ "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])": {
52
51
  "implicitRole": "rowheader"
53
52
  },
54
53
  // https://www.w3.org/TR/wai-aria-1.1/#columnheader Base Concept: HTML th[scope="col"]
55
- "table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > th[scope=col]": {
54
+ "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]": {
56
55
  "implicitRole": "columnheader"
57
56
  },
58
57
  // https://www.w3.org/TR/wai-aria-1.1/#rowheader Base Concept: HTML th[scope="row"]
59
- "table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > th[scope=row]": {
58
+ "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]": {
60
59
  "implicitRole": "rowheader"
61
60
  },
62
- "table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > th": {
61
+ "table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > :is(thead, tfoot, tbody) > tr > th, table:is(:not([role]), [role=table], [role=grid], [role=treegrid]) > tr > th": {
63
62
  "permittedRoles": false
64
63
  }
65
64
  }
@@ -5,7 +5,7 @@
5
5
  "contentModel": {
6
6
  "contents": [
7
7
  {
8
- "zeroOrMore": "#phrasing"
8
+ "oneOrMore": ":model(phrasing)"
9
9
  }
10
10
  ]
11
11
  },
package/src/spec.tr.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "contentModel": {
6
6
  "contents": [
7
7
  {
8
- "zeroOrMore": ["th", "td", "#script-supporting"]
8
+ "zeroOrMore": ["th", "td", ":model(script-supporting)"]
9
9
  }
10
10
  ]
11
11
  },
package/src/spec.u.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "contentModel": {
6
6
  "contents": [
7
7
  {
8
- "zeroOrMore": "#phrasing"
8
+ "oneOrMore": ":model(phrasing)"
9
9
  }
10
10
  ]
11
11
  },
package/src/spec.ul.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "contentModel": {
6
6
  "contents": [
7
7
  {
8
- "zeroOrMore": ["li", "#script-supporting"]
8
+ "zeroOrMore": ["li", ":model(script-supporting)"]
9
9
  }
10
10
  ]
11
11
  },
package/src/spec.var.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "contentModel": {
6
6
  "contents": [
7
7
  {
8
- "zeroOrMore": "#phrasing"
8
+ "oneOrMore": ":model(phrasing)"
9
9
  }
10
10
  ]
11
11
  },
@@ -11,8 +11,7 @@
11
11
  "zeroOrMore": "track"
12
12
  },
13
13
  {
14
- "zeroOrMore": "#transparent",
15
- "notAllowedDescendants": ["audio", "video"]
14
+ "transparent": ":not(audio, video, :has(audio, video))"
16
15
  }
17
16
  ],
18
17
  "conditional": [
@@ -23,8 +22,7 @@
23
22
  "zeroOrMore": "track"
24
23
  },
25
24
  {
26
- "zeroOrMore": "#transparent",
27
- "notAllowedDescendants": ["audio", "video"]
25
+ "transparent": ":not(audio, video, :has(audio, video))"
28
26
  }
29
27
  ]
30
28
  }