|
| 1 | +namespace Bunit; |
| 2 | + |
| 3 | +/// <summary> |
| 4 | +/// Represents WAI-ARIA roles used to identify the type of an element. |
| 5 | +/// Mirrors Playwright.NET's AriaRole enum for familiarity. |
| 6 | +/// </summary> |
| 7 | +public enum AriaRole |
| 8 | +{ |
| 9 | + Alert, |
| 10 | + AlertDialog, |
| 11 | + Application, |
| 12 | + Article, |
| 13 | + Banner, |
| 14 | + Blockquote, |
| 15 | + Button, |
| 16 | + Caption, |
| 17 | + Cell, |
| 18 | + Checkbox, |
| 19 | + Code, |
| 20 | + ColumnHeader, |
| 21 | + Combobox, |
| 22 | + Complementary, |
| 23 | + ContentInfo, |
| 24 | + Definition, |
| 25 | + Deletion, |
| 26 | + Dialog, |
| 27 | + Directory, |
| 28 | + Document, |
| 29 | + Emphasis, |
| 30 | + Feed, |
| 31 | + Figure, |
| 32 | + Form, |
| 33 | + Generic, |
| 34 | + Grid, |
| 35 | + GridCell, |
| 36 | + Group, |
| 37 | + Heading, |
| 38 | + Img, |
| 39 | + Insertion, |
| 40 | + Link, |
| 41 | + List, |
| 42 | + Listbox, |
| 43 | + Listitem, |
| 44 | + Log, |
| 45 | + Main, |
| 46 | + Mark, |
| 47 | + Marquee, |
| 48 | + Math, |
| 49 | + Menu, |
| 50 | + Menubar, |
| 51 | + Menuitem, |
| 52 | + Menuitemcheckbox, |
| 53 | + Menuitemradio, |
| 54 | + Meter, |
| 55 | + Navigation, |
| 56 | + None, |
| 57 | + Note, |
| 58 | + Option, |
| 59 | + Paragraph, |
| 60 | + Presentation, |
| 61 | + Progressbar, |
| 62 | + Radio, |
| 63 | + Radiogroup, |
| 64 | + Region, |
| 65 | + Row, |
| 66 | + Rowgroup, |
| 67 | + Rowheader, |
| 68 | + Scrollbar, |
| 69 | + Search, |
| 70 | + Searchbox, |
| 71 | + Separator, |
| 72 | + Slider, |
| 73 | + Spinbutton, |
| 74 | + Status, |
| 75 | + Strong, |
| 76 | + Subscript, |
| 77 | + Superscript, |
| 78 | + Switch, |
| 79 | + Tab, |
| 80 | + Table, |
| 81 | + Tablist, |
| 82 | + Tabpanel, |
| 83 | + Term, |
| 84 | + Textbox, |
| 85 | + Time, |
| 86 | + Timer, |
| 87 | + Toolbar, |
| 88 | + Tooltip, |
| 89 | + Tree, |
| 90 | + Treegrid, |
| 91 | + Treeitem, |
| 92 | +} |
| 93 | + |
| 94 | +internal static class AriaRoleExtensions |
| 95 | +{ |
| 96 | + internal static string ToRoleString(this AriaRole role) => role switch |
| 97 | + { |
| 98 | + AriaRole.Alert => "alert", |
| 99 | + AriaRole.AlertDialog => "alertdialog", |
| 100 | + AriaRole.Application => "application", |
| 101 | + AriaRole.Article => "article", |
| 102 | + AriaRole.Banner => "banner", |
| 103 | + AriaRole.Blockquote => "blockquote", |
| 104 | + AriaRole.Button => "button", |
| 105 | + AriaRole.Caption => "caption", |
| 106 | + AriaRole.Cell => "cell", |
| 107 | + AriaRole.Checkbox => "checkbox", |
| 108 | + AriaRole.Code => "code", |
| 109 | + AriaRole.ColumnHeader => "columnheader", |
| 110 | + AriaRole.Combobox => "combobox", |
| 111 | + AriaRole.Complementary => "complementary", |
| 112 | + AriaRole.ContentInfo => "contentinfo", |
| 113 | + AriaRole.Definition => "definition", |
| 114 | + AriaRole.Deletion => "deletion", |
| 115 | + AriaRole.Dialog => "dialog", |
| 116 | + AriaRole.Directory => "directory", |
| 117 | + AriaRole.Document => "document", |
| 118 | + AriaRole.Emphasis => "emphasis", |
| 119 | + AriaRole.Feed => "feed", |
| 120 | + AriaRole.Figure => "figure", |
| 121 | + AriaRole.Form => "form", |
| 122 | + AriaRole.Generic => "generic", |
| 123 | + AriaRole.Grid => "grid", |
| 124 | + AriaRole.GridCell => "gridcell", |
| 125 | + AriaRole.Group => "group", |
| 126 | + AriaRole.Heading => "heading", |
| 127 | + AriaRole.Img => "img", |
| 128 | + AriaRole.Insertion => "insertion", |
| 129 | + AriaRole.Link => "link", |
| 130 | + AriaRole.List => "list", |
| 131 | + AriaRole.Listbox => "listbox", |
| 132 | + AriaRole.Listitem => "listitem", |
| 133 | + AriaRole.Log => "log", |
| 134 | + AriaRole.Main => "main", |
| 135 | + AriaRole.Mark => "mark", |
| 136 | + AriaRole.Marquee => "marquee", |
| 137 | + AriaRole.Math => "math", |
| 138 | + AriaRole.Menu => "menu", |
| 139 | + AriaRole.Menubar => "menubar", |
| 140 | + AriaRole.Menuitem => "menuitem", |
| 141 | + AriaRole.Menuitemcheckbox => "menuitemcheckbox", |
| 142 | + AriaRole.Menuitemradio => "menuitemradio", |
| 143 | + AriaRole.Meter => "meter", |
| 144 | + AriaRole.Navigation => "navigation", |
| 145 | + AriaRole.None => "none", |
| 146 | + AriaRole.Note => "note", |
| 147 | + AriaRole.Option => "option", |
| 148 | + AriaRole.Paragraph => "paragraph", |
| 149 | + AriaRole.Presentation => "presentation", |
| 150 | + AriaRole.Progressbar => "progressbar", |
| 151 | + AriaRole.Radio => "radio", |
| 152 | + AriaRole.Radiogroup => "radiogroup", |
| 153 | + AriaRole.Region => "region", |
| 154 | + AriaRole.Row => "row", |
| 155 | + AriaRole.Rowgroup => "rowgroup", |
| 156 | + AriaRole.Rowheader => "rowheader", |
| 157 | + AriaRole.Scrollbar => "scrollbar", |
| 158 | + AriaRole.Search => "search", |
| 159 | + AriaRole.Searchbox => "searchbox", |
| 160 | + AriaRole.Separator => "separator", |
| 161 | + AriaRole.Slider => "slider", |
| 162 | + AriaRole.Spinbutton => "spinbutton", |
| 163 | + AriaRole.Status => "status", |
| 164 | + AriaRole.Strong => "strong", |
| 165 | + AriaRole.Subscript => "subscript", |
| 166 | + AriaRole.Superscript => "superscript", |
| 167 | + AriaRole.Switch => "switch", |
| 168 | + AriaRole.Tab => "tab", |
| 169 | + AriaRole.Table => "table", |
| 170 | + AriaRole.Tablist => "tablist", |
| 171 | + AriaRole.Tabpanel => "tabpanel", |
| 172 | + AriaRole.Term => "term", |
| 173 | + AriaRole.Textbox => "textbox", |
| 174 | + AriaRole.Time => "time", |
| 175 | + AriaRole.Timer => "timer", |
| 176 | + AriaRole.Toolbar => "toolbar", |
| 177 | + AriaRole.Tooltip => "tooltip", |
| 178 | + AriaRole.Tree => "tree", |
| 179 | + AriaRole.Treegrid => "treegrid", |
| 180 | + AriaRole.Treeitem => "treeitem", |
| 181 | + _ => throw new ArgumentOutOfRangeException(nameof(role), role, $"Unknown AriaRole value: {role}"), |
| 182 | + }; |
| 183 | +} |
0 commit comments