1use std::{
2 collections::HashMap,
3 fmt::{Display, Formatter},
4 str::FromStr,
5};
6
7#[derive(Debug, PartialEq, Eq)]
8pub struct UnknownRoleError;
9
10#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
11pub enum AriaAbstractRole {
12 Command,
13 Composite,
14 Input,
15 Landmark,
16 Range,
17 Roletype,
18 Section,
19 Sectionhead,
20 Select,
21 Structure,
22 Widget,
23 Window,
24}
25
26impl FromStr for AriaAbstractRole {
27 type Err = UnknownRoleError;
28
29 fn from_str(s: &str) -> Result<Self, Self::Err> {
30 match s {
31 "command" => Ok(AriaAbstractRole::Command),
32 "composite" => Ok(AriaAbstractRole::Composite),
33 "input" => Ok(AriaAbstractRole::Input),
34 "landmark" => Ok(AriaAbstractRole::Landmark),
35 "range" => Ok(AriaAbstractRole::Range),
36 "roletype" => Ok(AriaAbstractRole::Roletype),
37 "section" => Ok(AriaAbstractRole::Section),
38 "sectionhead" => Ok(AriaAbstractRole::Sectionhead),
39 "select" => Ok(AriaAbstractRole::Select),
40 "structure" => Ok(AriaAbstractRole::Structure),
41 "widget" => Ok(AriaAbstractRole::Widget),
42 "window" => Ok(AriaAbstractRole::Window),
43 _ => Err(UnknownRoleError),
44 }
45 }
46}
47
48impl Display for AriaAbstractRole {
49 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
50 write!(
51 f,
52 "{}",
53 match self {
54 AriaAbstractRole::Command => "command",
55 AriaAbstractRole::Composite => "composite",
56 AriaAbstractRole::Input => "input",
57 AriaAbstractRole::Landmark => "landmark",
58 AriaAbstractRole::Range => "range",
59 AriaAbstractRole::Roletype => "roletype",
60 AriaAbstractRole::Section => "section",
61 AriaAbstractRole::Sectionhead => "sectionhead",
62 AriaAbstractRole::Select => "select",
63 AriaAbstractRole::Structure => "structure",
64 AriaAbstractRole::Widget => "widget",
65 AriaAbstractRole::Window => "window",
66 }
67 )
68 }
69}
70
71#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
72pub enum AriaWidgetRole {
73 Button,
74 Checkbox,
75 Gridcell,
76 Link,
77 Menuitem,
78 Menuitemcheckbox,
79 Menuitemradio,
80 Option,
81 Progressbar,
82 Radio,
83 Scrollbar,
84 Searchbox,
85 Slider,
86 Spinbutton,
87 Switch,
88 Tab,
89 Tabpanel,
90 Textbox,
91 Treeitem,
92}
93
94impl FromStr for AriaWidgetRole {
95 type Err = UnknownRoleError;
96
97 fn from_str(s: &str) -> Result<Self, Self::Err> {
98 match s {
99 "button" => Ok(AriaWidgetRole::Button),
100 "checkbox" => Ok(AriaWidgetRole::Checkbox),
101 "gridcell" => Ok(AriaWidgetRole::Gridcell),
102 "link" => Ok(AriaWidgetRole::Link),
103 "menuitem" => Ok(AriaWidgetRole::Menuitem),
104 "menuitemcheckbox" => Ok(AriaWidgetRole::Menuitemcheckbox),
105 "menuitemradio" => Ok(AriaWidgetRole::Menuitemradio),
106 "option" => Ok(AriaWidgetRole::Option),
107 "progressbar" => Ok(AriaWidgetRole::Progressbar),
108 "radio" => Ok(AriaWidgetRole::Radio),
109 "scrollbar" => Ok(AriaWidgetRole::Scrollbar),
110 "searchbox" => Ok(AriaWidgetRole::Searchbox),
111 "slider" => Ok(AriaWidgetRole::Slider),
112 "spinbutton" => Ok(AriaWidgetRole::Spinbutton),
113 "switch" => Ok(AriaWidgetRole::Switch),
114 "tab" => Ok(AriaWidgetRole::Tab),
115 "tabpanel" => Ok(AriaWidgetRole::Tabpanel),
116 "textbox" => Ok(AriaWidgetRole::Textbox),
117 "treeitem" => Ok(AriaWidgetRole::Treeitem),
118 _ => Err(UnknownRoleError),
119 }
120 }
121}
122
123impl Display for AriaWidgetRole {
124 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
125 write!(
126 f,
127 "{}",
128 match self {
129 AriaWidgetRole::Button => "button",
130 AriaWidgetRole::Checkbox => "checkbox",
131 AriaWidgetRole::Gridcell => "gridcell",
132 AriaWidgetRole::Link => "link",
133 AriaWidgetRole::Menuitem => "menuitem",
134 AriaWidgetRole::Menuitemcheckbox => "menuitemcheckbox",
135 AriaWidgetRole::Menuitemradio => "menuitemradio",
136 AriaWidgetRole::Option => "option",
137 AriaWidgetRole::Progressbar => "progressbar",
138 AriaWidgetRole::Radio => "radio",
139 AriaWidgetRole::Scrollbar => "scrollbar",
140 AriaWidgetRole::Searchbox => "searchbox",
141 AriaWidgetRole::Slider => "slider",
142 AriaWidgetRole::Spinbutton => "spinbutton",
143 AriaWidgetRole::Switch => "switch",
144 AriaWidgetRole::Tab => "tab",
145 AriaWidgetRole::Tabpanel => "tabpanel",
146 AriaWidgetRole::Textbox => "textbox",
147 AriaWidgetRole::Treeitem => "treeitem",
148 }
149 )
150 }
151}
152
153#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
154pub enum AriaCompositeWidgetRole {
155 Combobox,
156 Grid,
157 Listbox,
158 Menu,
159 Menubar,
160 Radiogroup,
161 Tablist,
162 Tree,
163 Treegrid,
164}
165
166impl FromStr for AriaCompositeWidgetRole {
167 type Err = UnknownRoleError;
168
169 fn from_str(s: &str) -> Result<Self, Self::Err> {
170 match s {
171 "combobox" => Ok(AriaCompositeWidgetRole::Combobox),
172 "grid" => Ok(AriaCompositeWidgetRole::Grid),
173 "listbox" => Ok(AriaCompositeWidgetRole::Listbox),
174 "menu" => Ok(AriaCompositeWidgetRole::Menu),
175 "menubar" => Ok(AriaCompositeWidgetRole::Menubar),
176 "radiogroup" => Ok(AriaCompositeWidgetRole::Radiogroup),
177 "tablist" => Ok(AriaCompositeWidgetRole::Tablist),
178 "tree" => Ok(AriaCompositeWidgetRole::Tree),
179 "treegrid" => Ok(AriaCompositeWidgetRole::Treegrid),
180 _ => Err(UnknownRoleError),
181 }
182 }
183}
184
185impl Display for AriaCompositeWidgetRole {
186 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
187 write!(
188 f,
189 "{}",
190 match self {
191 AriaCompositeWidgetRole::Combobox => "combobox",
192 AriaCompositeWidgetRole::Grid => "grid",
193 AriaCompositeWidgetRole::Listbox => "listbox",
194 AriaCompositeWidgetRole::Menu => "menu",
195 AriaCompositeWidgetRole::Menubar => "menubar",
196 AriaCompositeWidgetRole::Radiogroup => "radiogroup",
197 AriaCompositeWidgetRole::Tablist => "tablist",
198 AriaCompositeWidgetRole::Tree => "tree",
199 AriaCompositeWidgetRole::Treegrid => "treegrid",
200 }
201 )
202 }
203}
204
205#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
206pub enum AriaDocumentStructureRole {
207 Application,
208 Article,
209 Blockquote,
210 Caption,
211 Cell,
212 Columnheader,
213 Definition,
214 Deletion,
215 Directory,
216 Document,
217 Emphasis,
218 Feed,
219 Figure,
220 Generic,
221 Group,
222 Heading,
223 Img,
224 Insertion,
225 List,
226 Listitem,
227 Mark,
228 Math,
229 Meter,
230 None,
231 Note,
232 Paragraph,
233 Presentation,
234 Row,
235 Rowgroup,
236 Rowheader,
237 Separator,
238 Strong,
239 Subscript,
240 Superscript,
241 Table,
242 Term,
243 Time,
244 Toolbar,
245 Tooltip,
246}
247
248impl FromStr for AriaDocumentStructureRole {
249 type Err = UnknownRoleError;
250
251 fn from_str(s: &str) -> Result<Self, Self::Err> {
252 match s {
253 "application" => Ok(AriaDocumentStructureRole::Application),
254 "article" => Ok(AriaDocumentStructureRole::Article),
255 "blockquote" => Ok(AriaDocumentStructureRole::Blockquote),
256 "caption" => Ok(AriaDocumentStructureRole::Caption),
257 "cell" => Ok(AriaDocumentStructureRole::Cell),
258 "columnheader" => Ok(AriaDocumentStructureRole::Columnheader),
259 "definition" => Ok(AriaDocumentStructureRole::Definition),
260 "deletion" => Ok(AriaDocumentStructureRole::Deletion),
261 "directory" => Ok(AriaDocumentStructureRole::Directory),
262 "document" => Ok(AriaDocumentStructureRole::Document),
263 "emphasis" => Ok(AriaDocumentStructureRole::Emphasis),
264 "feed" => Ok(AriaDocumentStructureRole::Feed),
265 "figure" => Ok(AriaDocumentStructureRole::Figure),
266 "generic" => Ok(AriaDocumentStructureRole::Generic),
267 "group" => Ok(AriaDocumentStructureRole::Group),
268 "heading" => Ok(AriaDocumentStructureRole::Heading),
269 "img" => Ok(AriaDocumentStructureRole::Img),
270 "insertion" => Ok(AriaDocumentStructureRole::Insertion),
271 "list" => Ok(AriaDocumentStructureRole::List),
272 "listitem" => Ok(AriaDocumentStructureRole::Listitem),
273 "mark" => Ok(AriaDocumentStructureRole::Mark),
274 "math" => Ok(AriaDocumentStructureRole::Math),
275 "meter" => Ok(AriaDocumentStructureRole::Meter),
276 "none" => Ok(AriaDocumentStructureRole::None),
277 "note" => Ok(AriaDocumentStructureRole::Note),
278 "paragraph" => Ok(AriaDocumentStructureRole::Paragraph),
279 "presentation" => Ok(AriaDocumentStructureRole::Presentation),
280 "row" => Ok(AriaDocumentStructureRole::Row),
281 "rowgroup" => Ok(AriaDocumentStructureRole::Rowgroup),
282 "rowheader" => Ok(AriaDocumentStructureRole::Rowheader),
283 "separator" => Ok(AriaDocumentStructureRole::Separator),
284 "strong" => Ok(AriaDocumentStructureRole::Strong),
285 "subscript" => Ok(AriaDocumentStructureRole::Subscript),
286 "superscript" => Ok(AriaDocumentStructureRole::Superscript),
287 "table" => Ok(AriaDocumentStructureRole::Table),
288 "term" => Ok(AriaDocumentStructureRole::Term),
289 "time" => Ok(AriaDocumentStructureRole::Time),
290 "toolbar" => Ok(AriaDocumentStructureRole::Toolbar),
291 "tooltip" => Ok(AriaDocumentStructureRole::Tooltip),
292 _ => Err(UnknownRoleError),
293 }
294 }
295}
296
297impl Display for AriaDocumentStructureRole {
298 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
299 write!(
300 f,
301 "{}",
302 match self {
303 AriaDocumentStructureRole::Application => "application",
304 AriaDocumentStructureRole::Article => "article",
305 AriaDocumentStructureRole::Blockquote => "blockquote",
306 AriaDocumentStructureRole::Caption => "caption",
307 AriaDocumentStructureRole::Cell => "cell",
308 AriaDocumentStructureRole::Columnheader => "columnheader",
309 AriaDocumentStructureRole::Definition => "definition",
310 AriaDocumentStructureRole::Deletion => "deletion",
311 AriaDocumentStructureRole::Directory => "directory",
312 AriaDocumentStructureRole::Document => "document",
313 AriaDocumentStructureRole::Emphasis => "emphasis",
314 AriaDocumentStructureRole::Feed => "feed",
315 AriaDocumentStructureRole::Figure => "figure",
316 AriaDocumentStructureRole::Generic => "generic",
317 AriaDocumentStructureRole::Group => "group",
318 AriaDocumentStructureRole::Heading => "heading",
319 AriaDocumentStructureRole::Img => "img",
320 AriaDocumentStructureRole::Insertion => "insertion",
321 AriaDocumentStructureRole::List => "list",
322 AriaDocumentStructureRole::Listitem => "listitem",
323 AriaDocumentStructureRole::Mark => "mark",
324 AriaDocumentStructureRole::Math => "math",
325 AriaDocumentStructureRole::Meter => "meter",
326 AriaDocumentStructureRole::None => "none",
327 AriaDocumentStructureRole::Note => "note",
328 AriaDocumentStructureRole::Paragraph => "paragraph",
329 AriaDocumentStructureRole::Presentation => "presentation",
330 AriaDocumentStructureRole::Row => "row",
331 AriaDocumentStructureRole::Rowgroup => "rowgroup",
332 AriaDocumentStructureRole::Rowheader => "rowheader",
333 AriaDocumentStructureRole::Separator => "separator",
334 AriaDocumentStructureRole::Strong => "strong",
335 AriaDocumentStructureRole::Subscript => "subscript",
336 AriaDocumentStructureRole::Superscript => "superscript",
337 AriaDocumentStructureRole::Table => "table",
338 AriaDocumentStructureRole::Term => "term",
339 AriaDocumentStructureRole::Time => "time",
340 AriaDocumentStructureRole::Toolbar => "toolbar",
341 AriaDocumentStructureRole::Tooltip => "tooltip",
342 }
343 )
344 }
345}
346
347#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
348pub enum AriaLandmarkRole {
349 Banner,
350 Complementary,
351 Contentinfo,
352 Form,
353 Main,
354 Navigation,
355 Region,
356 Search,
357}
358
359impl FromStr for AriaLandmarkRole {
360 type Err = UnknownRoleError;
361
362 fn from_str(s: &str) -> Result<Self, Self::Err> {
363 match s {
364 "banner" => Ok(AriaLandmarkRole::Banner),
365 "complementary" => Ok(AriaLandmarkRole::Complementary),
366 "contentinfo" => Ok(AriaLandmarkRole::Contentinfo),
367 "form" => Ok(AriaLandmarkRole::Form),
368 "main" => Ok(AriaLandmarkRole::Main),
369 "navigation" => Ok(AriaLandmarkRole::Navigation),
370 "region" => Ok(AriaLandmarkRole::Region),
371 "search" => Ok(AriaLandmarkRole::Search),
372 _ => Err(UnknownRoleError),
373 }
374 }
375}
376
377impl Display for AriaLandmarkRole {
378 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
379 write!(
380 f,
381 "{}",
382 match self {
383 AriaLandmarkRole::Banner => "banner",
384 AriaLandmarkRole::Complementary => "complementary",
385 AriaLandmarkRole::Contentinfo => "contentinfo",
386 AriaLandmarkRole::Form => "form",
387 AriaLandmarkRole::Main => "main",
388 AriaLandmarkRole::Navigation => "navigation",
389 AriaLandmarkRole::Region => "region",
390 AriaLandmarkRole::Search => "search",
391 }
392 )
393 }
394}
395
396#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
397pub enum AriaLiveRegionRole {
398 Alert,
399 Log,
400 Marquee,
401 Status,
402 Timer,
403}
404
405impl FromStr for AriaLiveRegionRole {
406 type Err = UnknownRoleError;
407
408 fn from_str(s: &str) -> Result<Self, Self::Err> {
409 match s {
410 "alert" => Ok(AriaLiveRegionRole::Alert),
411 "log" => Ok(AriaLiveRegionRole::Log),
412 "marquee" => Ok(AriaLiveRegionRole::Marquee),
413 "status" => Ok(AriaLiveRegionRole::Status),
414 "timer" => Ok(AriaLiveRegionRole::Timer),
415 _ => Err(UnknownRoleError),
416 }
417 }
418}
419
420impl Display for AriaLiveRegionRole {
421 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
422 write!(
423 f,
424 "{}",
425 match self {
426 AriaLiveRegionRole::Alert => "alert",
427 AriaLiveRegionRole::Log => "log",
428 AriaLiveRegionRole::Marquee => "marquee",
429 AriaLiveRegionRole::Status => "status",
430 AriaLiveRegionRole::Timer => "timer",
431 }
432 )
433 }
434}
435
436#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
437pub enum AriaWindowRole {
438 Alertdialog,
439 Dialog,
440}
441
442impl FromStr for AriaWindowRole {
443 type Err = UnknownRoleError;
444
445 fn from_str(s: &str) -> Result<Self, Self::Err> {
446 match s {
447 "alertdialog" => Ok(AriaWindowRole::Alertdialog),
448 "dialog" => Ok(AriaWindowRole::Dialog),
449 _ => Err(UnknownRoleError),
450 }
451 }
452}
453
454impl Display for AriaWindowRole {
455 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
456 write!(
457 f,
458 "{}",
459 match self {
460 AriaWindowRole::Alertdialog => "alertdialog",
461 AriaWindowRole::Dialog => "dialog",
462 }
463 )
464 }
465}
466
467#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
468pub enum AriaUncategorizedRole {
469 Code,
470}
471
472impl FromStr for AriaUncategorizedRole {
473 type Err = UnknownRoleError;
474
475 fn from_str(s: &str) -> Result<Self, Self::Err> {
476 match s {
477 "code" => Ok(AriaUncategorizedRole::Code),
478 _ => Err(UnknownRoleError),
479 }
480 }
481}
482
483impl Display for AriaUncategorizedRole {
484 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
485 write!(
486 f,
487 "{}",
488 match self {
489 AriaUncategorizedRole::Code => "code",
490 }
491 )
492 }
493}
494
495#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
496pub enum AriaDpubRole {
497 DocAbstract,
498 DocAcknowledgments,
499 DocAfterword,
500 DocAppendix,
501 DocBacklink,
502 DocBiblioentry,
503 DocBibliography,
504 DocBiblioref,
505 DocChapter,
506 DocColophon,
507 DocConclusion,
508 DocCover,
509 DocCredit,
510 DocCredits,
511 DocDedication,
512 DocEndnote,
513 DocEndnotes,
514 DocEpigraph,
515 DocEpilogue,
516 DocErrata,
517 DocExample,
518 DocFootnote,
519 DocForeword,
520 DocGlossary,
521 DocGlossref,
522 DocIndex,
523 DocIntroduction,
524 DocNoteref,
525 DocNotice,
526 DocPagebreak,
527 DocPageheader,
528 DocPagefooter,
529 DocPagelist,
530 DocPart,
531 DocPreface,
532 DocPrologue,
533 DocPullquote,
534 DocQna,
535 DocSubtitle,
536 DocTip,
537 DocToc,
538}
539
540impl FromStr for AriaDpubRole {
541 type Err = UnknownRoleError;
542
543 fn from_str(s: &str) -> Result<Self, Self::Err> {
544 match s {
545 "doc-abstract" => Ok(AriaDpubRole::DocAbstract),
546 "doc-acknowledgments" => Ok(AriaDpubRole::DocAcknowledgments),
547 "doc-afterword" => Ok(AriaDpubRole::DocAfterword),
548 "doc-appendix" => Ok(AriaDpubRole::DocAppendix),
549 "doc-backlink" => Ok(AriaDpubRole::DocBacklink),
550 "doc-biblioentry" => Ok(AriaDpubRole::DocBiblioentry),
551 "doc-bibliography" => Ok(AriaDpubRole::DocBibliography),
552 "doc-biblioref" => Ok(AriaDpubRole::DocBiblioref),
553 "doc-chapter" => Ok(AriaDpubRole::DocChapter),
554 "doc-colophon" => Ok(AriaDpubRole::DocColophon),
555 "doc-conclusion" => Ok(AriaDpubRole::DocConclusion),
556 "doc-cover" => Ok(AriaDpubRole::DocCover),
557 "doc-credit" => Ok(AriaDpubRole::DocCredit),
558 "doc-credits" => Ok(AriaDpubRole::DocCredits),
559 "doc-dedication" => Ok(AriaDpubRole::DocDedication),
560 "doc-endnote" => Ok(AriaDpubRole::DocEndnote),
561 "doc-endnotes" => Ok(AriaDpubRole::DocEndnotes),
562 "doc-epigraph" => Ok(AriaDpubRole::DocEpigraph),
563 "doc-epilogue" => Ok(AriaDpubRole::DocEpilogue),
564 "doc-errata" => Ok(AriaDpubRole::DocErrata),
565 "doc-example" => Ok(AriaDpubRole::DocExample),
566 "doc-footnote" => Ok(AriaDpubRole::DocFootnote),
567 "doc-foreword" => Ok(AriaDpubRole::DocForeword),
568 "doc-glossary" => Ok(AriaDpubRole::DocGlossary),
569 "doc-glossref" => Ok(AriaDpubRole::DocGlossref),
570 "doc-index" => Ok(AriaDpubRole::DocIndex),
571 "doc-introduction" => Ok(AriaDpubRole::DocIntroduction),
572 "doc-noteref" => Ok(AriaDpubRole::DocNoteref),
573 "doc-notice" => Ok(AriaDpubRole::DocNotice),
574 "doc-pagebreak" => Ok(AriaDpubRole::DocPagebreak),
575 "doc-pageheader" => Ok(AriaDpubRole::DocPageheader),
576 "doc-pagefooter" => Ok(AriaDpubRole::DocPagefooter),
577 "doc-pagelist" => Ok(AriaDpubRole::DocPagelist),
578 "doc-part" => Ok(AriaDpubRole::DocPart),
579 "doc-preface" => Ok(AriaDpubRole::DocPreface),
580 "doc-prologue" => Ok(AriaDpubRole::DocPrologue),
581 "doc-pullquote" => Ok(AriaDpubRole::DocPullquote),
582 "doc-qna" => Ok(AriaDpubRole::DocQna),
583 "doc-subtitle" => Ok(AriaDpubRole::DocSubtitle),
584 "doc-tip" => Ok(AriaDpubRole::DocTip),
585 "doc-toc" => Ok(AriaDpubRole::DocToc),
586 _ => Err(UnknownRoleError),
587 }
588 }
589}
590
591impl Display for AriaDpubRole {
592 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
593 write!(
594 f,
595 "{}",
596 match self {
597 AriaDpubRole::DocAbstract => "doc-abstract",
598 AriaDpubRole::DocAcknowledgments => "doc-acknowledgments",
599 AriaDpubRole::DocAfterword => "doc-afterword",
600 AriaDpubRole::DocAppendix => "doc-appendix",
601 AriaDpubRole::DocBacklink => "doc-backlink",
602 AriaDpubRole::DocBiblioentry => "doc-biblioentry",
603 AriaDpubRole::DocBibliography => "doc-bibliography",
604 AriaDpubRole::DocBiblioref => "doc-biblioref",
605 AriaDpubRole::DocChapter => "doc-chapter",
606 AriaDpubRole::DocColophon => "doc-colophon",
607 AriaDpubRole::DocConclusion => "doc-conclusion",
608 AriaDpubRole::DocCover => "doc-cover",
609 AriaDpubRole::DocCredit => "doc-credit",
610 AriaDpubRole::DocCredits => "doc-credits",
611 AriaDpubRole::DocDedication => "doc-dedication",
612 AriaDpubRole::DocEndnote => "doc-endnote",
613 AriaDpubRole::DocEndnotes => "doc-endnotes",
614 AriaDpubRole::DocEpigraph => "doc-epigraph",
615 AriaDpubRole::DocEpilogue => "doc-epilogue",
616 AriaDpubRole::DocErrata => "doc-errata",
617 AriaDpubRole::DocExample => "doc-example",
618 AriaDpubRole::DocFootnote => "doc-footnote",
619 AriaDpubRole::DocForeword => "doc-foreword",
620 AriaDpubRole::DocGlossary => "doc-glossary",
621 AriaDpubRole::DocGlossref => "doc-glossref",
622 AriaDpubRole::DocIndex => "doc-index",
623 AriaDpubRole::DocIntroduction => "doc-introduction",
624 AriaDpubRole::DocNoteref => "doc-noteref",
625 AriaDpubRole::DocNotice => "doc-notice",
626 AriaDpubRole::DocPagebreak => "doc-pagebreak",
627 AriaDpubRole::DocPageheader => "doc-pageheader",
628 AriaDpubRole::DocPagefooter => "doc-pagefooter",
629 AriaDpubRole::DocPagelist => "doc-pagelist",
630 AriaDpubRole::DocPart => "doc-part",
631 AriaDpubRole::DocPreface => "doc-preface",
632 AriaDpubRole::DocPrologue => "doc-prologue",
633 AriaDpubRole::DocPullquote => "doc-pullquote",
634 AriaDpubRole::DocQna => "doc-qna",
635 AriaDpubRole::DocSubtitle => "doc-subtitle",
636 AriaDpubRole::DocTip => "doc-tip",
637 AriaDpubRole::DocToc => "doc-toc",
638 }
639 )
640 }
641}
642
643#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
644pub enum AriaGraphicsRole {
645 GraphicsDocument,
646 GraphicsObject,
647 GraphicsSymbol,
648}
649
650impl FromStr for AriaGraphicsRole {
651 type Err = UnknownRoleError;
652
653 fn from_str(s: &str) -> Result<Self, Self::Err> {
654 match s {
655 "graphics-document" => Ok(AriaGraphicsRole::GraphicsDocument),
656 "graphics-object" => Ok(AriaGraphicsRole::GraphicsObject),
657 "graphics-symbol" => Ok(AriaGraphicsRole::GraphicsSymbol),
658 _ => Err(UnknownRoleError),
659 }
660 }
661}
662
663impl Display for AriaGraphicsRole {
664 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
665 write!(
666 f,
667 "{}",
668 match self {
669 AriaGraphicsRole::GraphicsDocument => "graphics-document",
670 AriaGraphicsRole::GraphicsObject => "graphics-object",
671 AriaGraphicsRole::GraphicsSymbol => "graphics-symbol",
672 }
673 )
674 }
675}
676
677#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
678pub enum AriaRole {
679 Alert,
680 Alertdialog,
681 Application,
682 Article,
683 Banner,
684 Blockquote,
685 Button,
686 Caption,
687 Cell,
688 Checkbox,
689 Code,
690 Columnheader,
691 Combobox,
692 Complementary,
693 Contentinfo,
694 Definition,
695 Deletion,
696 Dialog,
697 Directory,
698 DocAbstract,
699 DocAcknowledgments,
700 DocAfterword,
701 DocAppendix,
702 DocBacklink,
703 DocBiblioentry,
704 DocBibliography,
705 DocBiblioref,
706 DocChapter,
707 DocColophon,
708 DocConclusion,
709 DocCover,
710 DocCredit,
711 DocCredits,
712 DocDedication,
713 DocEndnote,
714 DocEndnotes,
715 DocEpigraph,
716 DocEpilogue,
717 DocErrata,
718 DocExample,
719 DocFootnote,
720 DocForeword,
721 DocGlossary,
722 DocGlossref,
723 DocIndex,
724 DocIntroduction,
725 DocNoteref,
726 DocNotice,
727 DocPagebreak,
728 DocPagefooter,
729 DocPageheader,
730 DocPagelist,
731 DocPart,
732 DocPreface,
733 DocPrologue,
734 DocPullquote,
735 DocQna,
736 DocSubtitle,
737 DocTip,
738 DocToc,
739 Document,
740 Emphasis,
741 Feed,
742 Figure,
743 Form,
744 Generic,
745 GraphicsDocument,
746 GraphicsObject,
747 GraphicsSymbol,
748 Grid,
749 Gridcell,
750 Group,
751 Heading,
752 Img,
753 Insertion,
754 Link,
755 List,
756 Listbox,
757 Listitem,
758 Log,
759 Main,
760 Mark,
761 Marquee,
762 Math,
763 Menu,
764 Menubar,
765 Menuitem,
766 Menuitemcheckbox,
767 Menuitemradio,
768 Meter,
769 Navigation,
770 None,
771 Note,
772 Option,
773 Paragraph,
774 Presentation,
775 Progressbar,
776 Radio,
777 Radiogroup,
778 Region,
779 Row,
780 Rowgroup,
781 Rowheader,
782 Scrollbar,
783 Search,
784 Searchbox,
785 Separator,
786 Slider,
787 Spinbutton,
788 Status,
789 Strong,
790 Subscript,
791 Superscript,
792 Switch,
793 Tab,
794 Table,
795 Tablist,
796 Tabpanel,
797 Term,
798 Textbox,
799 Time,
800 Timer,
801 Toolbar,
802 Tooltip,
803 Tree,
804 Treegrid,
805 Treeitem,
806}
807
808impl FromStr for AriaRole {
809 type Err = UnknownRoleError;
810
811 fn from_str(s: &str) -> Result<Self, Self::Err> {
812 match s {
813 "alert" => Ok(AriaRole::Alert),
814 "alertdialog" => Ok(AriaRole::Alertdialog),
815 "application" => Ok(AriaRole::Application),
816 "article" => Ok(AriaRole::Article),
817 "banner" => Ok(AriaRole::Banner),
818 "blockquote" => Ok(AriaRole::Blockquote),
819 "button" => Ok(AriaRole::Button),
820 "caption" => Ok(AriaRole::Caption),
821 "cell" => Ok(AriaRole::Cell),
822 "checkbox" => Ok(AriaRole::Checkbox),
823 "code" => Ok(AriaRole::Code),
824 "columnheader" => Ok(AriaRole::Columnheader),
825 "combobox" => Ok(AriaRole::Combobox),
826 "complementary" => Ok(AriaRole::Complementary),
827 "contentinfo" => Ok(AriaRole::Contentinfo),
828 "definition" => Ok(AriaRole::Definition),
829 "deletion" => Ok(AriaRole::Deletion),
830 "dialog" => Ok(AriaRole::Dialog),
831 "directory" => Ok(AriaRole::Directory),
832 "doc-abstract" => Ok(AriaRole::DocAbstract),
833 "doc-acknowledgments" => Ok(AriaRole::DocAcknowledgments),
834 "doc-afterword" => Ok(AriaRole::DocAfterword),
835 "doc-appendix" => Ok(AriaRole::DocAppendix),
836 "doc-backlink" => Ok(AriaRole::DocBacklink),
837 "doc-biblioentry" => Ok(AriaRole::DocBiblioentry),
838 "doc-bibliography" => Ok(AriaRole::DocBibliography),
839 "doc-biblioref" => Ok(AriaRole::DocBiblioref),
840 "doc-chapter" => Ok(AriaRole::DocChapter),
841 "doc-colophon" => Ok(AriaRole::DocColophon),
842 "doc-conclusion" => Ok(AriaRole::DocConclusion),
843 "doc-cover" => Ok(AriaRole::DocCover),
844 "doc-credit" => Ok(AriaRole::DocCredit),
845 "doc-credits" => Ok(AriaRole::DocCredits),
846 "doc-dedication" => Ok(AriaRole::DocDedication),
847 "doc-endnote" => Ok(AriaRole::DocEndnote),
848 "doc-endnotes" => Ok(AriaRole::DocEndnotes),
849 "doc-epigraph" => Ok(AriaRole::DocEpigraph),
850 "doc-epilogue" => Ok(AriaRole::DocEpilogue),
851 "doc-errata" => Ok(AriaRole::DocErrata),
852 "doc-example" => Ok(AriaRole::DocExample),
853 "doc-footnote" => Ok(AriaRole::DocFootnote),
854 "doc-foreword" => Ok(AriaRole::DocForeword),
855 "doc-glossary" => Ok(AriaRole::DocGlossary),
856 "doc-glossref" => Ok(AriaRole::DocGlossref),
857 "doc-index" => Ok(AriaRole::DocIndex),
858 "doc-introduction" => Ok(AriaRole::DocIntroduction),
859 "doc-noteref" => Ok(AriaRole::DocNoteref),
860 "doc-notice" => Ok(AriaRole::DocNotice),
861 "doc-pagebreak" => Ok(AriaRole::DocPagebreak),
862 "doc-pagefooter" => Ok(AriaRole::DocPagefooter),
863 "doc-pageheader" => Ok(AriaRole::DocPageheader),
864 "doc-pagelist" => Ok(AriaRole::DocPagelist),
865 "doc-part" => Ok(AriaRole::DocPart),
866 "doc-preface" => Ok(AriaRole::DocPreface),
867 "doc-prologue" => Ok(AriaRole::DocPrologue),
868 "doc-pullquote" => Ok(AriaRole::DocPullquote),
869 "doc-qna" => Ok(AriaRole::DocQna),
870 "doc-subtitle" => Ok(AriaRole::DocSubtitle),
871 "doc-tip" => Ok(AriaRole::DocTip),
872 "doc-toc" => Ok(AriaRole::DocToc),
873 "document" => Ok(AriaRole::Document),
874 "emphasis" => Ok(AriaRole::Emphasis),
875 "feed" => Ok(AriaRole::Feed),
876 "figure" => Ok(AriaRole::Figure),
877 "form" => Ok(AriaRole::Form),
878 "generic" => Ok(AriaRole::Generic),
879 "graphics-document" => Ok(AriaRole::GraphicsDocument),
880 "graphics-object" => Ok(AriaRole::GraphicsObject),
881 "graphics-symbol" => Ok(AriaRole::GraphicsSymbol),
882 "grid" => Ok(AriaRole::Grid),
883 "gridcell" => Ok(AriaRole::Gridcell),
884 "group" => Ok(AriaRole::Group),
885 "heading" => Ok(AriaRole::Heading),
886 "img" => Ok(AriaRole::Img),
887 "insertion" => Ok(AriaRole::Insertion),
888 "link" => Ok(AriaRole::Link),
889 "list" => Ok(AriaRole::List),
890 "listbox" => Ok(AriaRole::Listbox),
891 "listitem" => Ok(AriaRole::Listitem),
892 "log" => Ok(AriaRole::Log),
893 "main" => Ok(AriaRole::Main),
894 "mark" => Ok(AriaRole::Mark),
895 "marquee" => Ok(AriaRole::Marquee),
896 "math" => Ok(AriaRole::Math),
897 "menu" => Ok(AriaRole::Menu),
898 "menubar" => Ok(AriaRole::Menubar),
899 "menuitem" => Ok(AriaRole::Menuitem),
900 "menuitemcheckbox" => Ok(AriaRole::Menuitemcheckbox),
901 "menuitemradio" => Ok(AriaRole::Menuitemradio),
902 "meter" => Ok(AriaRole::Meter),
903 "navigation" => Ok(AriaRole::Navigation),
904 "none" => Ok(AriaRole::None),
905 "note" => Ok(AriaRole::Note),
906 "option" => Ok(AriaRole::Option),
907 "paragraph" => Ok(AriaRole::Paragraph),
908 "presentation" => Ok(AriaRole::Presentation),
909 "progressbar" => Ok(AriaRole::Progressbar),
910 "radio" => Ok(AriaRole::Radio),
911 "radiogroup" => Ok(AriaRole::Radiogroup),
912 "region" => Ok(AriaRole::Region),
913 "row" => Ok(AriaRole::Row),
914 "rowgroup" => Ok(AriaRole::Rowgroup),
915 "rowheader" => Ok(AriaRole::Rowheader),
916 "scrollbar" => Ok(AriaRole::Scrollbar),
917 "search" => Ok(AriaRole::Search),
918 "searchbox" => Ok(AriaRole::Searchbox),
919 "separator" => Ok(AriaRole::Separator),
920 "slider" => Ok(AriaRole::Slider),
921 "spinbutton" => Ok(AriaRole::Spinbutton),
922 "status" => Ok(AriaRole::Status),
923 "strong" => Ok(AriaRole::Strong),
924 "subscript" => Ok(AriaRole::Subscript),
925 "superscript" => Ok(AriaRole::Superscript),
926 "switch" => Ok(AriaRole::Switch),
927 "tab" => Ok(AriaRole::Tab),
928 "table" => Ok(AriaRole::Table),
929 "tablist" => Ok(AriaRole::Tablist),
930 "tabpanel" => Ok(AriaRole::Tabpanel),
931 "term" => Ok(AriaRole::Term),
932 "textbox" => Ok(AriaRole::Textbox),
933 "time" => Ok(AriaRole::Time),
934 "timer" => Ok(AriaRole::Timer),
935 "toolbar" => Ok(AriaRole::Toolbar),
936 "tooltip" => Ok(AriaRole::Tooltip),
937 "tree" => Ok(AriaRole::Tree),
938 "treegrid" => Ok(AriaRole::Treegrid),
939 "treeitem" => Ok(AriaRole::Treeitem),
940 _ => Err(UnknownRoleError),
941 }
942 }
943}
944
945impl Display for AriaRole {
946 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
947 write!(
948 f,
949 "{}",
950 match self {
951 AriaRole::Alert => "alert",
952 AriaRole::Alertdialog => "alertdialog",
953 AriaRole::Application => "application",
954 AriaRole::Article => "article",
955 AriaRole::Banner => "banner",
956 AriaRole::Blockquote => "blockquote",
957 AriaRole::Button => "button",
958 AriaRole::Caption => "caption",
959 AriaRole::Cell => "cell",
960 AriaRole::Checkbox => "checkbox",
961 AriaRole::Code => "code",
962 AriaRole::Columnheader => "columnheader",
963 AriaRole::Combobox => "combobox",
964 AriaRole::Complementary => "complementary",
965 AriaRole::Contentinfo => "contentinfo",
966 AriaRole::Definition => "definition",
967 AriaRole::Deletion => "deletion",
968 AriaRole::Dialog => "dialog",
969 AriaRole::Directory => "directory",
970 AriaRole::DocAbstract => "doc-abstract",
971 AriaRole::DocAcknowledgments => "doc-acknowledgments",
972 AriaRole::DocAfterword => "doc-afterword",
973 AriaRole::DocAppendix => "doc-appendix",
974 AriaRole::DocBacklink => "doc-backlink",
975 AriaRole::DocBiblioentry => "doc-biblioentry",
976 AriaRole::DocBibliography => "doc-bibliography",
977 AriaRole::DocBiblioref => "doc-biblioref",
978 AriaRole::DocChapter => "doc-chapter",
979 AriaRole::DocColophon => "doc-colophon",
980 AriaRole::DocConclusion => "doc-conclusion",
981 AriaRole::DocCover => "doc-cover",
982 AriaRole::DocCredit => "doc-credit",
983 AriaRole::DocCredits => "doc-credits",
984 AriaRole::DocDedication => "doc-dedication",
985 AriaRole::DocEndnote => "doc-endnote",
986 AriaRole::DocEndnotes => "doc-endnotes",
987 AriaRole::DocEpigraph => "doc-epigraph",
988 AriaRole::DocEpilogue => "doc-epilogue",
989 AriaRole::DocErrata => "doc-errata",
990 AriaRole::DocExample => "doc-example",
991 AriaRole::DocFootnote => "doc-footnote",
992 AriaRole::DocForeword => "doc-foreword",
993 AriaRole::DocGlossary => "doc-glossary",
994 AriaRole::DocGlossref => "doc-glossref",
995 AriaRole::DocIndex => "doc-index",
996 AriaRole::DocIntroduction => "doc-introduction",
997 AriaRole::DocNoteref => "doc-noteref",
998 AriaRole::DocNotice => "doc-notice",
999 AriaRole::DocPagebreak => "doc-pagebreak",
1000 AriaRole::DocPagefooter => "doc-pagefooter",
1001 AriaRole::DocPageheader => "doc-pageheader",
1002 AriaRole::DocPagelist => "doc-pagelist",
1003 AriaRole::DocPart => "doc-part",
1004 AriaRole::DocPreface => "doc-preface",
1005 AriaRole::DocPrologue => "doc-prologue",
1006 AriaRole::DocPullquote => "doc-pullquote",
1007 AriaRole::DocQna => "doc-qna",
1008 AriaRole::DocSubtitle => "doc-subtitle",
1009 AriaRole::DocTip => "doc-tip",
1010 AriaRole::DocToc => "doc-toc",
1011 AriaRole::Document => "document",
1012 AriaRole::Emphasis => "emphasis",
1013 AriaRole::Feed => "feed",
1014 AriaRole::Figure => "figure",
1015 AriaRole::Form => "form",
1016 AriaRole::Generic => "generic",
1017 AriaRole::GraphicsDocument => "graphics-document",
1018 AriaRole::GraphicsObject => "graphics-object",
1019 AriaRole::GraphicsSymbol => "graphics-symbol",
1020 AriaRole::Grid => "grid",
1021 AriaRole::Gridcell => "gridcell",
1022 AriaRole::Group => "group",
1023 AriaRole::Heading => "heading",
1024 AriaRole::Img => "img",
1025 AriaRole::Insertion => "insertion",
1026 AriaRole::Link => "link",
1027 AriaRole::List => "list",
1028 AriaRole::Listbox => "listbox",
1029 AriaRole::Listitem => "listitem",
1030 AriaRole::Log => "log",
1031 AriaRole::Main => "main",
1032 AriaRole::Mark => "mark",
1033 AriaRole::Marquee => "marquee",
1034 AriaRole::Math => "math",
1035 AriaRole::Menu => "menu",
1036 AriaRole::Menubar => "menubar",
1037 AriaRole::Menuitem => "menuitem",
1038 AriaRole::Menuitemcheckbox => "menuitemcheckbox",
1039 AriaRole::Menuitemradio => "menuitemradio",
1040 AriaRole::Meter => "meter",
1041 AriaRole::Navigation => "navigation",
1042 AriaRole::None => "none",
1043 AriaRole::Note => "note",
1044 AriaRole::Option => "option",
1045 AriaRole::Paragraph => "paragraph",
1046 AriaRole::Presentation => "presentation",
1047 AriaRole::Progressbar => "progressbar",
1048 AriaRole::Radio => "radio",
1049 AriaRole::Radiogroup => "radiogroup",
1050 AriaRole::Region => "region",
1051 AriaRole::Row => "row",
1052 AriaRole::Rowgroup => "rowgroup",
1053 AriaRole::Rowheader => "rowheader",
1054 AriaRole::Scrollbar => "scrollbar",
1055 AriaRole::Search => "search",
1056 AriaRole::Searchbox => "searchbox",
1057 AriaRole::Separator => "separator",
1058 AriaRole::Slider => "slider",
1059 AriaRole::Spinbutton => "spinbutton",
1060 AriaRole::Status => "status",
1061 AriaRole::Strong => "strong",
1062 AriaRole::Subscript => "subscript",
1063 AriaRole::Superscript => "superscript",
1064 AriaRole::Switch => "switch",
1065 AriaRole::Tab => "tab",
1066 AriaRole::Table => "table",
1067 AriaRole::Tablist => "tablist",
1068 AriaRole::Tabpanel => "tabpanel",
1069 AriaRole::Term => "term",
1070 AriaRole::Textbox => "textbox",
1071 AriaRole::Time => "time",
1072 AriaRole::Timer => "timer",
1073 AriaRole::Toolbar => "toolbar",
1074 AriaRole::Tooltip => "tooltip",
1075 AriaRole::Tree => "tree",
1076 AriaRole::Treegrid => "treegrid",
1077 AriaRole::Treeitem => "treeitem",
1078 }
1079 )
1080 }
1081}
1082
1083#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
1084pub enum AriaRoleDefinitionKey {
1085 Alert,
1086 Alertdialog,
1087 Application,
1088 Article,
1089 Banner,
1090 Blockquote,
1091 Button,
1092 Caption,
1093 Cell,
1094 Checkbox,
1095 Code,
1096 Columnheader,
1097 Combobox,
1098 Command,
1099 Complementary,
1100 Composite,
1101 Contentinfo,
1102 Definition,
1103 Deletion,
1104 Dialog,
1105 Directory,
1106 DocAbstract,
1107 DocAcknowledgments,
1108 DocAfterword,
1109 DocAppendix,
1110 DocBacklink,
1111 DocBiblioentry,
1112 DocBibliography,
1113 DocBiblioref,
1114 DocChapter,
1115 DocColophon,
1116 DocConclusion,
1117 DocCover,
1118 DocCredit,
1119 DocCredits,
1120 DocDedication,
1121 DocEndnote,
1122 DocEndnotes,
1123 DocEpigraph,
1124 DocEpilogue,
1125 DocErrata,
1126 DocExample,
1127 DocFootnote,
1128 DocForeword,
1129 DocGlossary,
1130 DocGlossref,
1131 DocIndex,
1132 DocIntroduction,
1133 DocNoteref,
1134 DocNotice,
1135 DocPagebreak,
1136 DocPagefooter,
1137 DocPageheader,
1138 DocPagelist,
1139 DocPart,
1140 DocPreface,
1141 DocPrologue,
1142 DocPullquote,
1143 DocQna,
1144 DocSubtitle,
1145 DocTip,
1146 DocToc,
1147 Document,
1148 Emphasis,
1149 Feed,
1150 Figure,
1151 Form,
1152 Generic,
1153 GraphicsDocument,
1154 GraphicsObject,
1155 GraphicsSymbol,
1156 Grid,
1157 Gridcell,
1158 Group,
1159 Heading,
1160 Img,
1161 Input,
1162 Insertion,
1163 Landmark,
1164 Link,
1165 List,
1166 Listbox,
1167 Listitem,
1168 Log,
1169 Main,
1170 Mark,
1171 Marquee,
1172 Math,
1173 Menu,
1174 Menubar,
1175 Menuitem,
1176 Menuitemcheckbox,
1177 Menuitemradio,
1178 Meter,
1179 Navigation,
1180 None,
1181 Note,
1182 Option,
1183 Paragraph,
1184 Presentation,
1185 Progressbar,
1186 Radio,
1187 Radiogroup,
1188 Range,
1189 Region,
1190 Roletype,
1191 Row,
1192 Rowgroup,
1193 Rowheader,
1194 Scrollbar,
1195 Search,
1196 Searchbox,
1197 Section,
1198 Sectionhead,
1199 Select,
1200 Separator,
1201 Slider,
1202 Spinbutton,
1203 Status,
1204 Strong,
1205 Structure,
1206 Subscript,
1207 Superscript,
1208 Switch,
1209 Tab,
1210 Table,
1211 Tablist,
1212 Tabpanel,
1213 Term,
1214 Textbox,
1215 Time,
1216 Timer,
1217 Toolbar,
1218 Tooltip,
1219 Tree,
1220 Treegrid,
1221 Treeitem,
1222 Widget,
1223 Window,
1224}
1225
1226impl From<AriaAbstractRole> for AriaRoleDefinitionKey {
1227 fn from(value: AriaAbstractRole) -> Self {
1228 match value {
1229 AriaAbstractRole::Command => AriaRoleDefinitionKey::Command,
1230 AriaAbstractRole::Composite => AriaRoleDefinitionKey::Composite,
1231 AriaAbstractRole::Input => AriaRoleDefinitionKey::Input,
1232 AriaAbstractRole::Landmark => AriaRoleDefinitionKey::Landmark,
1233 AriaAbstractRole::Range => AriaRoleDefinitionKey::Range,
1234 AriaAbstractRole::Roletype => AriaRoleDefinitionKey::Roletype,
1235 AriaAbstractRole::Section => AriaRoleDefinitionKey::Section,
1236 AriaAbstractRole::Sectionhead => AriaRoleDefinitionKey::Sectionhead,
1237 AriaAbstractRole::Select => AriaRoleDefinitionKey::Select,
1238 AriaAbstractRole::Structure => AriaRoleDefinitionKey::Structure,
1239 AriaAbstractRole::Widget => AriaRoleDefinitionKey::Widget,
1240 AriaAbstractRole::Window => AriaRoleDefinitionKey::Window,
1241 }
1242 }
1243}
1244
1245impl From<AriaRole> for AriaRoleDefinitionKey {
1246 fn from(value: AriaRole) -> Self {
1247 match value {
1248 AriaRole::Alert => AriaRoleDefinitionKey::Alert,
1249 AriaRole::Alertdialog => AriaRoleDefinitionKey::Alertdialog,
1250 AriaRole::Application => AriaRoleDefinitionKey::Application,
1251 AriaRole::Article => AriaRoleDefinitionKey::Article,
1252 AriaRole::Banner => AriaRoleDefinitionKey::Banner,
1253 AriaRole::Blockquote => AriaRoleDefinitionKey::Blockquote,
1254 AriaRole::Button => AriaRoleDefinitionKey::Button,
1255 AriaRole::Caption => AriaRoleDefinitionKey::Caption,
1256 AriaRole::Cell => AriaRoleDefinitionKey::Cell,
1257 AriaRole::Checkbox => AriaRoleDefinitionKey::Checkbox,
1258 AriaRole::Code => AriaRoleDefinitionKey::Code,
1259 AriaRole::Columnheader => AriaRoleDefinitionKey::Columnheader,
1260 AriaRole::Combobox => AriaRoleDefinitionKey::Combobox,
1261 AriaRole::Complementary => AriaRoleDefinitionKey::Complementary,
1262 AriaRole::Contentinfo => AriaRoleDefinitionKey::Contentinfo,
1263 AriaRole::Definition => AriaRoleDefinitionKey::Definition,
1264 AriaRole::Deletion => AriaRoleDefinitionKey::Deletion,
1265 AriaRole::Dialog => AriaRoleDefinitionKey::Dialog,
1266 AriaRole::Directory => AriaRoleDefinitionKey::Directory,
1267 AriaRole::DocAbstract => AriaRoleDefinitionKey::DocAbstract,
1268 AriaRole::DocAcknowledgments => AriaRoleDefinitionKey::DocAcknowledgments,
1269 AriaRole::DocAfterword => AriaRoleDefinitionKey::DocAfterword,
1270 AriaRole::DocAppendix => AriaRoleDefinitionKey::DocAppendix,
1271 AriaRole::DocBacklink => AriaRoleDefinitionKey::DocBacklink,
1272 AriaRole::DocBiblioentry => AriaRoleDefinitionKey::DocBiblioentry,
1273 AriaRole::DocBibliography => AriaRoleDefinitionKey::DocBibliography,
1274 AriaRole::DocBiblioref => AriaRoleDefinitionKey::DocBiblioref,
1275 AriaRole::DocChapter => AriaRoleDefinitionKey::DocChapter,
1276 AriaRole::DocColophon => AriaRoleDefinitionKey::DocColophon,
1277 AriaRole::DocConclusion => AriaRoleDefinitionKey::DocConclusion,
1278 AriaRole::DocCover => AriaRoleDefinitionKey::DocCover,
1279 AriaRole::DocCredit => AriaRoleDefinitionKey::DocCredit,
1280 AriaRole::DocCredits => AriaRoleDefinitionKey::DocCredits,
1281 AriaRole::DocDedication => AriaRoleDefinitionKey::DocDedication,
1282 AriaRole::DocEndnote => AriaRoleDefinitionKey::DocEndnote,
1283 AriaRole::DocEndnotes => AriaRoleDefinitionKey::DocEndnotes,
1284 AriaRole::DocEpigraph => AriaRoleDefinitionKey::DocEpigraph,
1285 AriaRole::DocEpilogue => AriaRoleDefinitionKey::DocEpilogue,
1286 AriaRole::DocErrata => AriaRoleDefinitionKey::DocErrata,
1287 AriaRole::DocExample => AriaRoleDefinitionKey::DocExample,
1288 AriaRole::DocFootnote => AriaRoleDefinitionKey::DocFootnote,
1289 AriaRole::DocForeword => AriaRoleDefinitionKey::DocForeword,
1290 AriaRole::DocGlossary => AriaRoleDefinitionKey::DocGlossary,
1291 AriaRole::DocGlossref => AriaRoleDefinitionKey::DocGlossref,
1292 AriaRole::DocIndex => AriaRoleDefinitionKey::DocIndex,
1293 AriaRole::DocIntroduction => AriaRoleDefinitionKey::DocIntroduction,
1294 AriaRole::DocNoteref => AriaRoleDefinitionKey::DocNoteref,
1295 AriaRole::DocNotice => AriaRoleDefinitionKey::DocNotice,
1296 AriaRole::DocPagebreak => AriaRoleDefinitionKey::DocPagebreak,
1297 AriaRole::DocPagefooter => AriaRoleDefinitionKey::DocPagefooter,
1298 AriaRole::DocPageheader => AriaRoleDefinitionKey::DocPageheader,
1299 AriaRole::DocPagelist => AriaRoleDefinitionKey::DocPagelist,
1300 AriaRole::DocPart => AriaRoleDefinitionKey::DocPart,
1301 AriaRole::DocPreface => AriaRoleDefinitionKey::DocPreface,
1302 AriaRole::DocPrologue => AriaRoleDefinitionKey::DocPrologue,
1303 AriaRole::DocPullquote => AriaRoleDefinitionKey::DocPullquote,
1304 AriaRole::DocQna => AriaRoleDefinitionKey::DocQna,
1305 AriaRole::DocSubtitle => AriaRoleDefinitionKey::DocSubtitle,
1306 AriaRole::DocTip => AriaRoleDefinitionKey::DocTip,
1307 AriaRole::DocToc => AriaRoleDefinitionKey::DocToc,
1308 AriaRole::Document => AriaRoleDefinitionKey::Document,
1309 AriaRole::Emphasis => AriaRoleDefinitionKey::Emphasis,
1310 AriaRole::Feed => AriaRoleDefinitionKey::Feed,
1311 AriaRole::Figure => AriaRoleDefinitionKey::Figure,
1312 AriaRole::Form => AriaRoleDefinitionKey::Form,
1313 AriaRole::Generic => AriaRoleDefinitionKey::Generic,
1314 AriaRole::GraphicsDocument => AriaRoleDefinitionKey::GraphicsDocument,
1315 AriaRole::GraphicsObject => AriaRoleDefinitionKey::GraphicsObject,
1316 AriaRole::GraphicsSymbol => AriaRoleDefinitionKey::GraphicsSymbol,
1317 AriaRole::Grid => AriaRoleDefinitionKey::Grid,
1318 AriaRole::Gridcell => AriaRoleDefinitionKey::Gridcell,
1319 AriaRole::Group => AriaRoleDefinitionKey::Group,
1320 AriaRole::Heading => AriaRoleDefinitionKey::Heading,
1321 AriaRole::Img => AriaRoleDefinitionKey::Img,
1322 AriaRole::Insertion => AriaRoleDefinitionKey::Insertion,
1323 AriaRole::Link => AriaRoleDefinitionKey::Link,
1324 AriaRole::List => AriaRoleDefinitionKey::List,
1325 AriaRole::Listbox => AriaRoleDefinitionKey::Listbox,
1326 AriaRole::Listitem => AriaRoleDefinitionKey::Listitem,
1327 AriaRole::Log => AriaRoleDefinitionKey::Log,
1328 AriaRole::Main => AriaRoleDefinitionKey::Main,
1329 AriaRole::Mark => AriaRoleDefinitionKey::Mark,
1330 AriaRole::Marquee => AriaRoleDefinitionKey::Marquee,
1331 AriaRole::Math => AriaRoleDefinitionKey::Math,
1332 AriaRole::Menu => AriaRoleDefinitionKey::Menu,
1333 AriaRole::Menubar => AriaRoleDefinitionKey::Menubar,
1334 AriaRole::Menuitem => AriaRoleDefinitionKey::Menuitem,
1335 AriaRole::Menuitemcheckbox => AriaRoleDefinitionKey::Menuitemcheckbox,
1336 AriaRole::Menuitemradio => AriaRoleDefinitionKey::Menuitemradio,
1337 AriaRole::Meter => AriaRoleDefinitionKey::Meter,
1338 AriaRole::Navigation => AriaRoleDefinitionKey::Navigation,
1339 AriaRole::None => AriaRoleDefinitionKey::None,
1340 AriaRole::Note => AriaRoleDefinitionKey::Note,
1341 AriaRole::Option => AriaRoleDefinitionKey::Option,
1342 AriaRole::Paragraph => AriaRoleDefinitionKey::Paragraph,
1343 AriaRole::Presentation => AriaRoleDefinitionKey::Presentation,
1344 AriaRole::Progressbar => AriaRoleDefinitionKey::Progressbar,
1345 AriaRole::Radio => AriaRoleDefinitionKey::Radio,
1346 AriaRole::Radiogroup => AriaRoleDefinitionKey::Radiogroup,
1347 AriaRole::Region => AriaRoleDefinitionKey::Region,
1348 AriaRole::Row => AriaRoleDefinitionKey::Row,
1349 AriaRole::Rowgroup => AriaRoleDefinitionKey::Rowgroup,
1350 AriaRole::Rowheader => AriaRoleDefinitionKey::Rowheader,
1351 AriaRole::Scrollbar => AriaRoleDefinitionKey::Scrollbar,
1352 AriaRole::Search => AriaRoleDefinitionKey::Search,
1353 AriaRole::Searchbox => AriaRoleDefinitionKey::Searchbox,
1354 AriaRole::Separator => AriaRoleDefinitionKey::Separator,
1355 AriaRole::Slider => AriaRoleDefinitionKey::Slider,
1356 AriaRole::Spinbutton => AriaRoleDefinitionKey::Spinbutton,
1357 AriaRole::Status => AriaRoleDefinitionKey::Status,
1358 AriaRole::Strong => AriaRoleDefinitionKey::Strong,
1359 AriaRole::Subscript => AriaRoleDefinitionKey::Subscript,
1360 AriaRole::Superscript => AriaRoleDefinitionKey::Superscript,
1361 AriaRole::Switch => AriaRoleDefinitionKey::Switch,
1362 AriaRole::Tab => AriaRoleDefinitionKey::Tab,
1363 AriaRole::Table => AriaRoleDefinitionKey::Table,
1364 AriaRole::Tablist => AriaRoleDefinitionKey::Tablist,
1365 AriaRole::Tabpanel => AriaRoleDefinitionKey::Tabpanel,
1366 AriaRole::Term => AriaRoleDefinitionKey::Term,
1367 AriaRole::Textbox => AriaRoleDefinitionKey::Textbox,
1368 AriaRole::Time => AriaRoleDefinitionKey::Time,
1369 AriaRole::Timer => AriaRoleDefinitionKey::Timer,
1370 AriaRole::Toolbar => AriaRoleDefinitionKey::Toolbar,
1371 AriaRole::Tooltip => AriaRoleDefinitionKey::Tooltip,
1372 AriaRole::Tree => AriaRoleDefinitionKey::Tree,
1373 AriaRole::Treegrid => AriaRoleDefinitionKey::Treegrid,
1374 AriaRole::Treeitem => AriaRoleDefinitionKey::Treeitem,
1375 }
1376 }
1377}
1378
1379impl FromStr for AriaRoleDefinitionKey {
1380 type Err = UnknownRoleError;
1381
1382 fn from_str(s: &str) -> Result<Self, Self::Err> {
1383 match s {
1384 "alert" => Ok(AriaRoleDefinitionKey::Alert),
1385 "alertdialog" => Ok(AriaRoleDefinitionKey::Alertdialog),
1386 "application" => Ok(AriaRoleDefinitionKey::Application),
1387 "article" => Ok(AriaRoleDefinitionKey::Article),
1388 "banner" => Ok(AriaRoleDefinitionKey::Banner),
1389 "blockquote" => Ok(AriaRoleDefinitionKey::Blockquote),
1390 "button" => Ok(AriaRoleDefinitionKey::Button),
1391 "caption" => Ok(AriaRoleDefinitionKey::Caption),
1392 "cell" => Ok(AriaRoleDefinitionKey::Cell),
1393 "checkbox" => Ok(AriaRoleDefinitionKey::Checkbox),
1394 "code" => Ok(AriaRoleDefinitionKey::Code),
1395 "columnheader" => Ok(AriaRoleDefinitionKey::Columnheader),
1396 "combobox" => Ok(AriaRoleDefinitionKey::Combobox),
1397 "command" => Ok(AriaRoleDefinitionKey::Command),
1398 "complementary" => Ok(AriaRoleDefinitionKey::Complementary),
1399 "composite" => Ok(AriaRoleDefinitionKey::Composite),
1400 "contentinfo" => Ok(AriaRoleDefinitionKey::Contentinfo),
1401 "definition" => Ok(AriaRoleDefinitionKey::Definition),
1402 "deletion" => Ok(AriaRoleDefinitionKey::Deletion),
1403 "dialog" => Ok(AriaRoleDefinitionKey::Dialog),
1404 "directory" => Ok(AriaRoleDefinitionKey::Directory),
1405 "doc-abstract" => Ok(AriaRoleDefinitionKey::DocAbstract),
1406 "doc-acknowledgments" => Ok(AriaRoleDefinitionKey::DocAcknowledgments),
1407 "doc-afterword" => Ok(AriaRoleDefinitionKey::DocAfterword),
1408 "doc-appendix" => Ok(AriaRoleDefinitionKey::DocAppendix),
1409 "doc-backlink" => Ok(AriaRoleDefinitionKey::DocBacklink),
1410 "doc-biblioentry" => Ok(AriaRoleDefinitionKey::DocBiblioentry),
1411 "doc-bibliography" => Ok(AriaRoleDefinitionKey::DocBibliography),
1412 "doc-biblioref" => Ok(AriaRoleDefinitionKey::DocBiblioref),
1413 "doc-chapter" => Ok(AriaRoleDefinitionKey::DocChapter),
1414 "doc-colophon" => Ok(AriaRoleDefinitionKey::DocColophon),
1415 "doc-conclusion" => Ok(AriaRoleDefinitionKey::DocConclusion),
1416 "doc-cover" => Ok(AriaRoleDefinitionKey::DocCover),
1417 "doc-credit" => Ok(AriaRoleDefinitionKey::DocCredit),
1418 "doc-credits" => Ok(AriaRoleDefinitionKey::DocCredits),
1419 "doc-dedication" => Ok(AriaRoleDefinitionKey::DocDedication),
1420 "doc-endnote" => Ok(AriaRoleDefinitionKey::DocEndnote),
1421 "doc-endnotes" => Ok(AriaRoleDefinitionKey::DocEndnotes),
1422 "doc-epigraph" => Ok(AriaRoleDefinitionKey::DocEpigraph),
1423 "doc-epilogue" => Ok(AriaRoleDefinitionKey::DocEpilogue),
1424 "doc-errata" => Ok(AriaRoleDefinitionKey::DocErrata),
1425 "doc-example" => Ok(AriaRoleDefinitionKey::DocExample),
1426 "doc-footnote" => Ok(AriaRoleDefinitionKey::DocFootnote),
1427 "doc-foreword" => Ok(AriaRoleDefinitionKey::DocForeword),
1428 "doc-glossary" => Ok(AriaRoleDefinitionKey::DocGlossary),
1429 "doc-glossref" => Ok(AriaRoleDefinitionKey::DocGlossref),
1430 "doc-index" => Ok(AriaRoleDefinitionKey::DocIndex),
1431 "doc-introduction" => Ok(AriaRoleDefinitionKey::DocIntroduction),
1432 "doc-noteref" => Ok(AriaRoleDefinitionKey::DocNoteref),
1433 "doc-notice" => Ok(AriaRoleDefinitionKey::DocNotice),
1434 "doc-pagebreak" => Ok(AriaRoleDefinitionKey::DocPagebreak),
1435 "doc-pagefooter" => Ok(AriaRoleDefinitionKey::DocPagefooter),
1436 "doc-pageheader" => Ok(AriaRoleDefinitionKey::DocPageheader),
1437 "doc-pagelist" => Ok(AriaRoleDefinitionKey::DocPagelist),
1438 "doc-part" => Ok(AriaRoleDefinitionKey::DocPart),
1439 "doc-preface" => Ok(AriaRoleDefinitionKey::DocPreface),
1440 "doc-prologue" => Ok(AriaRoleDefinitionKey::DocPrologue),
1441 "doc-pullquote" => Ok(AriaRoleDefinitionKey::DocPullquote),
1442 "doc-qna" => Ok(AriaRoleDefinitionKey::DocQna),
1443 "doc-subtitle" => Ok(AriaRoleDefinitionKey::DocSubtitle),
1444 "doc-tip" => Ok(AriaRoleDefinitionKey::DocTip),
1445 "doc-toc" => Ok(AriaRoleDefinitionKey::DocToc),
1446 "document" => Ok(AriaRoleDefinitionKey::Document),
1447 "emphasis" => Ok(AriaRoleDefinitionKey::Emphasis),
1448 "feed" => Ok(AriaRoleDefinitionKey::Feed),
1449 "figure" => Ok(AriaRoleDefinitionKey::Figure),
1450 "form" => Ok(AriaRoleDefinitionKey::Form),
1451 "generic" => Ok(AriaRoleDefinitionKey::Generic),
1452 "graphics-document" => Ok(AriaRoleDefinitionKey::GraphicsDocument),
1453 "graphics-object" => Ok(AriaRoleDefinitionKey::GraphicsObject),
1454 "graphics-symbol" => Ok(AriaRoleDefinitionKey::GraphicsSymbol),
1455 "grid" => Ok(AriaRoleDefinitionKey::Grid),
1456 "gridcell" => Ok(AriaRoleDefinitionKey::Gridcell),
1457 "group" => Ok(AriaRoleDefinitionKey::Group),
1458 "heading" => Ok(AriaRoleDefinitionKey::Heading),
1459 "img" => Ok(AriaRoleDefinitionKey::Img),
1460 "input" => Ok(AriaRoleDefinitionKey::Input),
1461 "insertion" => Ok(AriaRoleDefinitionKey::Insertion),
1462 "landmark" => Ok(AriaRoleDefinitionKey::Landmark),
1463 "link" => Ok(AriaRoleDefinitionKey::Link),
1464 "list" => Ok(AriaRoleDefinitionKey::List),
1465 "listbox" => Ok(AriaRoleDefinitionKey::Listbox),
1466 "listitem" => Ok(AriaRoleDefinitionKey::Listitem),
1467 "log" => Ok(AriaRoleDefinitionKey::Log),
1468 "main" => Ok(AriaRoleDefinitionKey::Main),
1469 "mark" => Ok(AriaRoleDefinitionKey::Mark),
1470 "marquee" => Ok(AriaRoleDefinitionKey::Marquee),
1471 "math" => Ok(AriaRoleDefinitionKey::Math),
1472 "menu" => Ok(AriaRoleDefinitionKey::Menu),
1473 "menubar" => Ok(AriaRoleDefinitionKey::Menubar),
1474 "menuitem" => Ok(AriaRoleDefinitionKey::Menuitem),
1475 "menuitemcheckbox" => Ok(AriaRoleDefinitionKey::Menuitemcheckbox),
1476 "menuitemradio" => Ok(AriaRoleDefinitionKey::Menuitemradio),
1477 "meter" => Ok(AriaRoleDefinitionKey::Meter),
1478 "navigation" => Ok(AriaRoleDefinitionKey::Navigation),
1479 "none" => Ok(AriaRoleDefinitionKey::None),
1480 "note" => Ok(AriaRoleDefinitionKey::Note),
1481 "option" => Ok(AriaRoleDefinitionKey::Option),
1482 "paragraph" => Ok(AriaRoleDefinitionKey::Paragraph),
1483 "presentation" => Ok(AriaRoleDefinitionKey::Presentation),
1484 "progressbar" => Ok(AriaRoleDefinitionKey::Progressbar),
1485 "radio" => Ok(AriaRoleDefinitionKey::Radio),
1486 "radiogroup" => Ok(AriaRoleDefinitionKey::Radiogroup),
1487 "range" => Ok(AriaRoleDefinitionKey::Range),
1488 "region" => Ok(AriaRoleDefinitionKey::Region),
1489 "roletype" => Ok(AriaRoleDefinitionKey::Roletype),
1490 "row" => Ok(AriaRoleDefinitionKey::Row),
1491 "rowgroup" => Ok(AriaRoleDefinitionKey::Rowgroup),
1492 "rowheader" => Ok(AriaRoleDefinitionKey::Rowheader),
1493 "scrollbar" => Ok(AriaRoleDefinitionKey::Scrollbar),
1494 "search" => Ok(AriaRoleDefinitionKey::Search),
1495 "searchbox" => Ok(AriaRoleDefinitionKey::Searchbox),
1496 "section" => Ok(AriaRoleDefinitionKey::Section),
1497 "sectionhead" => Ok(AriaRoleDefinitionKey::Sectionhead),
1498 "select" => Ok(AriaRoleDefinitionKey::Select),
1499 "separator" => Ok(AriaRoleDefinitionKey::Separator),
1500 "slider" => Ok(AriaRoleDefinitionKey::Slider),
1501 "spinbutton" => Ok(AriaRoleDefinitionKey::Spinbutton),
1502 "status" => Ok(AriaRoleDefinitionKey::Status),
1503 "strong" => Ok(AriaRoleDefinitionKey::Strong),
1504 "structure" => Ok(AriaRoleDefinitionKey::Structure),
1505 "subscript" => Ok(AriaRoleDefinitionKey::Subscript),
1506 "superscript" => Ok(AriaRoleDefinitionKey::Superscript),
1507 "switch" => Ok(AriaRoleDefinitionKey::Switch),
1508 "tab" => Ok(AriaRoleDefinitionKey::Tab),
1509 "table" => Ok(AriaRoleDefinitionKey::Table),
1510 "tablist" => Ok(AriaRoleDefinitionKey::Tablist),
1511 "tabpanel" => Ok(AriaRoleDefinitionKey::Tabpanel),
1512 "term" => Ok(AriaRoleDefinitionKey::Term),
1513 "textbox" => Ok(AriaRoleDefinitionKey::Textbox),
1514 "time" => Ok(AriaRoleDefinitionKey::Time),
1515 "timer" => Ok(AriaRoleDefinitionKey::Timer),
1516 "toolbar" => Ok(AriaRoleDefinitionKey::Toolbar),
1517 "tooltip" => Ok(AriaRoleDefinitionKey::Tooltip),
1518 "tree" => Ok(AriaRoleDefinitionKey::Tree),
1519 "treegrid" => Ok(AriaRoleDefinitionKey::Treegrid),
1520 "treeitem" => Ok(AriaRoleDefinitionKey::Treeitem),
1521 "widget" => Ok(AriaRoleDefinitionKey::Widget),
1522 "window" => Ok(AriaRoleDefinitionKey::Window),
1523 _ => Err(UnknownRoleError),
1524 }
1525 }
1526}
1527
1528impl Display for AriaRoleDefinitionKey {
1529 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1530 write!(
1531 f,
1532 "{}",
1533 match self {
1534 AriaRoleDefinitionKey::Alert => "alert",
1535 AriaRoleDefinitionKey::Alertdialog => "alertdialog",
1536 AriaRoleDefinitionKey::Application => "application",
1537 AriaRoleDefinitionKey::Article => "article",
1538 AriaRoleDefinitionKey::Banner => "banner",
1539 AriaRoleDefinitionKey::Blockquote => "blockquote",
1540 AriaRoleDefinitionKey::Button => "button",
1541 AriaRoleDefinitionKey::Caption => "caption",
1542 AriaRoleDefinitionKey::Cell => "cell",
1543 AriaRoleDefinitionKey::Checkbox => "checkbox",
1544 AriaRoleDefinitionKey::Code => "code",
1545 AriaRoleDefinitionKey::Columnheader => "columnheader",
1546 AriaRoleDefinitionKey::Combobox => "combobox",
1547 AriaRoleDefinitionKey::Command => "command",
1548 AriaRoleDefinitionKey::Complementary => "complementary",
1549 AriaRoleDefinitionKey::Composite => "composite",
1550 AriaRoleDefinitionKey::Contentinfo => "contentinfo",
1551 AriaRoleDefinitionKey::Definition => "definition",
1552 AriaRoleDefinitionKey::Deletion => "deletion",
1553 AriaRoleDefinitionKey::Dialog => "dialog",
1554 AriaRoleDefinitionKey::Directory => "directory",
1555 AriaRoleDefinitionKey::DocAbstract => "doc-abstract",
1556 AriaRoleDefinitionKey::DocAcknowledgments => "doc-acknowledgments",
1557 AriaRoleDefinitionKey::DocAfterword => "doc-afterword",
1558 AriaRoleDefinitionKey::DocAppendix => "doc-appendix",
1559 AriaRoleDefinitionKey::DocBacklink => "doc-backlink",
1560 AriaRoleDefinitionKey::DocBiblioentry => "doc-biblioentry",
1561 AriaRoleDefinitionKey::DocBibliography => "doc-bibliography",
1562 AriaRoleDefinitionKey::DocBiblioref => "doc-biblioref",
1563 AriaRoleDefinitionKey::DocChapter => "doc-chapter",
1564 AriaRoleDefinitionKey::DocColophon => "doc-colophon",
1565 AriaRoleDefinitionKey::DocConclusion => "doc-conclusion",
1566 AriaRoleDefinitionKey::DocCover => "doc-cover",
1567 AriaRoleDefinitionKey::DocCredit => "doc-credit",
1568 AriaRoleDefinitionKey::DocCredits => "doc-credits",
1569 AriaRoleDefinitionKey::DocDedication => "doc-dedication",
1570 AriaRoleDefinitionKey::DocEndnote => "doc-endnote",
1571 AriaRoleDefinitionKey::DocEndnotes => "doc-endnotes",
1572 AriaRoleDefinitionKey::DocEpigraph => "doc-epigraph",
1573 AriaRoleDefinitionKey::DocEpilogue => "doc-epilogue",
1574 AriaRoleDefinitionKey::DocErrata => "doc-errata",
1575 AriaRoleDefinitionKey::DocExample => "doc-example",
1576 AriaRoleDefinitionKey::DocFootnote => "doc-footnote",
1577 AriaRoleDefinitionKey::DocForeword => "doc-foreword",
1578 AriaRoleDefinitionKey::DocGlossary => "doc-glossary",
1579 AriaRoleDefinitionKey::DocGlossref => "doc-glossref",
1580 AriaRoleDefinitionKey::DocIndex => "doc-index",
1581 AriaRoleDefinitionKey::DocIntroduction => "doc-introduction",
1582 AriaRoleDefinitionKey::DocNoteref => "doc-noteref",
1583 AriaRoleDefinitionKey::DocNotice => "doc-notice",
1584 AriaRoleDefinitionKey::DocPagebreak => "doc-pagebreak",
1585 AriaRoleDefinitionKey::DocPagefooter => "doc-pagefooter",
1586 AriaRoleDefinitionKey::DocPageheader => "doc-pageheader",
1587 AriaRoleDefinitionKey::DocPagelist => "doc-pagelist",
1588 AriaRoleDefinitionKey::DocPart => "doc-part",
1589 AriaRoleDefinitionKey::DocPreface => "doc-preface",
1590 AriaRoleDefinitionKey::DocPrologue => "doc-prologue",
1591 AriaRoleDefinitionKey::DocPullquote => "doc-pullquote",
1592 AriaRoleDefinitionKey::DocQna => "doc-qna",
1593 AriaRoleDefinitionKey::DocSubtitle => "doc-subtitle",
1594 AriaRoleDefinitionKey::DocTip => "doc-tip",
1595 AriaRoleDefinitionKey::DocToc => "doc-toc",
1596 AriaRoleDefinitionKey::Document => "document",
1597 AriaRoleDefinitionKey::Emphasis => "emphasis",
1598 AriaRoleDefinitionKey::Feed => "feed",
1599 AriaRoleDefinitionKey::Figure => "figure",
1600 AriaRoleDefinitionKey::Form => "form",
1601 AriaRoleDefinitionKey::Generic => "generic",
1602 AriaRoleDefinitionKey::GraphicsDocument => "graphics-document",
1603 AriaRoleDefinitionKey::GraphicsObject => "graphics-object",
1604 AriaRoleDefinitionKey::GraphicsSymbol => "graphics-symbol",
1605 AriaRoleDefinitionKey::Grid => "grid",
1606 AriaRoleDefinitionKey::Gridcell => "gridcell",
1607 AriaRoleDefinitionKey::Group => "group",
1608 AriaRoleDefinitionKey::Heading => "heading",
1609 AriaRoleDefinitionKey::Img => "img",
1610 AriaRoleDefinitionKey::Input => "input",
1611 AriaRoleDefinitionKey::Insertion => "insertion",
1612 AriaRoleDefinitionKey::Landmark => "landmark",
1613 AriaRoleDefinitionKey::Link => "link",
1614 AriaRoleDefinitionKey::List => "list",
1615 AriaRoleDefinitionKey::Listbox => "listbox",
1616 AriaRoleDefinitionKey::Listitem => "listitem",
1617 AriaRoleDefinitionKey::Log => "log",
1618 AriaRoleDefinitionKey::Main => "main",
1619 AriaRoleDefinitionKey::Mark => "mark",
1620 AriaRoleDefinitionKey::Marquee => "marquee",
1621 AriaRoleDefinitionKey::Math => "math",
1622 AriaRoleDefinitionKey::Menu => "menu",
1623 AriaRoleDefinitionKey::Menubar => "menubar",
1624 AriaRoleDefinitionKey::Menuitem => "menuitem",
1625 AriaRoleDefinitionKey::Menuitemcheckbox => "menuitemcheckbox",
1626 AriaRoleDefinitionKey::Menuitemradio => "menuitemradio",
1627 AriaRoleDefinitionKey::Meter => "meter",
1628 AriaRoleDefinitionKey::Navigation => "navigation",
1629 AriaRoleDefinitionKey::None => "none",
1630 AriaRoleDefinitionKey::Note => "note",
1631 AriaRoleDefinitionKey::Option => "option",
1632 AriaRoleDefinitionKey::Paragraph => "paragraph",
1633 AriaRoleDefinitionKey::Presentation => "presentation",
1634 AriaRoleDefinitionKey::Progressbar => "progressbar",
1635 AriaRoleDefinitionKey::Radio => "radio",
1636 AriaRoleDefinitionKey::Radiogroup => "radiogroup",
1637 AriaRoleDefinitionKey::Range => "range",
1638 AriaRoleDefinitionKey::Region => "region",
1639 AriaRoleDefinitionKey::Roletype => "roletype",
1640 AriaRoleDefinitionKey::Row => "row",
1641 AriaRoleDefinitionKey::Rowgroup => "rowgroup",
1642 AriaRoleDefinitionKey::Rowheader => "rowheader",
1643 AriaRoleDefinitionKey::Scrollbar => "scrollbar",
1644 AriaRoleDefinitionKey::Search => "search",
1645 AriaRoleDefinitionKey::Searchbox => "searchbox",
1646 AriaRoleDefinitionKey::Section => "section",
1647 AriaRoleDefinitionKey::Sectionhead => "sectionhead",
1648 AriaRoleDefinitionKey::Select => "select",
1649 AriaRoleDefinitionKey::Separator => "separator",
1650 AriaRoleDefinitionKey::Slider => "slider",
1651 AriaRoleDefinitionKey::Spinbutton => "spinbutton",
1652 AriaRoleDefinitionKey::Status => "status",
1653 AriaRoleDefinitionKey::Strong => "strong",
1654 AriaRoleDefinitionKey::Structure => "structure",
1655 AriaRoleDefinitionKey::Subscript => "subscript",
1656 AriaRoleDefinitionKey::Superscript => "superscript",
1657 AriaRoleDefinitionKey::Switch => "switch",
1658 AriaRoleDefinitionKey::Tab => "tab",
1659 AriaRoleDefinitionKey::Table => "table",
1660 AriaRoleDefinitionKey::Tablist => "tablist",
1661 AriaRoleDefinitionKey::Tabpanel => "tabpanel",
1662 AriaRoleDefinitionKey::Term => "term",
1663 AriaRoleDefinitionKey::Textbox => "textbox",
1664 AriaRoleDefinitionKey::Time => "time",
1665 AriaRoleDefinitionKey::Timer => "timer",
1666 AriaRoleDefinitionKey::Toolbar => "toolbar",
1667 AriaRoleDefinitionKey::Tooltip => "tooltip",
1668 AriaRoleDefinitionKey::Tree => "tree",
1669 AriaRoleDefinitionKey::Treegrid => "treegrid",
1670 AriaRoleDefinitionKey::Treeitem => "treeitem",
1671 AriaRoleDefinitionKey::Widget => "widget",
1672 AriaRoleDefinitionKey::Window => "window",
1673 }
1674 )
1675 }
1676}
1677
1678#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
1679pub enum AriaNameFromSource {
1680 Author,
1681 Contents,
1682 Prohibited,
1683}
1684
1685#[derive(Clone, Debug)]
1686pub struct AriaRoleDefinition {
1687 pub r#abstract: bool,
1688 pub accessible_name_required: bool,
1689 pub base_concepts: Vec<AriaRoleRelation>,
1690 pub children_presentational: bool,
1691 pub name_from: Vec<AriaNameFromSource>,
1692 pub prohibited_props: Vec<AriaProperty>,
1693 pub props: AriaPropertyMap,
1694 pub related_concepts: Vec<AriaRoleRelation>,
1695 pub require_context_role: Vec<AriaRole>,
1696 pub required_context_role: Vec<AriaRole>,
1697 pub required_owned_elements: Vec<Vec<String>>,
1698 pub required_props: AriaPropertyMap,
1699 pub super_class: Vec<Vec<AriaRoleDefinitionSuperClass>>,
1700}
1701
1702#[derive(Clone, Debug)]
1703pub enum AriaRoleDefinitionSuperClass {
1704 AbstractRole(AriaAbstractRole),
1705 Role(AriaRole),
1706}
1707
1708#[derive(Debug, PartialEq, Eq)]
1709pub struct UnknownStateError;
1710
1711#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
1712pub enum AriaState {
1713 AriaBusy,
1714 AriaChecked,
1715 AriaDisabled,
1716 AriaExpanded,
1717 AriaGrabbed,
1718 AriaHidden,
1719 AriaInvalid,
1720 AriaPressed,
1721 AriaSelected,
1722}
1723
1724impl FromStr for AriaState {
1725 type Err = UnknownStateError;
1726
1727 fn from_str(s: &str) -> Result<Self, Self::Err> {
1728 match s {
1729 "aria-busy" => Ok(AriaState::AriaBusy),
1730 "aria-checked" => Ok(AriaState::AriaChecked),
1731 "aria-disabled" => Ok(AriaState::AriaDisabled),
1732 "aria-expanded" => Ok(AriaState::AriaExpanded),
1733 "aria-grabbed" => Ok(AriaState::AriaGrabbed),
1734 "aria-hidden" => Ok(AriaState::AriaHidden),
1735 "aria-invalid" => Ok(AriaState::AriaInvalid),
1736 "aria-pressed" => Ok(AriaState::AriaPressed),
1737 "aria-selected" => Ok(AriaState::AriaSelected),
1738 _ => Err(UnknownStateError),
1739 }
1740 }
1741}
1742
1743impl Display for AriaState {
1744 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1745 write!(
1746 f,
1747 "{}",
1748 match self {
1749 AriaState::AriaBusy => "aria-busy",
1750 AriaState::AriaChecked => "aria-checked",
1751 AriaState::AriaDisabled => "aria-disabled",
1752 AriaState::AriaExpanded => "aria-expanded",
1753 AriaState::AriaGrabbed => "aria-grabbed",
1754 AriaState::AriaHidden => "aria-hidden",
1755 AriaState::AriaInvalid => "aria-invalid",
1756 AriaState::AriaPressed => "aria-pressed",
1757 AriaState::AriaSelected => "aria-selected",
1758 }
1759 )
1760 }
1761}
1762
1763#[derive(Debug, PartialEq, Eq)]
1764pub struct UnknownPropertyError;
1765
1766#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
1767pub enum AriaProperty {
1768 AriaActivedescendant,
1769 AriaAtomic,
1770 AriaAutocomplete,
1771 AriaBraillelabel,
1772 AriaBrailleroledescription,
1773 AriaBusy,
1774 AriaChecked,
1775 AriaColcount,
1776 AriaColindex,
1777 AriaColspan,
1778 AriaControls,
1779 AriaCurrent,
1780 AriaDescribedby,
1781 AriaDescription,
1782 AriaDetails,
1783 AriaDisabled,
1784 AriaDropeffect,
1785 AriaErrormessage,
1786 AriaExpanded,
1787 AriaFlowto,
1788 AriaGrabbed,
1789 AriaHaspopup,
1790 AriaHidden,
1791 AriaInvalid,
1792 AriaKeyshortcuts,
1793 AriaLabel,
1794 AriaLabelledby,
1795 AriaLevel,
1796 AriaLive,
1797 AriaModal,
1798 AriaMultiline,
1799 AriaMultiselectable,
1800 AriaOrientation,
1801 AriaOwns,
1802 AriaPlaceholder,
1803 AriaPosinset,
1804 AriaPressed,
1805 AriaReadonly,
1806 AriaRelevant,
1807 AriaRequired,
1808 AriaRoledescription,
1809 AriaRowcount,
1810 AriaRowindex,
1811 AriaRowspan,
1812 AriaSelected,
1813 AriaSetsize,
1814 AriaSort,
1815 AriaValuemax,
1816 AriaValuemin,
1817 AriaValuenow,
1818 AriaValuetext,
1819}
1820
1821impl FromStr for AriaProperty {
1822 type Err = UnknownPropertyError;
1823
1824 fn from_str(s: &str) -> Result<Self, Self::Err> {
1825 match s {
1826 "aria-activedescendant" => Ok(AriaProperty::AriaActivedescendant),
1827 "aria-atomic" => Ok(AriaProperty::AriaAtomic),
1828 "aria-autocomplete" => Ok(AriaProperty::AriaAutocomplete),
1829 "aria-braillelabel" => Ok(AriaProperty::AriaBraillelabel),
1830 "aria-brailleroledescription" => Ok(AriaProperty::AriaBrailleroledescription),
1831 "aria-busy" => Ok(AriaProperty::AriaBusy),
1832 "aria-checked" => Ok(AriaProperty::AriaChecked),
1833 "aria-colcount" => Ok(AriaProperty::AriaColcount),
1834 "aria-colindex" => Ok(AriaProperty::AriaColindex),
1835 "aria-colspan" => Ok(AriaProperty::AriaColspan),
1836 "aria-controls" => Ok(AriaProperty::AriaControls),
1837 "aria-current" => Ok(AriaProperty::AriaCurrent),
1838 "aria-describedby" => Ok(AriaProperty::AriaDescribedby),
1839 "aria-description" => Ok(AriaProperty::AriaDescription),
1840 "aria-details" => Ok(AriaProperty::AriaDetails),
1841 "aria-disabled" => Ok(AriaProperty::AriaDisabled),
1842 "aria-dropeffect" => Ok(AriaProperty::AriaDropeffect),
1843 "aria-errormessage" => Ok(AriaProperty::AriaErrormessage),
1844 "aria-expanded" => Ok(AriaProperty::AriaExpanded),
1845 "aria-flowto" => Ok(AriaProperty::AriaFlowto),
1846 "aria-grabbed" => Ok(AriaProperty::AriaGrabbed),
1847 "aria-haspopup" => Ok(AriaProperty::AriaHaspopup),
1848 "aria-hidden" => Ok(AriaProperty::AriaHidden),
1849 "aria-invalid" => Ok(AriaProperty::AriaInvalid),
1850 "aria-keyshortcuts" => Ok(AriaProperty::AriaKeyshortcuts),
1851 "aria-label" => Ok(AriaProperty::AriaLabel),
1852 "aria-labelledby" => Ok(AriaProperty::AriaLabelledby),
1853 "aria-level" => Ok(AriaProperty::AriaLevel),
1854 "aria-live" => Ok(AriaProperty::AriaLive),
1855 "aria-modal" => Ok(AriaProperty::AriaModal),
1856 "aria-multiline" => Ok(AriaProperty::AriaMultiline),
1857 "aria-multiselectable" => Ok(AriaProperty::AriaMultiselectable),
1858 "aria-orientation" => Ok(AriaProperty::AriaOrientation),
1859 "aria-owns" => Ok(AriaProperty::AriaOwns),
1860 "aria-placeholder" => Ok(AriaProperty::AriaPlaceholder),
1861 "aria-posinset" => Ok(AriaProperty::AriaPosinset),
1862 "aria-pressed" => Ok(AriaProperty::AriaPressed),
1863 "aria-readonly" => Ok(AriaProperty::AriaReadonly),
1864 "aria-relevant" => Ok(AriaProperty::AriaRelevant),
1865 "aria-required" => Ok(AriaProperty::AriaRequired),
1866 "aria-roledescription" => Ok(AriaProperty::AriaRoledescription),
1867 "aria-rowcount" => Ok(AriaProperty::AriaRowcount),
1868 "aria-rowindex" => Ok(AriaProperty::AriaRowindex),
1869 "aria-rowspan" => Ok(AriaProperty::AriaRowspan),
1870 "aria-selected" => Ok(AriaProperty::AriaSelected),
1871 "aria-setsize" => Ok(AriaProperty::AriaSetsize),
1872 "aria-sort" => Ok(AriaProperty::AriaSort),
1873 "aria-valuemax" => Ok(AriaProperty::AriaValuemax),
1874 "aria-valuemin" => Ok(AriaProperty::AriaValuemin),
1875 "aria-valuenow" => Ok(AriaProperty::AriaValuenow),
1876 "aria-valuetext" => Ok(AriaProperty::AriaValuetext),
1877 _ => Err(UnknownPropertyError),
1878 }
1879 }
1880}
1881
1882impl Display for AriaProperty {
1883 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1884 write!(
1885 f,
1886 "{}",
1887 match self {
1888 AriaProperty::AriaActivedescendant => "aria-activedescendant",
1889 AriaProperty::AriaAtomic => "aria-atomic",
1890 AriaProperty::AriaAutocomplete => "aria-autocomplete",
1891 AriaProperty::AriaBraillelabel => "aria-braillelabel",
1892 AriaProperty::AriaBrailleroledescription => "aria-brailleroledescription",
1893 AriaProperty::AriaBusy => "aria-busy",
1894 AriaProperty::AriaChecked => "aria-checked",
1895 AriaProperty::AriaColcount => "aria-colcount",
1896 AriaProperty::AriaColindex => "aria-colindex",
1897 AriaProperty::AriaColspan => "aria-colspan",
1898 AriaProperty::AriaControls => "aria-controls",
1899 AriaProperty::AriaCurrent => "aria-current",
1900 AriaProperty::AriaDescribedby => "aria-describedby",
1901 AriaProperty::AriaDescription => "aria-description",
1902 AriaProperty::AriaDetails => "aria-details",
1903 AriaProperty::AriaDisabled => "aria-disabled",
1904 AriaProperty::AriaDropeffect => "aria-dropeffect",
1905 AriaProperty::AriaErrormessage => "aria-errormessage",
1906 AriaProperty::AriaExpanded => "aria-expanded",
1907 AriaProperty::AriaFlowto => "aria-flowto",
1908 AriaProperty::AriaGrabbed => "aria-grabbed",
1909 AriaProperty::AriaHaspopup => "aria-haspopup",
1910 AriaProperty::AriaHidden => "aria-hidden",
1911 AriaProperty::AriaInvalid => "aria-invalid",
1912 AriaProperty::AriaKeyshortcuts => "aria-keyshortcuts",
1913 AriaProperty::AriaLabel => "aria-label",
1914 AriaProperty::AriaLabelledby => "aria-labelledby",
1915 AriaProperty::AriaLevel => "aria-level",
1916 AriaProperty::AriaLive => "aria-live",
1917 AriaProperty::AriaModal => "aria-modal",
1918 AriaProperty::AriaMultiline => "aria-multiline",
1919 AriaProperty::AriaMultiselectable => "aria-multiselectable",
1920 AriaProperty::AriaOrientation => "aria-orientation",
1921 AriaProperty::AriaOwns => "aria-owns",
1922 AriaProperty::AriaPlaceholder => "aria-placeholder",
1923 AriaProperty::AriaPosinset => "aria-posinset",
1924 AriaProperty::AriaPressed => "aria-pressed",
1925 AriaProperty::AriaReadonly => "aria-readonly",
1926 AriaProperty::AriaRelevant => "aria-relevant",
1927 AriaProperty::AriaRequired => "aria-required",
1928 AriaProperty::AriaRoledescription => "aria-roledescription",
1929 AriaProperty::AriaRowcount => "aria-rowcount",
1930 AriaProperty::AriaRowindex => "aria-rowindex",
1931 AriaProperty::AriaRowspan => "aria-rowspan",
1932 AriaProperty::AriaSelected => "aria-selected",
1933 AriaProperty::AriaSetsize => "aria-setsize",
1934 AriaProperty::AriaSort => "aria-sort",
1935 AriaProperty::AriaValuemax => "aria-valuemax",
1936 AriaProperty::AriaValuemin => "aria-valuemin",
1937 AriaProperty::AriaValuenow => "aria-valuenow",
1938 AriaProperty::AriaValuetext => "aria-valuetext",
1939 }
1940 )
1941 }
1942}
1943
1944pub type AriaPropertyMap = HashMap<AriaProperty, Option<String>>;
1945
1946#[derive(Clone, Debug)]
1947pub struct AriaPropertyDefinition {
1948 pub r#type: AriaPropertyDefinitionType,
1949 pub values: Option<Vec<String>>,
1950 pub allow_undefined: Option<bool>,
1951}
1952
1953#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
1954pub enum AriaPropertyDefinitionType {
1955 String,
1956 Id,
1957 Idlist,
1958 Integer,
1959 Number,
1960 Boolean,
1961 Token,
1962 Tokenlist,
1963 Tristate,
1964}
1965
1966#[derive(Debug, PartialEq, Eq)]
1967pub struct UnknownTypeError;
1968
1969impl FromStr for AriaPropertyDefinitionType {
1970 type Err = UnknownTypeError;
1971
1972 fn from_str(s: &str) -> Result<Self, Self::Err> {
1973 match s {
1974 "string" => Ok(AriaPropertyDefinitionType::String),
1975 "id" => Ok(AriaPropertyDefinitionType::Id),
1976 "idlist" => Ok(AriaPropertyDefinitionType::Idlist),
1977 "integer" => Ok(AriaPropertyDefinitionType::Integer),
1978 "number" => Ok(AriaPropertyDefinitionType::Number),
1979 "boolean" => Ok(AriaPropertyDefinitionType::Boolean),
1980 "token" => Ok(AriaPropertyDefinitionType::Token),
1981 "tokenlist" => Ok(AriaPropertyDefinitionType::Tokenlist),
1982 "tristate" => Ok(AriaPropertyDefinitionType::Tristate),
1983 _ => Err(UnknownTypeError),
1984 }
1985 }
1986}
1987
1988impl Display for AriaPropertyDefinitionType {
1989 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1990 write!(
1991 f,
1992 "{}",
1993 match self {
1994 AriaPropertyDefinitionType::String => "string",
1995 AriaPropertyDefinitionType::Id => "id",
1996 AriaPropertyDefinitionType::Idlist => "idlist",
1997 AriaPropertyDefinitionType::Integer => "integer",
1998 AriaPropertyDefinitionType::Number => "number",
1999 AriaPropertyDefinitionType::Boolean => "boolean",
2000 AriaPropertyDefinitionType::Token => "token",
2001 AriaPropertyDefinitionType::Tokenlist => "tokenlist",
2002 AriaPropertyDefinitionType::Tristate => "tristate",
2003 }
2004 )
2005 }
2006}
2007
2008#[derive(Clone, Debug)]
2009pub struct AriaRoleRelation {
2010 pub module: Option<String>,
2011 pub concept: Option<AriaRoleRelationConcept>,
2012}
2013
2014#[derive(Clone, Debug, Eq, Hash, PartialEq)]
2015pub struct AriaRoleRelationConcept {
2016 pub name: String,
2017 pub attributes: Option<Vec<AriaRoleRelationConceptAttribute>>,
2018 pub constraints: Option<Vec<AriaRoleRelationConceptConstraint>>,
2019}
2020
2021#[derive(Clone, Debug, Eq, Hash, PartialEq)]
2022pub struct AriaRoleRelationConceptAttribute {
2023 pub name: String,
2024 pub value: Option<String>,
2025 pub constraints: Option<Vec<AriaRoleRelationConceptAttributeConstraint>>,
2026}
2027
2028#[derive(Debug, PartialEq, Eq)]
2029pub struct UnknownConstraintError;
2030
2031#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
2032pub enum AriaRoleRelationConceptAttributeConstraint {
2033 Undefined,
2034 Set,
2035 GreaterThanOne,
2036}
2037
2038impl FromStr for AriaRoleRelationConceptAttributeConstraint {
2039 type Err = UnknownConstraintError;
2040
2041 fn from_str(s: &str) -> Result<Self, Self::Err> {
2042 match s {
2043 "undefined" => Ok(AriaRoleRelationConceptAttributeConstraint::Undefined),
2044 "set" => Ok(AriaRoleRelationConceptAttributeConstraint::Set),
2045 ">1" => Ok(AriaRoleRelationConceptAttributeConstraint::GreaterThanOne),
2046 _ => Err(UnknownConstraintError),
2047 }
2048 }
2049}
2050
2051impl Display for AriaRoleRelationConceptAttributeConstraint {
2052 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
2053 write!(
2054 f,
2055 "{}",
2056 match self {
2057 AriaRoleRelationConceptAttributeConstraint::Undefined => "undefined",
2058 AriaRoleRelationConceptAttributeConstraint::Set => "set",
2059 AriaRoleRelationConceptAttributeConstraint::GreaterThanOne => ">1",
2060 }
2061 )
2062 }
2063}
2064
2065#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
2066pub enum AriaRoleRelationConceptConstraint {
2067 ScopedToTheBodyElement,
2068 ScopedToTheMainElement,
2069 ScopedToASectioningRootElementOtherThanBody,
2070 ScopedToASectioningContentElement,
2071 DirectDescendantOfDocument,
2072 DirectDescendantOfOl,
2073 DirectDescendantOfUl,
2074 DirectDescendantOfMenu,
2075 DirectDescendantOfDetailsElementWithTheOpenAttributeDefined,
2076 AncestorTableElementHasTableRole,
2077 AncestorTableElementHasGridRole,
2078 AncestorTableElementHasTreegridRole,
2079 TheSizeAttributeValueIsGreaterThanOne,
2080 TheMultipleAttributeIsNotSetAndTheSizeAttributeDoesNotHaveAValueGreaterThanOne,
2081 TheListAttributeIsNotSet,
2082}
2083
2084impl FromStr for AriaRoleRelationConceptConstraint {
2085 type Err = UnknownConstraintError;
2086
2087 fn from_str(s: &str) -> Result<Self, Self::Err> {
2088 match s {
2089 "scoped to the body element" => Ok(AriaRoleRelationConceptConstraint::ScopedToTheBodyElement),
2090 "scoped to the main element" => Ok(AriaRoleRelationConceptConstraint::ScopedToTheMainElement),
2091 "scoped to a sectioning root element other than body" => Ok(AriaRoleRelationConceptConstraint::ScopedToASectioningRootElementOtherThanBody),
2092 "scoped to a sectioning content element" => Ok(AriaRoleRelationConceptConstraint::ScopedToASectioningContentElement),
2093 "direct descendant of document" => Ok(AriaRoleRelationConceptConstraint::DirectDescendantOfDocument),
2094 "direct descendant of ol" => Ok(AriaRoleRelationConceptConstraint::DirectDescendantOfOl),
2095 "direct descendant of ul" => Ok(AriaRoleRelationConceptConstraint::DirectDescendantOfUl),
2096 "direct descendant of menu" => Ok(AriaRoleRelationConceptConstraint::DirectDescendantOfMenu),
2097 "direct descendant of details element with the open attribute defined" => Ok(AriaRoleRelationConceptConstraint::DirectDescendantOfDetailsElementWithTheOpenAttributeDefined),
2098 "ancestor table element has table role" => Ok(AriaRoleRelationConceptConstraint::AncestorTableElementHasTableRole),
2099 "ancestor table element has grid role" => Ok(AriaRoleRelationConceptConstraint::AncestorTableElementHasGridRole),
2100 "ancestor table element has treegrid role" => Ok(AriaRoleRelationConceptConstraint::AncestorTableElementHasTreegridRole),
2101 "the size attribute value is greater than 1" => Ok(AriaRoleRelationConceptConstraint::TheSizeAttributeValueIsGreaterThanOne),
2102 "the multiple attribute is not set and the size attribute does not have a value greater than 1" => Ok(AriaRoleRelationConceptConstraint::TheMultipleAttributeIsNotSetAndTheSizeAttributeDoesNotHaveAValueGreaterThanOne),
2103 "the list attribute is not set" => Ok(AriaRoleRelationConceptConstraint::TheListAttributeIsNotSet),
2104 _ => Err(UnknownConstraintError),
2105 }
2106 }
2107}
2108
2109impl Display for AriaRoleRelationConceptConstraint {
2110 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
2111 write!(
2112 f,
2113 "{}",
2114 match self {
2115 AriaRoleRelationConceptConstraint::ScopedToTheBodyElement => "scoped to the body element",
2116 AriaRoleRelationConceptConstraint::ScopedToTheMainElement => "scoped to the main element",
2117 AriaRoleRelationConceptConstraint::ScopedToASectioningRootElementOtherThanBody => "scoped to a sectioning root element other than body",
2118 AriaRoleRelationConceptConstraint::ScopedToASectioningContentElement => "scoped to a sectioning content element",
2119 AriaRoleRelationConceptConstraint::DirectDescendantOfDocument => "direct descendant of document",
2120 AriaRoleRelationConceptConstraint::DirectDescendantOfOl => "direct descendant of ol",
2121 AriaRoleRelationConceptConstraint::DirectDescendantOfUl => "direct descendant of ul",
2122 AriaRoleRelationConceptConstraint::DirectDescendantOfMenu => "direct descendant of menu",
2123 AriaRoleRelationConceptConstraint::DirectDescendantOfDetailsElementWithTheOpenAttributeDefined => "direct descendant of details element with the open attribute defined",
2124 AriaRoleRelationConceptConstraint::AncestorTableElementHasTableRole => "ancestor table element has table role",
2125 AriaRoleRelationConceptConstraint::AncestorTableElementHasGridRole => "ancestor table element has grid role",
2126 AriaRoleRelationConceptConstraint::AncestorTableElementHasTreegridRole => "ancestor table element has treegrid role",
2127 AriaRoleRelationConceptConstraint::TheSizeAttributeValueIsGreaterThanOne => "the size attribute value is greater than 1",
2128 AriaRoleRelationConceptConstraint::TheMultipleAttributeIsNotSetAndTheSizeAttributeDoesNotHaveAValueGreaterThanOne => "the multiple attribute is not set and the size attribute does not have a value greater than 1",
2129 AriaRoleRelationConceptConstraint::TheListAttributeIsNotSet => "the list attribute is not set",
2130 }
2131 )
2132 }
2133}
2134
2135#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
2136pub enum AriaQueryHtmlElement {
2137 A,
2138 Abbr,
2139 Acronym,
2140 Address,
2141 Applet,
2142 Area,
2143 Article,
2144 Aside,
2145 Audio,
2146 B,
2147 Base,
2148 Bdi,
2149 Bdo,
2150 Big,
2151 Blink,
2152 Blockquote,
2153 Body,
2154 Br,
2155 Button,
2156 Canvas,
2157 Caption,
2158 Center,
2159 Cite,
2160 Code,
2161 Col,
2162 Colgroup,
2163 Content,
2164 Data,
2165 Datalist,
2166 Dd,
2167 Del,
2168 Details,
2169 Dfn,
2170 Dialog,
2171 Dir,
2172 Div,
2173 Dl,
2174 Dt,
2175 Em,
2176 Embed,
2177 Fieldset,
2178 Figcaption,
2179 Figure,
2180 Font,
2181 Footer,
2182 Form,
2183 Frame,
2184 Frameset,
2185 H1,
2186 H2,
2187 H3,
2188 H4,
2189 H5,
2190 H6,
2191 Head,
2192 Header,
2193 Hgroup,
2194 Hr,
2195 Html,
2196 I,
2197 Iframe,
2198 Img,
2199 Input,
2200 Ins,
2201 Kbd,
2202 Keygen,
2203 Label,
2204 Legend,
2205 Li,
2206 Link,
2207 Main,
2208 Map,
2209 Mark,
2210 Marquee,
2211 Menu,
2212 Menuitem,
2213 Meta,
2214 Meter,
2215 Nav,
2216 Noembed,
2217 Noscript,
2218 Object,
2219 Ol,
2220 Optgroup,
2221 Option,
2222 Output,
2223 P,
2224 Param,
2225 Picture,
2226 Pre,
2227 Progress,
2228 Q,
2229 Rp,
2230 Rt,
2231 Rtc,
2232 Ruby,
2233 S,
2234 Samp,
2235 Script,
2236 Section,
2237 Select,
2238 Small,
2239 Source,
2240 Spacer,
2241 Span,
2242 Strike,
2243 Strong,
2244 Style,
2245 Sub,
2246 Summary,
2247 Sup,
2248 Table,
2249 Tbody,
2250 Td,
2251 Textarea,
2252 Tfoot,
2253 Th,
2254 Thead,
2255 Time,
2256 Title,
2257 Tr,
2258 Track,
2259 Tt,
2260 U,
2261 Ul,
2262 Var,
2263 Video,
2264 Wbr,
2265 Xmp,
2266}
2267
2268pub struct AriaDomDefinition {
2269 pub reserved: bool,
2270}