@markuplint/ml-spec 3.0.0-dev.25 → 3.0.0-dev.290

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 (131) hide show
  1. package/lib/constant/aria-version.d.ts +2 -0
  2. package/lib/constant/aria-version.js +2 -0
  3. package/lib/dom-traverse/accname-computation.js +6 -7
  4. package/lib/dom-traverse/get-attr-specs.d.ts +2 -2
  5. package/lib/dom-traverse/get-attr-specs.js +5 -7
  6. package/lib/dom-traverse/get-computed-aria-props.d.ts +2 -2
  7. package/lib/dom-traverse/get-computed-aria-props.js +10 -13
  8. package/lib/dom-traverse/get-computed-role.d.ts +2 -2
  9. package/lib/dom-traverse/get-computed-role.js +104 -31
  10. package/lib/dom-traverse/get-content-model.d.ts +4 -3
  11. package/lib/dom-traverse/get-content-model.js +8 -11
  12. package/lib/dom-traverse/get-explicit-role.d.ts +1 -1
  13. package/lib/dom-traverse/get-explicit-role.js +14 -14
  14. package/lib/dom-traverse/get-implicit-role.d.ts +3 -3
  15. package/lib/dom-traverse/get-implicit-role.js +12 -13
  16. package/lib/dom-traverse/get-non-presentational-ancestor.d.ts +2 -2
  17. package/lib/dom-traverse/get-non-presentational-ancestor.js +13 -10
  18. package/lib/dom-traverse/get-permitted-roles.d.ts +4 -4
  19. package/lib/dom-traverse/get-permitted-roles.js +5 -7
  20. package/lib/dom-traverse/get-spec.d.ts +2 -2
  21. package/lib/dom-traverse/get-spec.js +5 -7
  22. package/lib/dom-traverse/has-required-owned-elements.d.ts +3 -3
  23. package/lib/dom-traverse/has-required-owned-elements.js +21 -22
  24. package/lib/dom-traverse/is-exposed.d.ts +2 -2
  25. package/lib/dom-traverse/is-exposed.js +47 -18
  26. package/lib/dom-traverse/matches-context-role.d.ts +2 -0
  27. package/lib/dom-traverse/matches-context-role.js +23 -0
  28. package/lib/dom-traverse/may-be-focusable.d.ts +2 -2
  29. package/lib/dom-traverse/may-be-focusable.js +5 -7
  30. package/lib/index.d.ts +28 -24
  31. package/lib/index.js +28 -27
  32. package/lib/specs/aria-specs.d.ts +5 -5
  33. package/lib/specs/aria-specs.js +1 -5
  34. package/lib/specs/content-model-category-to-tag-names.d.ts +2 -2
  35. package/lib/specs/content-model-category-to-tag-names.js +1 -5
  36. package/lib/specs/get-aria.d.ts +4 -3
  37. package/lib/specs/get-aria.js +18 -18
  38. package/lib/specs/get-attr-specs.d.ts +3 -3
  39. package/lib/specs/get-attr-specs.js +5 -22
  40. package/lib/specs/get-implicit-role.d.ts +2 -2
  41. package/lib/specs/get-implicit-role.js +3 -7
  42. package/lib/specs/get-permitted-roles.d.ts +4 -4
  43. package/lib/specs/get-permitted-roles.js +29 -28
  44. package/lib/specs/get-role-spec.d.ts +2 -2
  45. package/lib/specs/get-role-spec.js +10 -14
  46. package/lib/specs/get-selectors-by-content-model-category.d.ts +3 -3
  47. package/lib/specs/get-selectors-by-content-model-category.js +2 -6
  48. package/lib/specs/get-spec-by-tag-name.d.ts +2 -2
  49. package/lib/specs/get-spec-by-tag-name.js +4 -8
  50. package/lib/specs/is-nothing-content-model.js +5 -7
  51. package/lib/specs/is-palpable-elements.d.ts +4 -4
  52. package/lib/specs/is-palpable-elements.js +7 -10
  53. package/lib/specs/is-presentational.js +1 -5
  54. package/lib/specs/is-void-element.js +3 -5
  55. package/lib/specs/resolve-version.d.ts +4 -3
  56. package/lib/specs/resolve-version.js +7 -12
  57. package/lib/specs/schema-to-spec.d.ts +4 -4
  58. package/lib/specs/schema-to-spec.js +30 -24
  59. package/lib/types/aria.d.ts +25 -4
  60. package/lib/types/aria.js +1 -3
  61. package/lib/types/attributes.d.ts +3 -4
  62. package/lib/types/attributes.js +1 -3
  63. package/lib/types/index.d.ts +93 -92
  64. package/lib/types/index.js +1 -2
  65. package/lib/types/permitted-structures.d.ts +6 -2
  66. package/lib/types/permitted-structures.js +1 -3
  67. package/lib/utils/get-ns.js +1 -5
  68. package/lib/utils/merge-array.d.ts +2 -2
  69. package/lib/utils/merge-array.js +1 -5
  70. package/lib/utils/resolve-namespace.js +4 -8
  71. package/lib/utils/validateAriaVersion.d.ts +2 -0
  72. package/lib/utils/validateAriaVersion.js +4 -0
  73. package/package.json +20 -10
  74. package/lib/types/permitted-structres.d.ts +0 -58
  75. package/lib/types/permitted-structres.js +0 -8
  76. package/schemas/aria.schema.json +0 -258
  77. package/schemas/attributes.schema.json +0 -204
  78. package/schemas/content-models.schema.json +0 -199
  79. package/schemas/element.schema.json +0 -11
  80. package/schemas/global-attributes.schema.json +0 -761
  81. package/src/dom-traverse/accname-computation.spec.ts +0 -69
  82. package/src/dom-traverse/accname-computation.ts +0 -5
  83. package/src/dom-traverse/get-attr-specs.ts +0 -8
  84. package/src/dom-traverse/get-computed-aria-props.spec.ts +0 -368
  85. package/src/dom-traverse/get-computed-aria-props.ts +0 -130
  86. package/src/dom-traverse/get-computed-role.spec.ts +0 -134
  87. package/src/dom-traverse/get-computed-role.ts +0 -181
  88. package/src/dom-traverse/get-content-model.ts +0 -32
  89. package/src/dom-traverse/get-explicit-role.ts +0 -112
  90. package/src/dom-traverse/get-implicit-role.ts +0 -36
  91. package/src/dom-traverse/get-non-presentational-ancestor.ts +0 -20
  92. package/src/dom-traverse/get-permitted-roles.ts +0 -7
  93. package/src/dom-traverse/get-spec.ts +0 -7
  94. package/src/dom-traverse/has-required-owned-elements.spec.ts +0 -36
  95. package/src/dom-traverse/has-required-owned-elements.ts +0 -85
  96. package/src/dom-traverse/is-exposed.spec.ts +0 -50
  97. package/src/dom-traverse/is-exposed.ts +0 -196
  98. package/src/dom-traverse/may-be-focusable.ts +0 -21
  99. package/src/index.ts +0 -24
  100. package/src/specs/aria-specs.ts +0 -6
  101. package/src/specs/content-model-category-to-tag-names.ts +0 -15
  102. package/src/specs/get-aria.ts +0 -85
  103. package/src/specs/get-attr-specs.spec.ts +0 -47
  104. package/src/specs/get-attr-specs.ts +0 -116
  105. package/src/specs/get-implicit-role.spec.ts +0 -81
  106. package/src/specs/get-implicit-role.ts +0 -17
  107. package/src/specs/get-permitted-roles.spec.ts +0 -420
  108. package/src/specs/get-permitted-roles.ts +0 -87
  109. package/src/specs/get-role-spec.spec.ts +0 -67
  110. package/src/specs/get-role-spec.ts +0 -72
  111. package/src/specs/get-selectors-by-content-model-category.ts +0 -10
  112. package/src/specs/get-spec-by-tag-name.spec.ts +0 -68
  113. package/src/specs/get-spec-by-tag-name.ts +0 -20
  114. package/src/specs/is-nothing-content-model.ts +0 -9
  115. package/src/specs/is-palpable-elements.ts +0 -55
  116. package/src/specs/is-presentational.ts +0 -6
  117. package/src/specs/is-void-element.ts +0 -22
  118. package/src/specs/resolve-version.ts +0 -20
  119. package/src/specs/schema-to-spec.spec.ts +0 -39
  120. package/src/specs/schema-to-spec.ts +0 -103
  121. package/src/types/aria.ts +0 -153
  122. package/src/types/attributes.ts +0 -1524
  123. package/src/types/index.ts +0 -255
  124. package/src/types/permitted-structres.ts +0 -100
  125. package/src/types/permitted-structures.ts +0 -96
  126. package/src/utils/get-ns.ts +0 -18
  127. package/src/utils/merge-array.ts +0 -35
  128. package/src/utils/resolve-namespace.spec.ts +0 -37
  129. package/src/utils/resolve-namespace.ts +0 -40
  130. package/tsconfig.test.json +0 -3
  131. package/tsconfig.tsbuildinfo +0 -1
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mergeArray = void 0;
4
- function mergeArray(a, b) {
1
+ export function mergeArray(a, b) {
5
2
  if (!b) {
6
3
  return a;
7
4
  }
@@ -29,7 +26,6 @@ function mergeArray(a, b) {
29
26
  }
30
27
  return result;
31
28
  }
32
- exports.mergeArray = mergeArray;
33
29
  function getName(def) {
34
30
  const result = typeof def === 'string' ? def : def.name;
35
31
  return result.toLowerCase().trim();
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveNamespace = void 0;
4
- const get_ns_1 = require("./get-ns");
1
+ import { getNS } from './get-ns.js';
5
2
  const cache = new Map();
6
3
  const namespaceURIMap = {
7
4
  html: 'http://www.w3.org/1999/xhtml',
@@ -9,15 +6,15 @@ const namespaceURIMap = {
9
6
  mml: 'http://www.w3.org/1998/Math/MathML',
10
7
  xlink: 'http://www.w3.org/1999/xlink',
11
8
  };
12
- function resolveNamespace(name, namespaceURI = 'http://www.w3.org/1999/xhtml') {
9
+ export function resolveNamespace(name, namespaceURI = 'http://www.w3.org/1999/xhtml') {
13
10
  const cached = cache.get(name + namespaceURI);
14
11
  if (cached) {
15
12
  return cached;
16
13
  }
17
14
  const [_explicitNS, _localName] = name.split(':');
18
15
  const explicitNS = _localName ? _explicitNS : null;
19
- const localName = _localName !== null && _localName !== void 0 ? _localName : _explicitNS;
20
- const namespace = ['html', 'svg', 'mml', 'xlink'].find(_ns => _ns === (explicitNS || (0, get_ns_1.getNS)(namespaceURI || null))) ||
16
+ const localName = _localName ?? _explicitNS ?? '';
17
+ const namespace = ['html', 'svg', 'mml', 'xlink'].find(_ns => _ns === (explicitNS || getNS(namespaceURI ?? null))) ||
21
18
  'html';
22
19
  const result = {
23
20
  localNameWithNS: `${namespace === 'html' ? '' : `${namespace}:`}${localName}`,
@@ -28,4 +25,3 @@ function resolveNamespace(name, namespaceURI = 'http://www.w3.org/1999/xhtml') {
28
25
  cache.set(name + namespaceURI, result);
29
26
  return result;
30
27
  }
31
- exports.resolveNamespace = resolveNamespace;
@@ -0,0 +1,2 @@
1
+ import type { ARIAVersion } from '../types/index.js';
2
+ export declare function validateAriaVersion(version: string): version is ARIAVersion;
@@ -0,0 +1,4 @@
1
+ import { ariaVersions } from '../constant/aria-version.js';
2
+ export function validateAriaVersion(version) {
3
+ return ariaVersions.includes(version);
4
+ }
package/package.json CHANGED
@@ -1,35 +1,45 @@
1
1
  {
2
2
  "name": "@markuplint/ml-spec",
3
- "version": "3.0.0-dev.25+a27e39aa",
3
+ "version": "3.0.0-dev.290+af676442",
4
4
  "description": "Types and schema that specs of the Markup languages for markuplint",
5
5
  "repository": "git@github.com:markuplint/markuplint.git",
6
6
  "author": "Yusuke Hirao <yusukehirao@me.com>",
7
7
  "license": "MIT",
8
8
  "private": false,
9
- "main": "lib/index.js",
9
+ "type": "module",
10
+ "exports": {
11
+ ".": {
12
+ "import": "./lib/index.js"
13
+ }
14
+ },
10
15
  "types": "lib/index.d.ts",
11
16
  "publishConfig": {
12
17
  "access": "public"
13
18
  },
19
+ "typedoc": {
20
+ "entryPoint": "./src/index.ts"
21
+ },
14
22
  "scripts": {
15
23
  "build": "tsc",
16
24
  "dev": "tsc --build --watch",
17
25
  "clean": "tsc --build --clean",
18
26
  "schema:gen": "ts-node ./gen/gen.ts; prettier --write './schemas/*.json';",
19
- "schema:content-models": "json2ts ./schemas/content-models.schema.json > ./src/types/permitted-structres.ts; prettier --write ./src/types/permitted-structres.ts; eslint --fix --config ../../../.eslintrc ./src/types/permitted-structres.ts",
27
+ "schema:content-models": "json2ts ./schemas/content-models.schema.json > ./src/types/permitted-structures.ts; prettier --write ./src/types/permitted-structures.ts; eslint --fix --config ../../../.eslintrc ./src/types/permitted-structures.ts",
20
28
  "schema:attributes": "json2ts ./schemas/attributes.schema.json --cwd ./schemas > ./src/types/attributes.ts; prettier --write ./src/types/attributes.ts; eslint --fix --config ../../../.eslintrc ./src/types/attributes.ts",
21
29
  "schema:aria": "json2ts ./schemas/aria.schema.json --cwd ./schemas > ./src/types/aria.ts; prettier --write ./src/types/aria.ts; eslint --fix --config ../../../.eslintrc ./src/types/aria.ts",
22
30
  "schema": "run-s schema:*"
23
31
  },
24
32
  "dependencies": {
25
- "@markuplint/ml-ast": "3.0.0-rc.0",
26
- "dom-accessibility-api": "^0.5.14",
27
- "tslib": "^2.4.1"
33
+ "@markuplint/ml-ast": "3.0.0-dev.290+af676442",
34
+ "@markuplint/types": "3.0.0-dev.290+af676442",
35
+ "dom-accessibility-api": "^0.6.3",
36
+ "is-plain-object": "^5.0.0",
37
+ "tslib": "^2.6.2",
38
+ "type-fest": "^4.3.1"
28
39
  },
29
40
  "devDependencies": {
30
- "@markuplint/test-tools": "3.0.0-rc.0",
31
- "@markuplint/types": "3.0.0-dev.25+a27e39aa",
32
- "json-schema-to-typescript": "^11.0.2"
41
+ "@markuplint/test-tools": "4.0.0-alpha.2",
42
+ "json-schema-to-typescript": "13.1.1"
33
43
  },
34
- "gitHead": "a27e39aa4362bce572d1893df2f1571705b62df1"
44
+ "gitHead": "af6764422feecb56d1d84659028f53daf685bb78"
35
45
  }
@@ -1,58 +0,0 @@
1
- /**
2
- * This file was automatically generated by json-schema-to-typescript.
3
- * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
- * and run json-schema-to-typescript to regenerate this file.
5
- */
6
- export type PermittedContentPattern = PermittedContentRequire | PermittedContentOptional | PermittedContentOneOrMore | PermittedContentZeroOrMore | PermittedContentChoice | PermittedContentTransparent;
7
- export type Model = ContentType | ContentType[];
8
- export type ContentType = string | Category;
9
- export type Category = '#text' | '#phrasing' | '#flow' | '#interactive' | '#heading' | '#sectioning' | '#metadata' | '#embedded' | '#palpable' | '#script-supporting' | '#SVGAnimation' | '#SVGBasicShapes' | '#SVGContainer' | '#SVGDescriptive' | '#SVGFilterPrimitive' | '#SVGFont' | '#SVGGradient' | '#SVGGraphics' | '#SVGGraphicsReferencing' | '#SVGLightSource' | '#SVGNeverRendered' | '#SVGNone' | '#SVGPaintServer' | '#SVGRenderable' | '#SVGShape' | '#SVGStructural' | '#SVGStructurallyExternal' | '#SVGTextContent' | '#SVGTextContentChild';
10
- export interface ContentModelsSchema {
11
- __contentModel?: ContentModel;
12
- }
13
- export interface ContentModel {
14
- contents: PermittedContentPattern[] | boolean;
15
- descendantOf?: string;
16
- conditional?: {
17
- condition: string;
18
- contents: PermittedContentPattern[] | boolean;
19
- }[];
20
- }
21
- export interface PermittedContentRequire {
22
- require: Model;
23
- max?: number;
24
- min?: number;
25
- _TODO_?: string;
26
- }
27
- export interface PermittedContentOptional {
28
- optional: Model;
29
- max?: number;
30
- _TODO_?: string;
31
- }
32
- export interface PermittedContentOneOrMore {
33
- oneOrMore: Model | PermittedContentPattern[];
34
- max?: number;
35
- _TODO_?: string;
36
- }
37
- export interface PermittedContentZeroOrMore {
38
- zeroOrMore: Model | PermittedContentPattern[];
39
- max?: number;
40
- _TODO_?: string;
41
- }
42
- export interface PermittedContentChoice {
43
- /**
44
- * @minItems 2
45
- * @maxItems 5
46
- */
47
- choice: [PermittedContentPattern[], PermittedContentPattern[]] | [PermittedContentPattern[], PermittedContentPattern[], PermittedContentPattern[]] | [PermittedContentPattern[], PermittedContentPattern[], PermittedContentPattern[], PermittedContentPattern[]] | [
48
- PermittedContentPattern[],
49
- PermittedContentPattern[],
50
- PermittedContentPattern[],
51
- PermittedContentPattern[],
52
- PermittedContentPattern[]
53
- ];
54
- _TODO_?: string;
55
- }
56
- export interface PermittedContentTransparent {
57
- transparent: string;
58
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
- /* tslint:disable */
3
- /**
4
- * This file was automatically generated by json-schema-to-typescript.
5
- * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
6
- * and run json-schema-to-typescript to regenerate this file.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,258 +0,0 @@
1
- {
2
- "definitions": {
3
- "PermittedRoles": {
4
- "description": "If `true`, this mean is \"Any\". If `false`, this mean is \"No\".",
5
- "oneOf": [
6
- {
7
- "type": "boolean"
8
- },
9
- {
10
- "type": "array",
11
- "items": {
12
- "oneOf": [
13
- {
14
- "type": "string"
15
- },
16
- {
17
- "type": "object",
18
- "required": ["name"],
19
- "minProperties": 2,
20
- "properties": {
21
- "name": { "type": "string" },
22
- "deprecated": { "type": "boolean", "enum": [true] }
23
- }
24
- }
25
- ]
26
- }
27
- },
28
- {
29
- "type": "object",
30
- "minProperties": 1,
31
- "additionalProperties": false,
32
- "properties": {
33
- "core-aam": {
34
- "type": "boolean",
35
- "enum": [true]
36
- },
37
- "graphics-aam": {
38
- "type": "boolean",
39
- "enum": [true]
40
- }
41
- }
42
- }
43
- ]
44
- },
45
- "PermittedARIAProperties": {
46
- "description": "If set false:\n> No role or aria-* attributes",
47
- "oneOf": [
48
- {
49
- "type": "boolean",
50
- "enum": [false]
51
- },
52
- {
53
- "type": "object",
54
- "minProperties": 1,
55
- "additionalProperties": false,
56
- "properties": {
57
- "global": {
58
- "type": "boolean",
59
- "enum": [true]
60
- },
61
- "role": {
62
- "description": "Set true if the spec says \"and any aria-* attributes applicable to the allowed roles.\"",
63
- "oneOf": [
64
- {
65
- "type": "boolean",
66
- "enum": [true]
67
- },
68
- {
69
- "type": "string"
70
- },
71
- {
72
- "type": "array",
73
- "minItems": 1,
74
- "items": { "type": "string" }
75
- }
76
- ]
77
- },
78
- "only": {
79
- "type": "array",
80
- "minItems": 1,
81
- "items": {
82
- "oneOf": [
83
- {
84
- "type": "string",
85
- "pattern": "^aria-.+"
86
- },
87
- {
88
- "type": "object",
89
- "required": ["name"],
90
- "additionalProperties": false,
91
- "properties": {
92
- "name": {
93
- "type": "string",
94
- "pattern": "^aria-.+"
95
- },
96
- "value": {
97
- "type": "string"
98
- }
99
- }
100
- }
101
- ]
102
- }
103
- },
104
- "without": {
105
- "type": "array",
106
- "minItems": 1,
107
- "items": {
108
- "type": "object",
109
- "required": ["type", "name"],
110
- "additionalProperties": false,
111
- "properties": {
112
- "type": {
113
- "type": "string",
114
- "enum": ["not-recommended", "should-not", "must-not"]
115
- },
116
- "name": {
117
- "type": "string",
118
- "pattern": "^aria-.+"
119
- },
120
- "value": {
121
- "type": "string"
122
- },
123
- "alt": {
124
- "type": "object",
125
- "required": ["method", "target"],
126
- "additionalProperties": false,
127
- "properties": {
128
- "method": {
129
- "type": "string",
130
- "enum": ["remove-attr", "set-attr"]
131
- },
132
- "target": {
133
- "type": "string"
134
- }
135
- }
136
- }
137
- }
138
- }
139
- }
140
- }
141
- }
142
- ]
143
- },
144
- "ImplicitRole": {
145
- "description": "If `false`, this mean is \"No corresponding role\".",
146
- "oneOf": [
147
- {
148
- "type": "boolean",
149
- "enum": [false]
150
- },
151
- {
152
- "type": "string"
153
- }
154
- ]
155
- },
156
- "ImplicitProperties": {
157
- "type": "object",
158
- "minProperties": 1,
159
- "patternProperties": {
160
- "^aria-.+": {
161
- "type": "string"
162
- }
163
- }
164
- },
165
- "ARIA": {
166
- "type": "object",
167
- "additionalProperties": false,
168
- "required": ["implicitRole", "permittedRoles"],
169
- "properties": {
170
- "implicitRole": { "$ref": "#/definitions/ImplicitRole" },
171
- "permittedRoles": { "$ref": "#/definitions/PermittedRoles" },
172
- "namingProhibited": { "type": "boolean", "enum": [true] },
173
- "implicitProperties": { "$ref": "#/definitions/ImplicitProperties" },
174
- "properties": { "$ref": "#/definitions/PermittedARIAProperties" },
175
- "conditions": {
176
- "type": "object",
177
- "minProperties": 1,
178
- "patternProperties": {
179
- ".+": {
180
- "type": "object",
181
- "minProperties": 1,
182
- "additionalProperties": false,
183
- "properties": {
184
- "implicitRole": { "$ref": "#/definitions/ImplicitRole" },
185
- "permittedRoles": { "$ref": "#/definitions/PermittedRoles" },
186
- "namingProhibited": { "type": "boolean", "enum": [true] },
187
- "implicitProperties": { "$ref": "#/definitions/ImplicitProperties" },
188
- "properties": { "$ref": "#/definitions/PermittedARIAProperties" }
189
- }
190
- }
191
- }
192
- },
193
- "1.2": {
194
- "type": "object",
195
- "additionalProperties": false,
196
- "minProperties": 1,
197
- "properties": {
198
- "implicitRole": { "$ref": "#/definitions/ImplicitRole" },
199
- "permittedRoles": { "$ref": "#/definitions/PermittedRoles" },
200
- "namingProhibited": { "type": "boolean", "enum": [true] },
201
- "implicitProperties": { "$ref": "#/definitions/ImplicitProperties" },
202
- "properties": { "$ref": "#/definitions/PermittedARIAProperties" },
203
- "conditions": {
204
- "type": "object",
205
- "minProperties": 1,
206
- "patternProperties": {
207
- ".+": {
208
- "type": "object",
209
- "minProperties": 1,
210
- "additionalProperties": false,
211
- "properties": {
212
- "implicitRole": { "$ref": "#/definitions/ImplicitRole" },
213
- "permittedRoles": { "$ref": "#/definitions/PermittedRoles" },
214
- "namingProhibited": { "type": "boolean", "enum": [true] },
215
- "implicitProperties": { "$ref": "#/definitions/ImplicitProperties" },
216
- "properties": { "$ref": "#/definitions/PermittedARIAProperties" }
217
- }
218
- }
219
- }
220
- }
221
- }
222
- },
223
- "1.1": {
224
- "type": "object",
225
- "additionalProperties": false,
226
- "minProperties": 1,
227
- "properties": {
228
- "implicitRole": { "$ref": "#/definitions/ImplicitRole" },
229
- "permittedRoles": { "$ref": "#/definitions/PermittedRoles" },
230
- "implicitProperties": { "$ref": "#/definitions/ImplicitProperties" },
231
- "properties": { "$ref": "#/definitions/PermittedARIAProperties" },
232
- "conditions": {
233
- "type": "object",
234
- "minProperties": 1,
235
- "patternProperties": {
236
- ".+": {
237
- "type": "object",
238
- "minProperties": 1,
239
- "additionalProperties": false,
240
- "properties": {
241
- "implicitRole": { "$ref": "#/definitions/ImplicitRole" },
242
- "permittedRoles": { "$ref": "#/definitions/PermittedRoles" },
243
- "implicitProperties": { "$ref": "#/definitions/ImplicitProperties" },
244
- "properties": { "$ref": "#/definitions/PermittedARIAProperties" }
245
- }
246
- }
247
- }
248
- }
249
- }
250
- }
251
- }
252
- }
253
- },
254
- "type": "object",
255
- "properties": {
256
- "_": { "$ref": "#/definitions/ARIA" }
257
- }
258
- }
@@ -1,204 +0,0 @@
1
- {
2
- "definitions": {
3
- "AttributeName": { "type": "string", "pattern": "^(?:(xml|xlink):)?[a-z][a-zA-Z0-9-]*$" },
4
- "AttributeCondition": { "$ref": "#/definitions/Selectors" },
5
- "Selectors": {
6
- "oneOf": [{ "type": "string" }, { "type": "array", "minItems": 2, "items": { "type": "string" } }]
7
- },
8
- "AttributeType": { "$ref": "../../types/types.schema.json#/definitions/type" },
9
- "AttributeJSON": {
10
- "type": "object",
11
- "additionalProperties": false,
12
- "minProperties": 1,
13
- "properties": {
14
- "type": {
15
- "oneOf": [
16
- { "$ref": "#/definitions/AttributeType" },
17
- {
18
- "type": "array",
19
- "minItems": 1,
20
- "uniqueItems": true,
21
- "items": { "$ref": "#/definitions/AttributeType" }
22
- }
23
- ]
24
- },
25
- "defaultValue": { "type": "string" },
26
- "deprecated": { "type": "boolean" },
27
- "required": { "oneOf": [{ "type": "boolean" }, { "$ref": "#/definitions/AttributeCondition" }] },
28
- "requiredEither": { "type": "array", "items": { "type": "string" } },
29
- "noUse": { "type": "boolean" },
30
- "condition": { "$ref": "#/definitions/AttributeCondition" },
31
- "ineffective": { "$ref": "#/definitions/Selectors" },
32
- "animatable": { "type": "boolean" },
33
- "experimental": { "type": "boolean" }
34
- }
35
- },
36
- "GlobalAttributes": {
37
- "type": "object",
38
- "additionalProperties": false,
39
- "propertyNames": {
40
- "type": "string",
41
- "enum": [
42
- "#HTMLGlobalAttrs",
43
- "#GlobalEventAttrs",
44
- "#DocumentElementEventAttrs",
45
- "#HTMLLinkAndFetchingAttrs",
46
- "#HTMLEmbededAndMediaContentAttrs",
47
- "#HTMLFormControlElementAttrs",
48
- "#HTMLTableCellElementAttrs",
49
- "#ARIAAttrs",
50
- "#SVGAnimationAdditionAttrs",
51
- "#SVGAnimationAttributeTargetAttrs",
52
- "#SVGAnimationEventAttrs",
53
- "#SVGAnimationTargetElementAttrs",
54
- "#SVGAnimationTimingAttrs",
55
- "#SVGAnimationValueAttrs",
56
- "#SVGConditionalProcessingAttrs",
57
- "#SVGCoreAttrs",
58
- "#SVGFilterPrimitiveAttrs",
59
- "#SVGPresentationAttrs",
60
- "#SVGTransferFunctionAttrs",
61
- "#XLinkAttrs"
62
- ]
63
- },
64
- "properties": {
65
- "#HTMLGlobalAttrs": { "type": "boolean" },
66
- "#GlobalEventAttrs": {
67
- "oneOf": [
68
- { "type": "boolean" },
69
- {
70
- "type": "array",
71
- "minItems": 0,
72
- "uniqueItems": true,
73
- "items": { "$ref": "./global-attributes.schema.json#/definitions/GlobalEventAttrs" }
74
- }
75
- ]
76
- },
77
- "#DocumentElementEventAttrs": {
78
- "oneOf": [
79
- { "type": "boolean" },
80
- {
81
- "type": "array",
82
- "minItems": 0,
83
- "uniqueItems": true,
84
- "items": {
85
- "$ref": "./global-attributes.schema.json#/definitions/DocumentElementEventAttrs"
86
- }
87
- }
88
- ]
89
- },
90
- "#HTMLLinkAndFetchingAttrs": {
91
- "type": "array",
92
- "minItems": 0,
93
- "uniqueItems": true,
94
- "items": { "$ref": "./global-attributes.schema.json#/definitions/HTMLLinkAndFetchingAttrs" }
95
- },
96
- "#HTMLEmbededAndMediaContentAttrs": {
97
- "type": "array",
98
- "minItems": 0,
99
- "uniqueItems": true,
100
- "items": { "$ref": "./global-attributes.schema.json#/definitions/HTMLEmbededAndMediaContentAttrs" }
101
- },
102
- "#HTMLFormControlElementAttrs": {
103
- "type": "array",
104
- "minItems": 0,
105
- "uniqueItems": true,
106
- "items": { "$ref": "./global-attributes.schema.json#/definitions/HTMLFormControlElementAttrs" }
107
- },
108
- "#HTMLTableCellElementAttrs": {
109
- "type": "array",
110
- "minItems": 0,
111
- "uniqueItems": true,
112
- "items": { "$ref": "./global-attributes.schema.json#/definitions/HTMLTableCellElementAttrs" }
113
- },
114
- "#ARIAAttrs": { "type": "boolean" },
115
- "#SVGAnimationAdditionAttrs": {
116
- "type": "array",
117
- "minItems": 0,
118
- "uniqueItems": true,
119
- "items": { "$ref": "./global-attributes.schema.json#/definitions/SVGAnimationAdditionAttrs" }
120
- },
121
- "#SVGAnimationAttributeTargetAttrs": {
122
- "type": "array",
123
- "minItems": 0,
124
- "uniqueItems": true,
125
- "items": { "$ref": "./global-attributes.schema.json#/definitions/SVGAnimationAttributeTargetAttrs" }
126
- },
127
- "#SVGAnimationEventAttrs": {
128
- "type": "array",
129
- "minItems": 0,
130
- "uniqueItems": true,
131
- "items": { "$ref": "./global-attributes.schema.json#/definitions/SVGAnimationEventAttrs" }
132
- },
133
- "#SVGAnimationTargetElementAttrs": {
134
- "type": "array",
135
- "minItems": 0,
136
- "uniqueItems": true,
137
- "items": { "$ref": "./global-attributes.schema.json#/definitions/SVGAnimationTargetElementAttrs" }
138
- },
139
- "#SVGAnimationTimingAttrs": {
140
- "type": "array",
141
- "minItems": 0,
142
- "uniqueItems": true,
143
- "items": { "$ref": "./global-attributes.schema.json#/definitions/SVGAnimationTimingAttrs" }
144
- },
145
- "#SVGAnimationValueAttrs": {
146
- "type": "array",
147
- "minItems": 0,
148
- "uniqueItems": true,
149
- "items": { "$ref": "./global-attributes.schema.json#/definitions/SVGAnimationValueAttrs" }
150
- },
151
- "#SVGConditionalProcessingAttrs": {
152
- "type": "array",
153
- "minItems": 0,
154
- "uniqueItems": true,
155
- "items": { "$ref": "./global-attributes.schema.json#/definitions/SVGConditionalProcessingAttrs" }
156
- },
157
- "#SVGCoreAttrs": {
158
- "type": "array",
159
- "minItems": 0,
160
- "uniqueItems": true,
161
- "items": { "$ref": "./global-attributes.schema.json#/definitions/SVGCoreAttrs" }
162
- },
163
- "#SVGFilterPrimitiveAttrs": {
164
- "type": "array",
165
- "minItems": 0,
166
- "uniqueItems": true,
167
- "items": { "$ref": "./global-attributes.schema.json#/definitions/SVGFilterPrimitiveAttrs" }
168
- },
169
- "#SVGPresentationAttrs": {
170
- "type": "array",
171
- "minItems": 0,
172
- "uniqueItems": true,
173
- "items": { "$ref": "./global-attributes.schema.json#/definitions/SVGPresentationAttrs" }
174
- },
175
- "#SVGTransferFunctionAttrs": {
176
- "type": "array",
177
- "minItems": 0,
178
- "uniqueItems": true,
179
- "items": { "$ref": "./global-attributes.schema.json#/definitions/SVGTransferFunctionAttrs" }
180
- },
181
- "#XLinkAttrs": {
182
- "type": "array",
183
- "minItems": 0,
184
- "uniqueItems": true,
185
- "items": { "$ref": "./global-attributes.schema.json#/definitions/XLinkAttrs" }
186
- }
187
- }
188
- },
189
- "Attributes": {
190
- "type": "object",
191
- "additionalProperties": false,
192
- "propertyNames": { "$ref": "#/definitions/AttributeName" },
193
- "patternProperties": { ".*": { "$ref": "#/definitions/AttributeJSON" } }
194
- }
195
- },
196
- "type": "object",
197
- "additionalProperties": false,
198
- "required": ["tag", "attributes"],
199
- "properties": {
200
- "tag": { "type": "string" },
201
- "global": { "$ref": "#/definitions/GlobalAttributes" },
202
- "attributes": { "$ref": "#/definitions/Attributes" }
203
- }
204
- }