html-validate 8.2.0 → 8.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cli.js +1 -1
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/core-browser.js.map +1 -1
- package/dist/cjs/core-nodejs.js.map +1 -1
- package/dist/cjs/core.js +74 -57
- package/dist/cjs/core.js.map +1 -1
- package/dist/cjs/elements.js +269 -2
- package/dist/cjs/elements.js.map +1 -1
- package/dist/cjs/html-validate.js.map +1 -1
- package/dist/cjs/html5.js.map +1 -1
- package/dist/cjs/jest-lib.js.map +1 -1
- package/dist/cjs/jest.js.map +1 -1
- package/dist/cjs/meta-helper.js.map +1 -1
- package/dist/cjs/test-utils.js.map +1 -1
- package/dist/cjs/tsdoc-metadata.json +1 -1
- package/dist/cjs/utils/natural-join.js.map +1 -1
- package/dist/es/cli.js +1 -1
- package/dist/es/cli.js.map +1 -1
- package/dist/es/core-browser.js.map +1 -1
- package/dist/es/core-nodejs.js.map +1 -1
- package/dist/es/core.js +74 -57
- package/dist/es/core.js.map +1 -1
- package/dist/es/elements.js +269 -2
- package/dist/es/elements.js.map +1 -1
- package/dist/es/html-validate.js.map +1 -1
- package/dist/es/html5.js.map +1 -1
- package/dist/es/jest-lib.js.map +1 -1
- package/dist/es/jest.js.map +1 -1
- package/dist/es/meta-helper.js.map +1 -1
- package/dist/es/test-utils.js.map +1 -1
- package/dist/es/utils/natural-join.js.map +1 -1
- package/dist/schema/elements.json +6 -0
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/types/browser.d.ts +13 -0
- package/dist/types/index.d.ts +13 -0
- package/package.json +21 -21
package/dist/es/elements.js
CHANGED
|
@@ -2,6 +2,7 @@ import { d as defineMetadata, m as metadataHelper } from './meta-helper.js';
|
|
|
2
2
|
|
|
3
3
|
/* eslint-disable sonarjs/no-duplicate-string -- easier to read without constants */
|
|
4
4
|
const { allowedIfAttributeIsPresent, allowedIfAttributeIsAbsent, allowedIfAttributeHasValue, allowedIfParentIsPresent, } = metadataHelper;
|
|
5
|
+
const validId = "/\\S+/";
|
|
5
6
|
var html5 = defineMetadata({
|
|
6
7
|
"*": {
|
|
7
8
|
attributes: {
|
|
@@ -22,7 +23,7 @@ var html5 = defineMetadata({
|
|
|
22
23
|
boolean: true,
|
|
23
24
|
},
|
|
24
25
|
id: {
|
|
25
|
-
enum: [
|
|
26
|
+
enum: [validId],
|
|
26
27
|
},
|
|
27
28
|
tabindex: {
|
|
28
29
|
enum: ["/-?\\d+/"],
|
|
@@ -91,6 +92,9 @@ var html5 = defineMetadata({
|
|
|
91
92
|
},
|
|
92
93
|
},
|
|
93
94
|
permittedDescendants: [{ exclude: "@interactive" }],
|
|
95
|
+
implicitRole(node) {
|
|
96
|
+
return node.hasAttribute("href") ? "link" : null;
|
|
97
|
+
},
|
|
94
98
|
},
|
|
95
99
|
abbr: {
|
|
96
100
|
flow: true,
|
|
@@ -106,6 +110,9 @@ var html5 = defineMetadata({
|
|
|
106
110
|
},
|
|
107
111
|
address: {
|
|
108
112
|
flow: true,
|
|
113
|
+
implicitRole() {
|
|
114
|
+
return "group";
|
|
115
|
+
},
|
|
109
116
|
permittedContent: ["@flow"],
|
|
110
117
|
permittedDescendants: [{ exclude: ["address", "header", "footer", "@heading", "@sectioning"] }],
|
|
111
118
|
},
|
|
@@ -179,6 +186,9 @@ var html5 = defineMetadata({
|
|
|
179
186
|
enum: ["/[^_].*/", "_blank", "_self", "_parent", "_top"],
|
|
180
187
|
},
|
|
181
188
|
},
|
|
189
|
+
implicitRole(node) {
|
|
190
|
+
return node.hasAttribute("href") ? "link" : null;
|
|
191
|
+
},
|
|
182
192
|
requiredAncestors: ["map"],
|
|
183
193
|
},
|
|
184
194
|
article: {
|
|
@@ -186,12 +196,18 @@ var html5 = defineMetadata({
|
|
|
186
196
|
sectioning: true,
|
|
187
197
|
permittedContent: ["@flow"],
|
|
188
198
|
permittedDescendants: [{ exclude: ["main"] }],
|
|
199
|
+
implicitRole() {
|
|
200
|
+
return "article";
|
|
201
|
+
},
|
|
189
202
|
},
|
|
190
203
|
aside: {
|
|
191
204
|
flow: true,
|
|
192
205
|
sectioning: true,
|
|
193
206
|
permittedContent: ["@flow"],
|
|
194
207
|
permittedDescendants: [{ exclude: ["main"] }],
|
|
208
|
+
implicitRole() {
|
|
209
|
+
return "complementary";
|
|
210
|
+
},
|
|
195
211
|
},
|
|
196
212
|
audio: {
|
|
197
213
|
flow: true,
|
|
@@ -266,6 +282,9 @@ var html5 = defineMetadata({
|
|
|
266
282
|
blockquote: {
|
|
267
283
|
flow: true,
|
|
268
284
|
sectioning: true,
|
|
285
|
+
implicitRole() {
|
|
286
|
+
return "blockquote";
|
|
287
|
+
},
|
|
269
288
|
permittedContent: ["@flow"],
|
|
270
289
|
},
|
|
271
290
|
body: {
|
|
@@ -363,10 +382,12 @@ var html5 = defineMetadata({
|
|
|
363
382
|
enum: ["/[^_].*/", "_blank", "_self", "_parent", "_top"],
|
|
364
383
|
},
|
|
365
384
|
type: {
|
|
366
|
-
required: true,
|
|
367
385
|
enum: ["submit", "reset", "button"],
|
|
368
386
|
},
|
|
369
387
|
},
|
|
388
|
+
implicitRole() {
|
|
389
|
+
return "button";
|
|
390
|
+
},
|
|
370
391
|
permittedContent: ["@phrasing"],
|
|
371
392
|
permittedDescendants: [{ exclude: ["@interactive"] }],
|
|
372
393
|
textContent: "accessible",
|
|
@@ -443,6 +464,9 @@ var html5 = defineMetadata({
|
|
|
443
464
|
datalist: {
|
|
444
465
|
flow: true,
|
|
445
466
|
phrasing: true,
|
|
467
|
+
implicitRole() {
|
|
468
|
+
return "listbox";
|
|
469
|
+
},
|
|
446
470
|
permittedContent: ["@phrasing", "option"],
|
|
447
471
|
},
|
|
448
472
|
dd: {
|
|
@@ -464,6 +488,9 @@ var html5 = defineMetadata({
|
|
|
464
488
|
boolean: true,
|
|
465
489
|
},
|
|
466
490
|
},
|
|
491
|
+
implicitRole() {
|
|
492
|
+
return "group";
|
|
493
|
+
},
|
|
467
494
|
permittedContent: ["summary", "@flow"],
|
|
468
495
|
permittedOrder: ["summary", "@flow"],
|
|
469
496
|
requiredContent: ["summary"],
|
|
@@ -471,6 +498,9 @@ var html5 = defineMetadata({
|
|
|
471
498
|
dfn: {
|
|
472
499
|
flow: true,
|
|
473
500
|
phrasing: true,
|
|
501
|
+
implicitRole() {
|
|
502
|
+
return "term";
|
|
503
|
+
},
|
|
474
504
|
permittedContent: ["@phrasing"],
|
|
475
505
|
permittedDescendants: [{ exclude: ["dfn"] }],
|
|
476
506
|
},
|
|
@@ -482,6 +512,9 @@ var html5 = defineMetadata({
|
|
|
482
512
|
boolean: true,
|
|
483
513
|
},
|
|
484
514
|
},
|
|
515
|
+
implicitRole() {
|
|
516
|
+
return "dialog";
|
|
517
|
+
},
|
|
485
518
|
},
|
|
486
519
|
dir: {
|
|
487
520
|
deprecated: {
|
|
@@ -556,6 +589,9 @@ var html5 = defineMetadata({
|
|
|
556
589
|
boolean: true,
|
|
557
590
|
},
|
|
558
591
|
},
|
|
592
|
+
implicitRole() {
|
|
593
|
+
return "group";
|
|
594
|
+
},
|
|
559
595
|
permittedContent: ["@flow", "legend?"],
|
|
560
596
|
permittedOrder: ["legend", "@flow"],
|
|
561
597
|
},
|
|
@@ -564,6 +600,9 @@ var html5 = defineMetadata({
|
|
|
564
600
|
},
|
|
565
601
|
figure: {
|
|
566
602
|
flow: true,
|
|
603
|
+
implicitRole() {
|
|
604
|
+
return "figure";
|
|
605
|
+
},
|
|
567
606
|
permittedContent: ["@flow", "figcaption?"],
|
|
568
607
|
permittedOrder: ["figcaption", "@flow", "figcaption"],
|
|
569
608
|
},
|
|
@@ -576,6 +615,26 @@ var html5 = defineMetadata({
|
|
|
576
615
|
},
|
|
577
616
|
footer: {
|
|
578
617
|
flow: true,
|
|
618
|
+
implicitRole(node) {
|
|
619
|
+
const selectors = [
|
|
620
|
+
"article",
|
|
621
|
+
"aside",
|
|
622
|
+
"main",
|
|
623
|
+
"nav",
|
|
624
|
+
"section",
|
|
625
|
+
'[role="article"]',
|
|
626
|
+
'[role="complementary"]',
|
|
627
|
+
'[role="main"]',
|
|
628
|
+
'[role="navigation"]',
|
|
629
|
+
'[role="region"]',
|
|
630
|
+
];
|
|
631
|
+
if (node.closest(selectors.join(","))) {
|
|
632
|
+
return null;
|
|
633
|
+
}
|
|
634
|
+
else {
|
|
635
|
+
return "contentinfo";
|
|
636
|
+
}
|
|
637
|
+
},
|
|
579
638
|
permittedContent: ["@flow"],
|
|
580
639
|
permittedDescendants: [{ exclude: ["header", "footer", "main"] }],
|
|
581
640
|
},
|
|
@@ -602,6 +661,9 @@ var html5 = defineMetadata({
|
|
|
602
661
|
enum: ["/[^_].*/", "_blank", "_self", "_parent", "_top"],
|
|
603
662
|
},
|
|
604
663
|
},
|
|
664
|
+
implicitRole() {
|
|
665
|
+
return "form";
|
|
666
|
+
},
|
|
605
667
|
permittedContent: ["@flow"],
|
|
606
668
|
permittedDescendants: [{ exclude: ["@form"] }],
|
|
607
669
|
},
|
|
@@ -637,6 +699,9 @@ var html5 = defineMetadata({
|
|
|
637
699
|
deprecated: true,
|
|
638
700
|
},
|
|
639
701
|
},
|
|
702
|
+
implicitRole() {
|
|
703
|
+
return "heading";
|
|
704
|
+
},
|
|
640
705
|
},
|
|
641
706
|
h2: {
|
|
642
707
|
flow: true,
|
|
@@ -647,6 +712,9 @@ var html5 = defineMetadata({
|
|
|
647
712
|
deprecated: true,
|
|
648
713
|
},
|
|
649
714
|
},
|
|
715
|
+
implicitRole() {
|
|
716
|
+
return "heading";
|
|
717
|
+
},
|
|
650
718
|
},
|
|
651
719
|
h3: {
|
|
652
720
|
flow: true,
|
|
@@ -657,6 +725,9 @@ var html5 = defineMetadata({
|
|
|
657
725
|
deprecated: true,
|
|
658
726
|
},
|
|
659
727
|
},
|
|
728
|
+
implicitRole() {
|
|
729
|
+
return "heading";
|
|
730
|
+
},
|
|
660
731
|
},
|
|
661
732
|
h4: {
|
|
662
733
|
flow: true,
|
|
@@ -667,6 +738,9 @@ var html5 = defineMetadata({
|
|
|
667
738
|
deprecated: true,
|
|
668
739
|
},
|
|
669
740
|
},
|
|
741
|
+
implicitRole() {
|
|
742
|
+
return "heading";
|
|
743
|
+
},
|
|
670
744
|
},
|
|
671
745
|
h5: {
|
|
672
746
|
flow: true,
|
|
@@ -677,6 +751,9 @@ var html5 = defineMetadata({
|
|
|
677
751
|
deprecated: true,
|
|
678
752
|
},
|
|
679
753
|
},
|
|
754
|
+
implicitRole() {
|
|
755
|
+
return "heading";
|
|
756
|
+
},
|
|
680
757
|
},
|
|
681
758
|
h6: {
|
|
682
759
|
flow: true,
|
|
@@ -687,6 +764,9 @@ var html5 = defineMetadata({
|
|
|
687
764
|
deprecated: true,
|
|
688
765
|
},
|
|
689
766
|
},
|
|
767
|
+
implicitRole() {
|
|
768
|
+
return "heading";
|
|
769
|
+
},
|
|
690
770
|
},
|
|
691
771
|
head: {
|
|
692
772
|
permittedContent: ["base?", "title?", "@meta"],
|
|
@@ -700,6 +780,26 @@ var html5 = defineMetadata({
|
|
|
700
780
|
},
|
|
701
781
|
header: {
|
|
702
782
|
flow: true,
|
|
783
|
+
implicitRole(node) {
|
|
784
|
+
const selectors = [
|
|
785
|
+
"article",
|
|
786
|
+
"aside",
|
|
787
|
+
"main",
|
|
788
|
+
"nav",
|
|
789
|
+
"section",
|
|
790
|
+
'[role="article"]',
|
|
791
|
+
'[role="complementary"]',
|
|
792
|
+
'[role="main"]',
|
|
793
|
+
'[role="navigation"]',
|
|
794
|
+
'[role="region"]',
|
|
795
|
+
];
|
|
796
|
+
if (node.closest(selectors.join(","))) {
|
|
797
|
+
return null;
|
|
798
|
+
}
|
|
799
|
+
else {
|
|
800
|
+
return "banner";
|
|
801
|
+
}
|
|
802
|
+
},
|
|
703
803
|
permittedContent: ["@flow"],
|
|
704
804
|
permittedDescendants: [{ exclude: ["header", "footer", "main"] }],
|
|
705
805
|
},
|
|
@@ -730,6 +830,9 @@ var html5 = defineMetadata({
|
|
|
730
830
|
deprecated: true,
|
|
731
831
|
},
|
|
732
832
|
},
|
|
833
|
+
implicitRole() {
|
|
834
|
+
return "separator";
|
|
835
|
+
},
|
|
733
836
|
},
|
|
734
837
|
html: {
|
|
735
838
|
permittedContent: ["head?", "body?"],
|
|
@@ -743,6 +846,9 @@ var html5 = defineMetadata({
|
|
|
743
846
|
deprecated: true,
|
|
744
847
|
},
|
|
745
848
|
},
|
|
849
|
+
implicitRole() {
|
|
850
|
+
return "document";
|
|
851
|
+
},
|
|
746
852
|
},
|
|
747
853
|
i: {
|
|
748
854
|
flow: true,
|
|
@@ -843,6 +949,15 @@ var html5 = defineMetadata({
|
|
|
843
949
|
deprecated: true,
|
|
844
950
|
},
|
|
845
951
|
},
|
|
952
|
+
implicitRole(node) {
|
|
953
|
+
const alt = node.getAttribute("alt");
|
|
954
|
+
if (alt === "") {
|
|
955
|
+
return "presentation";
|
|
956
|
+
}
|
|
957
|
+
else {
|
|
958
|
+
return "img";
|
|
959
|
+
}
|
|
960
|
+
},
|
|
846
961
|
},
|
|
847
962
|
input: {
|
|
848
963
|
flow: true,
|
|
@@ -962,6 +1077,44 @@ var html5 = defineMetadata({
|
|
|
962
1077
|
deprecated: true,
|
|
963
1078
|
},
|
|
964
1079
|
},
|
|
1080
|
+
/* eslint-disable-next-line complexity -- the standard is complicated */
|
|
1081
|
+
implicitRole(node) {
|
|
1082
|
+
const list = node.hasAttribute("list");
|
|
1083
|
+
if (list) {
|
|
1084
|
+
return "combobox";
|
|
1085
|
+
}
|
|
1086
|
+
const type = node.getAttribute("type");
|
|
1087
|
+
switch (type) {
|
|
1088
|
+
case "button":
|
|
1089
|
+
return "button";
|
|
1090
|
+
case "checkbox":
|
|
1091
|
+
return "checkbox";
|
|
1092
|
+
case "email":
|
|
1093
|
+
return "textbox";
|
|
1094
|
+
case "image":
|
|
1095
|
+
return "button";
|
|
1096
|
+
case "number":
|
|
1097
|
+
return "spinbutton";
|
|
1098
|
+
case "radio":
|
|
1099
|
+
return "radio";
|
|
1100
|
+
case "range":
|
|
1101
|
+
return "slider";
|
|
1102
|
+
case "reset":
|
|
1103
|
+
return "button";
|
|
1104
|
+
case "search":
|
|
1105
|
+
return "searchbox";
|
|
1106
|
+
case "submit":
|
|
1107
|
+
return "button";
|
|
1108
|
+
case "tel":
|
|
1109
|
+
return "textbox";
|
|
1110
|
+
case "text":
|
|
1111
|
+
return "textbox";
|
|
1112
|
+
case "url":
|
|
1113
|
+
return "textbox";
|
|
1114
|
+
default:
|
|
1115
|
+
return "textbox";
|
|
1116
|
+
}
|
|
1117
|
+
},
|
|
965
1118
|
},
|
|
966
1119
|
ins: {
|
|
967
1120
|
flow: true,
|
|
@@ -1002,6 +1155,9 @@ var html5 = defineMetadata({
|
|
|
1002
1155
|
datasrc: {
|
|
1003
1156
|
deprecated: true,
|
|
1004
1157
|
},
|
|
1158
|
+
for: {
|
|
1159
|
+
enum: [validId],
|
|
1160
|
+
},
|
|
1005
1161
|
},
|
|
1006
1162
|
},
|
|
1007
1163
|
legend: {
|
|
@@ -1030,6 +1186,9 @@ var html5 = defineMetadata({
|
|
|
1030
1186
|
deprecated: true,
|
|
1031
1187
|
},
|
|
1032
1188
|
},
|
|
1189
|
+
implicitRole(node) {
|
|
1190
|
+
return node.closest("ul, ol, menu") ? "listitem" : null;
|
|
1191
|
+
},
|
|
1033
1192
|
},
|
|
1034
1193
|
link: {
|
|
1035
1194
|
metadata: true,
|
|
@@ -1104,6 +1263,9 @@ var html5 = defineMetadata({
|
|
|
1104
1263
|
},
|
|
1105
1264
|
main: {
|
|
1106
1265
|
flow: true,
|
|
1266
|
+
implicitRole() {
|
|
1267
|
+
return "main";
|
|
1268
|
+
},
|
|
1107
1269
|
},
|
|
1108
1270
|
map: {
|
|
1109
1271
|
flow: true,
|
|
@@ -1166,9 +1328,15 @@ var html5 = defineMetadata({
|
|
|
1166
1328
|
deprecated: true,
|
|
1167
1329
|
},
|
|
1168
1330
|
},
|
|
1331
|
+
implicitRole() {
|
|
1332
|
+
return "math";
|
|
1333
|
+
},
|
|
1169
1334
|
},
|
|
1170
1335
|
menu: {
|
|
1171
1336
|
flow: true,
|
|
1337
|
+
implicitRole() {
|
|
1338
|
+
return "list";
|
|
1339
|
+
},
|
|
1172
1340
|
permittedContent: ["@script", "li"],
|
|
1173
1341
|
},
|
|
1174
1342
|
meta: {
|
|
@@ -1201,6 +1369,9 @@ var html5 = defineMetadata({
|
|
|
1201
1369
|
flow: true,
|
|
1202
1370
|
phrasing: true,
|
|
1203
1371
|
labelable: true,
|
|
1372
|
+
implicitRole() {
|
|
1373
|
+
return "meter";
|
|
1374
|
+
},
|
|
1204
1375
|
permittedContent: ["@phrasing"],
|
|
1205
1376
|
permittedDescendants: [{ exclude: "meter" }],
|
|
1206
1377
|
},
|
|
@@ -1214,6 +1385,9 @@ var html5 = defineMetadata({
|
|
|
1214
1385
|
nav: {
|
|
1215
1386
|
flow: true,
|
|
1216
1387
|
sectioning: true,
|
|
1388
|
+
implicitRole() {
|
|
1389
|
+
return "navigation";
|
|
1390
|
+
},
|
|
1217
1391
|
permittedContent: ["@flow"],
|
|
1218
1392
|
permittedDescendants: [{ exclude: "main" }],
|
|
1219
1393
|
},
|
|
@@ -1326,6 +1500,9 @@ var html5 = defineMetadata({
|
|
|
1326
1500
|
enum: ["a", "A", "i", "I", "1"],
|
|
1327
1501
|
},
|
|
1328
1502
|
},
|
|
1503
|
+
implicitRole() {
|
|
1504
|
+
return "list";
|
|
1505
|
+
},
|
|
1329
1506
|
permittedContent: ["@script", "li"],
|
|
1330
1507
|
},
|
|
1331
1508
|
optgroup: {
|
|
@@ -1335,6 +1512,9 @@ var html5 = defineMetadata({
|
|
|
1335
1512
|
boolean: true,
|
|
1336
1513
|
},
|
|
1337
1514
|
},
|
|
1515
|
+
implicitRole() {
|
|
1516
|
+
return "group";
|
|
1517
|
+
},
|
|
1338
1518
|
permittedContent: ["@script", "option"],
|
|
1339
1519
|
},
|
|
1340
1520
|
option: {
|
|
@@ -1356,6 +1536,9 @@ var html5 = defineMetadata({
|
|
|
1356
1536
|
boolean: true,
|
|
1357
1537
|
},
|
|
1358
1538
|
},
|
|
1539
|
+
implicitRole() {
|
|
1540
|
+
return "option";
|
|
1541
|
+
},
|
|
1359
1542
|
permittedContent: [],
|
|
1360
1543
|
},
|
|
1361
1544
|
output: {
|
|
@@ -1365,6 +1548,9 @@ var html5 = defineMetadata({
|
|
|
1365
1548
|
listed: true,
|
|
1366
1549
|
},
|
|
1367
1550
|
labelable: true,
|
|
1551
|
+
implicitRole() {
|
|
1552
|
+
return "status";
|
|
1553
|
+
},
|
|
1368
1554
|
permittedContent: ["@phrasing"],
|
|
1369
1555
|
},
|
|
1370
1556
|
p: {
|
|
@@ -1445,6 +1631,9 @@ var html5 = defineMetadata({
|
|
|
1445
1631
|
flow: true,
|
|
1446
1632
|
phrasing: true,
|
|
1447
1633
|
labelable: true,
|
|
1634
|
+
implicitRole() {
|
|
1635
|
+
return "progressbar";
|
|
1636
|
+
},
|
|
1448
1637
|
permittedContent: ["@phrasing"],
|
|
1449
1638
|
permittedDescendants: [{ exclude: "progress" }],
|
|
1450
1639
|
},
|
|
@@ -1521,9 +1710,18 @@ var html5 = defineMetadata({
|
|
|
1521
1710
|
},
|
|
1522
1711
|
},
|
|
1523
1712
|
},
|
|
1713
|
+
search: {
|
|
1714
|
+
flow: true,
|
|
1715
|
+
implicitRole() {
|
|
1716
|
+
return "search";
|
|
1717
|
+
},
|
|
1718
|
+
},
|
|
1524
1719
|
section: {
|
|
1525
1720
|
flow: true,
|
|
1526
1721
|
sectioning: true,
|
|
1722
|
+
implicitRole() {
|
|
1723
|
+
return "region";
|
|
1724
|
+
},
|
|
1527
1725
|
permittedContent: ["@flow"],
|
|
1528
1726
|
},
|
|
1529
1727
|
select: {
|
|
@@ -1551,6 +1749,20 @@ var html5 = defineMetadata({
|
|
|
1551
1749
|
enum: ["/\\d+/"],
|
|
1552
1750
|
},
|
|
1553
1751
|
},
|
|
1752
|
+
implicitRole(node) {
|
|
1753
|
+
const multiple = node.hasAttribute("multiple");
|
|
1754
|
+
if (multiple) {
|
|
1755
|
+
return "listbox";
|
|
1756
|
+
}
|
|
1757
|
+
const size = node.getAttribute("size");
|
|
1758
|
+
if (typeof size === "string") {
|
|
1759
|
+
const parsed = parseInt(size, 10);
|
|
1760
|
+
if (parsed > 1) {
|
|
1761
|
+
return "listbox";
|
|
1762
|
+
}
|
|
1763
|
+
}
|
|
1764
|
+
return "combobox";
|
|
1765
|
+
},
|
|
1554
1766
|
permittedContent: ["@script", "datasrc", "datafld", "dataformatas", "option", "optgroup"],
|
|
1555
1767
|
},
|
|
1556
1768
|
slot: {
|
|
@@ -1694,6 +1906,9 @@ var html5 = defineMetadata({
|
|
|
1694
1906
|
deprecated: true,
|
|
1695
1907
|
},
|
|
1696
1908
|
},
|
|
1909
|
+
implicitRole() {
|
|
1910
|
+
return "table";
|
|
1911
|
+
},
|
|
1697
1912
|
},
|
|
1698
1913
|
tbody: {
|
|
1699
1914
|
implicitClosed: ["tbody", "tfoot"],
|
|
@@ -1715,6 +1930,9 @@ var html5 = defineMetadata({
|
|
|
1715
1930
|
deprecated: true,
|
|
1716
1931
|
},
|
|
1717
1932
|
},
|
|
1933
|
+
implicitRole() {
|
|
1934
|
+
return "rowgroup";
|
|
1935
|
+
},
|
|
1718
1936
|
},
|
|
1719
1937
|
td: {
|
|
1720
1938
|
flow: true,
|
|
@@ -1760,6 +1978,17 @@ var html5 = defineMetadata({
|
|
|
1760
1978
|
deprecated: true,
|
|
1761
1979
|
},
|
|
1762
1980
|
},
|
|
1981
|
+
implicitRole(node) {
|
|
1982
|
+
if (node.closest('table[role="grid"], table[role="treegrid"]')) {
|
|
1983
|
+
return "gridcell";
|
|
1984
|
+
}
|
|
1985
|
+
else if (node.closest("table")) {
|
|
1986
|
+
return "cell";
|
|
1987
|
+
}
|
|
1988
|
+
else {
|
|
1989
|
+
return null;
|
|
1990
|
+
}
|
|
1991
|
+
},
|
|
1763
1992
|
permittedContent: ["@flow"],
|
|
1764
1993
|
},
|
|
1765
1994
|
template: {
|
|
@@ -1817,6 +2046,9 @@ var html5 = defineMetadata({
|
|
|
1817
2046
|
enum: ["hard", "soft"],
|
|
1818
2047
|
},
|
|
1819
2048
|
},
|
|
2049
|
+
implicitRole() {
|
|
2050
|
+
return "textbox";
|
|
2051
|
+
},
|
|
1820
2052
|
permittedContent: [],
|
|
1821
2053
|
},
|
|
1822
2054
|
tfoot: {
|
|
@@ -1839,6 +2071,9 @@ var html5 = defineMetadata({
|
|
|
1839
2071
|
deprecated: true,
|
|
1840
2072
|
},
|
|
1841
2073
|
},
|
|
2074
|
+
implicitRole() {
|
|
2075
|
+
return "rowgroup";
|
|
2076
|
+
},
|
|
1842
2077
|
},
|
|
1843
2078
|
th: {
|
|
1844
2079
|
flow: true,
|
|
@@ -1884,6 +2119,26 @@ var html5 = defineMetadata({
|
|
|
1884
2119
|
deprecated: true,
|
|
1885
2120
|
},
|
|
1886
2121
|
},
|
|
2122
|
+
implicitRole(node) {
|
|
2123
|
+
var _a;
|
|
2124
|
+
const table = node.closest("table");
|
|
2125
|
+
if (!table) {
|
|
2126
|
+
return null;
|
|
2127
|
+
}
|
|
2128
|
+
const tableRole = (_a = table.getAttribute("role")) !== null && _a !== void 0 ? _a : "table";
|
|
2129
|
+
if (typeof tableRole !== "string" || !["table", "grid", "treegrid"].includes(tableRole)) {
|
|
2130
|
+
return null;
|
|
2131
|
+
}
|
|
2132
|
+
const scope = node.getAttribute("scope");
|
|
2133
|
+
switch (scope) {
|
|
2134
|
+
case "col":
|
|
2135
|
+
return "columnheader";
|
|
2136
|
+
case "row":
|
|
2137
|
+
return "rowheader";
|
|
2138
|
+
default:
|
|
2139
|
+
return tableRole === "table" ? "cell" : "gridcell";
|
|
2140
|
+
}
|
|
2141
|
+
},
|
|
1887
2142
|
permittedContent: ["@flow"],
|
|
1888
2143
|
permittedDescendants: [{ exclude: ["header", "footer", "@sectioning", "@heading"] }],
|
|
1889
2144
|
},
|
|
@@ -1907,10 +2162,16 @@ var html5 = defineMetadata({
|
|
|
1907
2162
|
deprecated: true,
|
|
1908
2163
|
},
|
|
1909
2164
|
},
|
|
2165
|
+
implicitRole() {
|
|
2166
|
+
return "rowgroup";
|
|
2167
|
+
},
|
|
1910
2168
|
},
|
|
1911
2169
|
time: {
|
|
1912
2170
|
flow: true,
|
|
1913
2171
|
phrasing: true,
|
|
2172
|
+
implicitRole() {
|
|
2173
|
+
return "time";
|
|
2174
|
+
},
|
|
1914
2175
|
permittedContent: ["@phrasing"],
|
|
1915
2176
|
},
|
|
1916
2177
|
title: {
|
|
@@ -1941,6 +2202,9 @@ var html5 = defineMetadata({
|
|
|
1941
2202
|
deprecated: true,
|
|
1942
2203
|
},
|
|
1943
2204
|
},
|
|
2205
|
+
implicitRole() {
|
|
2206
|
+
return "row";
|
|
2207
|
+
},
|
|
1944
2208
|
},
|
|
1945
2209
|
track: {
|
|
1946
2210
|
void: true,
|
|
@@ -1967,6 +2231,9 @@ var html5 = defineMetadata({
|
|
|
1967
2231
|
deprecated: true,
|
|
1968
2232
|
},
|
|
1969
2233
|
},
|
|
2234
|
+
implicitRole() {
|
|
2235
|
+
return "list";
|
|
2236
|
+
},
|
|
1970
2237
|
},
|
|
1971
2238
|
var: {
|
|
1972
2239
|
flow: true,
|