1use std::{hash::RandomState, sync::LazyLock};
2
3use ordered_hash_map::OrderedHashMap;
4
5use crate::{
6 AriaPropertyDefinitionType,
7 types::{AriaProperty, AriaPropertyDefinition},
8};
9
10pub static ARIA: LazyLock<OrderedHashMap<AriaProperty, AriaPropertyDefinition, RandomState>> =
11 LazyLock::new(|| {
12 OrderedHashMap::from_iter([
13 (
14 AriaProperty::AriaActivedescendant,
15 AriaPropertyDefinition {
16 r#type: AriaPropertyDefinitionType::Id,
17 values: None,
18 allow_undefined: None,
19 },
20 ),
21 (
22 AriaProperty::AriaAtomic,
23 AriaPropertyDefinition {
24 r#type: AriaPropertyDefinitionType::Boolean,
25 values: None,
26 allow_undefined: None,
27 },
28 ),
29 (
30 AriaProperty::AriaAutocomplete,
31 AriaPropertyDefinition {
32 r#type: AriaPropertyDefinitionType::Token,
33 values: Some(vec![
34 "inline".into(),
35 "list".into(),
36 "both".into(),
37 "none".into(),
38 ]),
39 allow_undefined: None,
40 },
41 ),
42 (
43 AriaProperty::AriaBraillelabel,
44 AriaPropertyDefinition {
45 r#type: AriaPropertyDefinitionType::String,
46 values: None,
47 allow_undefined: None,
48 },
49 ),
50 (
51 AriaProperty::AriaBrailleroledescription,
52 AriaPropertyDefinition {
53 r#type: AriaPropertyDefinitionType::String,
54 values: None,
55 allow_undefined: None,
56 },
57 ),
58 (
59 AriaProperty::AriaBusy,
60 AriaPropertyDefinition {
61 r#type: AriaPropertyDefinitionType::Boolean,
62 values: None,
63 allow_undefined: None,
64 },
65 ),
66 (
67 AriaProperty::AriaChecked,
68 AriaPropertyDefinition {
69 r#type: AriaPropertyDefinitionType::Tristate,
70 values: None,
71 allow_undefined: None,
72 },
73 ),
74 (
75 AriaProperty::AriaColcount,
76 AriaPropertyDefinition {
77 r#type: AriaPropertyDefinitionType::Integer,
78 values: None,
79 allow_undefined: None,
80 },
81 ),
82 (
83 AriaProperty::AriaColindex,
84 AriaPropertyDefinition {
85 r#type: AriaPropertyDefinitionType::Integer,
86 values: None,
87 allow_undefined: None,
88 },
89 ),
90 (
91 AriaProperty::AriaColspan,
92 AriaPropertyDefinition {
93 r#type: AriaPropertyDefinitionType::Integer,
94 values: None,
95 allow_undefined: None,
96 },
97 ),
98 (
99 AriaProperty::AriaControls,
100 AriaPropertyDefinition {
101 r#type: AriaPropertyDefinitionType::Idlist,
102 values: None,
103 allow_undefined: None,
104 },
105 ),
106 (
107 AriaProperty::AriaCurrent,
108 AriaPropertyDefinition {
109 r#type: AriaPropertyDefinitionType::Token,
110 values: Some(vec![
111 "page".into(),
112 "step".into(),
113 "location".into(),
114 "date".into(),
115 "time".into(),
116 "true".into(),
117 "false".into(),
118 ]),
119 allow_undefined: None,
120 },
121 ),
122 (
123 AriaProperty::AriaDescribedby,
124 AriaPropertyDefinition {
125 r#type: AriaPropertyDefinitionType::Idlist,
126 values: None,
127 allow_undefined: None,
128 },
129 ),
130 (
131 AriaProperty::AriaDescription,
132 AriaPropertyDefinition {
133 r#type: AriaPropertyDefinitionType::String,
134 values: None,
135 allow_undefined: None,
136 },
137 ),
138 (
139 AriaProperty::AriaDetails,
140 AriaPropertyDefinition {
141 r#type: AriaPropertyDefinitionType::Id,
142 values: None,
143 allow_undefined: None,
144 },
145 ),
146 (
147 AriaProperty::AriaDisabled,
148 AriaPropertyDefinition {
149 r#type: AriaPropertyDefinitionType::Boolean,
150 values: None,
151 allow_undefined: None,
152 },
153 ),
154 (
155 AriaProperty::AriaDropeffect,
156 AriaPropertyDefinition {
157 r#type: AriaPropertyDefinitionType::Tokenlist,
158 values: Some(vec![
159 "copy".into(),
160 "execute".into(),
161 "link".into(),
162 "move".into(),
163 "none".into(),
164 "popup".into(),
165 ]),
166 allow_undefined: None,
167 },
168 ),
169 (
170 AriaProperty::AriaErrormessage,
171 AriaPropertyDefinition {
172 r#type: AriaPropertyDefinitionType::Id,
173 values: None,
174 allow_undefined: None,
175 },
176 ),
177 (
178 AriaProperty::AriaExpanded,
179 AriaPropertyDefinition {
180 r#type: AriaPropertyDefinitionType::Boolean,
181 values: None,
182 allow_undefined: Some(true),
183 },
184 ),
185 (
186 AriaProperty::AriaFlowto,
187 AriaPropertyDefinition {
188 r#type: AriaPropertyDefinitionType::Idlist,
189 values: None,
190 allow_undefined: None,
191 },
192 ),
193 (
194 AriaProperty::AriaGrabbed,
195 AriaPropertyDefinition {
196 r#type: AriaPropertyDefinitionType::Boolean,
197 values: None,
198 allow_undefined: Some(true),
199 },
200 ),
201 (
202 AriaProperty::AriaHaspopup,
203 AriaPropertyDefinition {
204 r#type: AriaPropertyDefinitionType::Token,
205 values: Some(vec![
206 "false".into(),
207 "true".into(),
208 "menu".into(),
209 "listbox".into(),
210 "tree".into(),
211 "grid".into(),
212 "dialog".into(),
213 ]),
214 allow_undefined: None,
215 },
216 ),
217 (
218 AriaProperty::AriaHidden,
219 AriaPropertyDefinition {
220 r#type: AriaPropertyDefinitionType::Boolean,
221 values: None,
222 allow_undefined: Some(true),
223 },
224 ),
225 (
226 AriaProperty::AriaInvalid,
227 AriaPropertyDefinition {
228 r#type: AriaPropertyDefinitionType::Token,
229 values: Some(vec![
230 "grammar".into(),
231 "false".into(),
232 "spelling".into(),
233 "true".into(),
234 ]),
235 allow_undefined: None,
236 },
237 ),
238 (
239 AriaProperty::AriaKeyshortcuts,
240 AriaPropertyDefinition {
241 r#type: AriaPropertyDefinitionType::String,
242 values: None,
243 allow_undefined: None,
244 },
245 ),
246 (
247 AriaProperty::AriaLabel,
248 AriaPropertyDefinition {
249 r#type: AriaPropertyDefinitionType::String,
250 values: None,
251 allow_undefined: None,
252 },
253 ),
254 (
255 AriaProperty::AriaLabelledby,
256 AriaPropertyDefinition {
257 r#type: AriaPropertyDefinitionType::Idlist,
258 values: None,
259 allow_undefined: None,
260 },
261 ),
262 (
263 AriaProperty::AriaLevel,
264 AriaPropertyDefinition {
265 r#type: AriaPropertyDefinitionType::Integer,
266 values: None,
267 allow_undefined: None,
268 },
269 ),
270 (
271 AriaProperty::AriaLive,
272 AriaPropertyDefinition {
273 r#type: AriaPropertyDefinitionType::Token,
274 values: Some(vec!["assertive".into(), "off".into(), "polite".into()]),
275 allow_undefined: None,
276 },
277 ),
278 (
279 AriaProperty::AriaModal,
280 AriaPropertyDefinition {
281 r#type: AriaPropertyDefinitionType::Boolean,
282 values: None,
283 allow_undefined: None,
284 },
285 ),
286 (
287 AriaProperty::AriaMultiline,
288 AriaPropertyDefinition {
289 r#type: AriaPropertyDefinitionType::Boolean,
290 values: None,
291 allow_undefined: None,
292 },
293 ),
294 (
295 AriaProperty::AriaMultiselectable,
296 AriaPropertyDefinition {
297 r#type: AriaPropertyDefinitionType::Boolean,
298 values: None,
299 allow_undefined: None,
300 },
301 ),
302 (
303 AriaProperty::AriaOrientation,
304 AriaPropertyDefinition {
305 r#type: AriaPropertyDefinitionType::Token,
306 values: Some(vec![
307 "vertical".into(),
308 "undefined".into(),
309 "horizontal".into(),
310 ]),
311 allow_undefined: None,
312 },
313 ),
314 (
315 AriaProperty::AriaOwns,
316 AriaPropertyDefinition {
317 r#type: AriaPropertyDefinitionType::Idlist,
318 values: None,
319 allow_undefined: None,
320 },
321 ),
322 (
323 AriaProperty::AriaPlaceholder,
324 AriaPropertyDefinition {
325 r#type: AriaPropertyDefinitionType::String,
326 values: None,
327 allow_undefined: None,
328 },
329 ),
330 (
331 AriaProperty::AriaPosinset,
332 AriaPropertyDefinition {
333 r#type: AriaPropertyDefinitionType::Integer,
334 values: None,
335 allow_undefined: None,
336 },
337 ),
338 (
339 AriaProperty::AriaPressed,
340 AriaPropertyDefinition {
341 r#type: AriaPropertyDefinitionType::Tristate,
342 values: None,
343 allow_undefined: None,
344 },
345 ),
346 (
347 AriaProperty::AriaReadonly,
348 AriaPropertyDefinition {
349 r#type: AriaPropertyDefinitionType::Boolean,
350 values: None,
351 allow_undefined: None,
352 },
353 ),
354 (
355 AriaProperty::AriaRelevant,
356 AriaPropertyDefinition {
357 r#type: AriaPropertyDefinitionType::Tokenlist,
358 values: Some(vec![
359 "additions".into(),
360 "all".into(),
361 "removals".into(),
362 "text".into(),
363 ]),
364 allow_undefined: None,
365 },
366 ),
367 (
368 AriaProperty::AriaRequired,
369 AriaPropertyDefinition {
370 r#type: AriaPropertyDefinitionType::Boolean,
371 values: None,
372 allow_undefined: None,
373 },
374 ),
375 (
376 AriaProperty::AriaRoledescription,
377 AriaPropertyDefinition {
378 r#type: AriaPropertyDefinitionType::String,
379 values: None,
380 allow_undefined: None,
381 },
382 ),
383 (
384 AriaProperty::AriaRowcount,
385 AriaPropertyDefinition {
386 r#type: AriaPropertyDefinitionType::Integer,
387 values: None,
388 allow_undefined: None,
389 },
390 ),
391 (
392 AriaProperty::AriaRowindex,
393 AriaPropertyDefinition {
394 r#type: AriaPropertyDefinitionType::Integer,
395 values: None,
396 allow_undefined: None,
397 },
398 ),
399 (
400 AriaProperty::AriaRowspan,
401 AriaPropertyDefinition {
402 r#type: AriaPropertyDefinitionType::Integer,
403 values: None,
404 allow_undefined: None,
405 },
406 ),
407 (
408 AriaProperty::AriaSelected,
409 AriaPropertyDefinition {
410 r#type: AriaPropertyDefinitionType::Boolean,
411 values: None,
412 allow_undefined: Some(true),
413 },
414 ),
415 (
416 AriaProperty::AriaSetsize,
417 AriaPropertyDefinition {
418 r#type: AriaPropertyDefinitionType::Integer,
419 values: None,
420 allow_undefined: None,
421 },
422 ),
423 (
424 AriaProperty::AriaRelevant,
425 AriaPropertyDefinition {
426 r#type: AriaPropertyDefinitionType::Token,
427 values: Some(vec![
428 "ascending".into(),
429 "descending".into(),
430 "none".into(),
431 "other".into(),
432 ]),
433 allow_undefined: None,
434 },
435 ),
436 (
437 AriaProperty::AriaValuemax,
438 AriaPropertyDefinition {
439 r#type: AriaPropertyDefinitionType::Number,
440 values: None,
441 allow_undefined: None,
442 },
443 ),
444 (
445 AriaProperty::AriaValuemin,
446 AriaPropertyDefinition {
447 r#type: AriaPropertyDefinitionType::Number,
448 values: None,
449 allow_undefined: None,
450 },
451 ),
452 (
453 AriaProperty::AriaValuenow,
454 AriaPropertyDefinition {
455 r#type: AriaPropertyDefinitionType::Number,
456 values: None,
457 allow_undefined: None,
458 },
459 ),
460 (
461 AriaProperty::AriaValuetext,
462 AriaPropertyDefinition {
463 r#type: AriaPropertyDefinitionType::String,
464 values: None,
465 allow_undefined: None,
466 },
467 ),
468 ])
469 });