1[![Build Status](https://travis-ci.org/A11yance/axobject-query.svg?branch=master)](https://travis-ci.org/A11yance/axobject-query)
2
3**NOTICE: The API for AXObject Query is very much under development until a major version release. Please be aware that data structures might change in minor version releases before 1.0.0 is released.**
4
5# AXObject Query
6
7Approximate model of the [Chrome AXObject](https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/accessibility/AXObject.h).
8
9The project attempts to map the AXObject concepts to the [WAI-ARIA 1.1 Roles Model](https://www.w3.org/TR/wai-aria-1.1/#roles) so that a complete representation of the semantic HTML layer, as it is exposed assistive technology, can be obtained.
10
11## Utilities
12
13### AXObjects
14
15```javascript
16import { AXObjects } from 'axobject-query';
17```
18
19AXObjects are mapped to their HTML and ARIA concepts in the `relatedConcepts` field.
20
21The `type` field is a loose association of an AXObject to the `window`, `structure` and `widget` abstract roles in ARIA. The `generic` value is given to `DivRole`; it does not exist in ARIA. Divs are special in HTML in the way that they are used as generic containers. Span might have also been associated with a generic type except that there is no `SpanRole` AXObject.
22
23```
24Map {
25  'AbbrRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
26  'AlertDialogRole' => { relatedConcepts: [ [Object] ], type: 'window' },
27  'AlertRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
28  'AnnotationRole' => { relatedConcepts: [], type: 'structure' },
29  'ApplicationRole' => { relatedConcepts: [ [Object] ], type: 'window' },
30  'ArticleRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
31  'AudioRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
32  'BannerRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
33  'BlockquoteRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
34  'BusyIndicatorRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
35  'ButtonRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
36  'CanvasRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
37  'CaptionRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
38  'CellRole' => { relatedConcepts: [ [Object], [Object], [Object] ], type: 'widget' },
39  'CheckBoxRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
40  'ColorWellRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
41  'ColumnHeaderRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
42  'ColumnRole' => { relatedConcepts: [], type: 'structure' },
43  'ComboBoxRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
44  'ComplementaryRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
45  'ContentInfoRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
46  'DateRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
47  'DateTimeRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
48  'DefinitionRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
49  'DescriptionListDetailRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
50  'DescriptionListRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
51  'DescriptionListTermRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
52  'DetailsRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
53  'DialogRole' => { relatedConcepts: [ [Object], [Object] ], type: 'window' },
54  'DirectoryRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
55  'DisclosureTriangleRole' => { relatedConcepts: [], type: 'widget' },
56  'DivRole' => { relatedConcepts: [ [Object] ], type: 'generic' },
57  'DocumentRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
58  'EmbeddedObjectRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
59  'FeedRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
60  'FigcaptionRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
61  'FigureRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
62  'FooterRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
63  'FormRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
64  'GridRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
65  'GroupRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
66  'HeadingRole' => { relatedConcepts: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object] ], type: 'structure' },
67  'IframePresentationalRole' => { relatedConcepts: [], type: 'window' },
68  'IframeRole' => { relatedConcepts: [ [Object] ], type: 'window' },
69  'IgnoredRole' => { relatedConcepts: [], type: 'structure' },
70  'ImageMapLinkRole' => { relatedConcepts: [], type: 'widget' },
71  'ImageMapRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
72  'ImageRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
73  'InlineTextBoxRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
74  'InputTimeRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
75  'LabelRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
76  'LegendRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
77  'LineBreakRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
78  'LinkRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
79  'ListBoxOptionRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
80  'ListBoxRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
81  'ListItemRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
82  'ListMarkerRole' => { relatedConcepts: [], type: 'structure' },
83  'ListRole' => { relatedConcepts: [ [Object], [Object], [Object] ], type: 'structure' },
84  'LogRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
85  'MainRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
86  'MarkRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
87  'MarqueeRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
88  'MathRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
89  'MenuBarRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
90  'MenuButtonRole' => { relatedConcepts: [], type: 'widget' },
91  'MenuItemRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
92  'MenuItemCheckBoxRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
93  'MenuItemRadioRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
94  'MenuListOptionRole' => { relatedConcepts: [], type: 'widget' },
95  'MenuListPopupRole' => { relatedConcepts: [], type: 'widget' },
96  'MenuRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
97  'MeterRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
98  'NavigationRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
99  'NoneRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
100  'NoteRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
101  'OutlineRole' => { relatedConcepts: [], type: 'structure' },
102  'ParagraphRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
103  'PopUpButtonRole' => { relatedConcepts: [], type: 'widget' },
104  'PreRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
105  'PresentationalRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
106  'ProgressIndicatorRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
107  'RadioButtonRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
108  'RadioGroupRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
109  'RegionRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
110  'RootWebAreaRole' => { relatedConcepts: [], type: 'structure' },
111  'RowHeaderRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
112  'RowRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
113  'RubyRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
114  'RulerRole' => { relatedConcepts: [], type: 'structure' },
115  'ScrollAreaRole' => { relatedConcepts: [], type: 'structure' },
116  'ScrollBarRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
117  'SeamlessWebAreaRole' => { relatedConcepts: [], type: 'structure' },
118  'SearchRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
119  'SearchBoxRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
120  'SliderRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
121  'SliderThumbRole' => { relatedConcepts: [], type: 'structure' },
122  'SpinButtonRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
123  'SpinButtonPartRole' => { relatedConcepts: [], type: 'structure' },
124  'SplitterRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
125  'StaticTextRole' => { relatedConcepts: [], type: 'structure' },
126  'StatusRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
127  'SVGRootRole' => { relatedConcepts: [], type: 'structure' },
128  'SwitchRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
129  'TabGroupRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
130  'TabRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
131  'TableHeaderContainerRole' => { relatedConcepts: [], type: 'structure' },
132  'TableRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
133  'TabListRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
134  'TabPanelRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
135  'TermRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
136  'TextFieldRole' => { relatedConcepts: [ [Object], [Object], [Object] ], type: 'widget' },
137  'TimeRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
138  'TimerRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
139  'ToggleButtonRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
140  'ToolbarRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
141  'TreeRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
142  'TreeGridRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
143  'TreeItemRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
144  'UserInterfaceTooltipRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
145  'VideoRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
146  'WebAreaRole' => { relatedConcepts: [], type: 'structure' },
147  'WindowRole' => { relatedConcepts: [], type: 'window' }
148}
149```
150
151### AXObject to Element
152
153```javascript
154import { AXObjectElements } from 'axobject-query';
155```
156
157AXObjects are mapped to their related HTML concepts, which may require attributes (in the case of inputs) to obtain the correct association.
158
159```
160Map {
161  'AbbrRole' => Set { { name: 'abbr' } },
162  'ArticleRole' => Set { { name: 'article' } },
163  'AudioRole' => Set { { name: 'audio' } },
164  'BlockquoteRole' => Set { { name: 'blockquote' } },
165  'ButtonRole' => Set { { name: 'button' } },
166  'CanvasRole' => Set { { name: 'canvas' } },
167  'CaptionRole' => Set { { name: 'caption' } },
168  'CellRole' => Set { { name: 'td' } },
169  'CheckBoxRole' => Set { { name: 'input', attributes: [Object] } },
170  'ColorWellRole' => Set { { name: 'input', attributes: [Object] } },
171  'ColumnHeaderRole' => Set { { name: 'th' } },
172  'DateRole' => Set { { name: 'input', attributes: [Object] } },
173  'DateTimeRole' => Set { { name: 'input', attributes: [Object] } },
174  'DefinitionRole' => Set { { name: 'dfn' } },
175  'DescriptionListDetailRole' => Set { { name: 'dd' } },
176  'DescriptionListRole' => Set { { name: 'dl' } },
177  'DescriptionListTermRole' => Set { { name: 'dt' } },
178  'DetailsRole' => Set { { name: 'details' } },
179  'DialogRole' => Set { { name: 'dialog' } },
180  'DirectoryRole' => Set { { name: 'dir' } },
181  'DivRole' => Set { { name: 'div' } },
182  'EmbeddedObjectRole' => Set { { name: 'embed' } },
183  'FigcaptionRole' => Set { { name: 'figcaption' } },
184  'FigureRole' => Set { { name: 'figure' } },
185  'FooterRole' => Set { { name: 'footer' } },
186  'FormRole' => Set { { name: 'form' } },
187  'HeadingRole' => Set { { name: 'h1' }, { name: 'h2' }, { name: 'h3' }, { name: 'h4' }, { name: 'h5' }, { name: 'h6' } },
188  'IframeRole' => Set { { name: 'iframe' } },
189  'ImageMapRole' => Set { { name: 'img', attributes: [Object] } },
190  'ImageRole' => Set { { name: 'img' } },
191  'InlineTextBoxRole' => Set { { name: 'input' } },
192  'InputTimeRole' => Set { { name: 'input', attributes: [Object] } },
193  'LabelRole' => Set { { name: 'label' } },
194  'LegendRole' => Set { { name: 'legend' } },
195  'LineBreakRole' => Set { { name: 'br' } },
196  'LinkRole' => Set { { name: 'a', attributes: [Object] } },
197  'ListBoxOptionRole' => Set { { name: 'option' } },
198  'ListItemRole' => Set { { name: 'li' } },
199  'ListRole' => Set { { name: 'ul' }, { name: 'ol' } },
200  'MainRole' => Set { { name: 'main' } },
201  'MarkRole' => Set { { name: 'mark' } },
202  'MarqueeRole' => Set { { name: 'marquee' } },
203  'MenuItemRole' => Set { { name: 'menuitem' } },
204  'MenuRole' => Set { { name: 'menu' } },
205  'MeterRole' => Set { { name: 'meter' } },
206  'NavigationRole' => Set { { name: 'nav' } },
207  'ParagraphRole' => Set { { name: 'p' } },
208  'PreRole' => Set { { name: 'pre' } },
209  'ProgressIndicatorRole' => Set { { name: 'progress' } },
210  'RadioButtonRole' => Set { { name: 'input', attributes: [Object] } },
211  'RowHeaderRole' => Set { { name: 'th', attributes: [Object] } },
212  'RowRole' => Set { { name: 'tr' } },
213  'RubyRole' => Set { { name: 'ruby' } },
214  'SearchBoxRole' => Set { { name: 'input', attributes: [Object] } },
215  'SliderRole' => Set { { name: 'input', attributes: [Object] } },
216  'SpinButtonRole' => Set { { name: 'input', attributes: [Object] } },
217  'TableRole' => Set { { name: 'table' } },
218  'TextFieldRole' => Set { { name: 'input' }, { name: 'input', attributes: [Object] } },
219  'TimeRole' => Set { { name: 'time' } },
220  'VideoRole' => Set { { name: 'video' }
221}
222```
223
224### AXObject to Role
225
226```javascript
227import { AXObjectRoles } from 'axobject-query';
228```
229
230AXObjects are mapped to their related ARIA concepts..
231
232```
233Map {
234  'AlertDialogRole' => Set { { name: 'alertdialog' } },
235  'AlertRole' => Set { { name: 'alert' } },
236  'ApplicationRole' => Set { { name: 'application' } },
237  'ArticleRole' => Set { { name: 'article' } },
238  'BannerRole' => Set { { name: 'banner' } },
239  'BusyIndicatorRole' => Set { { attributes: [Object] } },
240  'ButtonRole' => Set { { name: 'button' } },
241  'CellRole' => Set { { name: 'cell' }, { name: 'gridcell' } },
242  'CheckBoxRole' => Set { { name: 'checkbox' } },
243  'ColumnHeaderRole' => Set { { name: 'columnheader' } },
244  'ComboBoxRole' => Set { { name: 'combobox' } },
245  'ComplementaryRole' => Set { { name: 'complementary' } },
246  'ContentInfoRole' => Set { { name: 'structureinfo' } },
247  'DialogRole' => Set { { name: 'dialog' } },
248  'DirectoryRole' => Set { { name: 'directory' } },
249  'DocumentRole' => Set { { name: 'document' } },
250  'FeedRole' => Set { { name: 'feed' } },
251  'FigureRole' => Set { { name: 'figure' } },
252  'FormRole' => Set { { name: 'form' } },
253  'GridRole' => Set { { name: 'grid' } },
254  'GroupRole' => Set { { name: 'group' } },
255  'HeadingRole' => Set { { name: 'heading' } },
256  'ImageRole' => Set { { name: 'img' } },
257  'LinkRole' => Set { { name: 'link' } },
258  'ListBoxOptionRole' => Set { { name: 'option' } },
259  'ListBoxRole' => Set { { name: 'listbox' } },
260  'ListItemRole' => Set { { name: 'listitem' } },
261  'ListRole' => Set { { name: 'list' } },
262  'LogRole' => Set { { name: 'log' } },
263  'MainRole' => Set { { name: 'main' } },
264  'MarqueeRole' => Set { { name: 'marquee' } },
265  'MathRole' => Set { { name: 'math' } },
266  'MenuBarRole' => Set { { name: 'menubar' } },
267  'MenuItemRole' => Set { { name: 'menuitem' } },
268  'MenuItemCheckBoxRole' => Set { { name: 'menuitemcheckbox' } },
269  'MenuItemRadioRole' => Set { { name: 'menuitemradio' } },
270  'MenuRole' => Set { { name: 'menu' } },
271  'NavigationRole' => Set { { name: 'navigation' } },
272  'NoneRole' => Set { { name: 'none' } },
273  'NoteRole' => Set { { name: 'note' } },
274  'PresentationalRole' => Set { { name: 'presentation' } },
275  'ProgressIndicatorRole' => Set { { name: 'progressbar' } },
276  'RadioButtonRole' => Set { { name: 'radio' } },
277  'RadioGroupRole' => Set { { name: 'radiogroup' } },
278  'RegionRole' => Set { { name: 'region' } },
279  'RowHeaderRole' => Set { { name: 'rowheader' } },
280  'RowRole' => Set { { name: 'row' } },
281  'ScrollBarRole' => Set { { name: 'scrollbar' } },
282  'SearchRole' => Set { { name: 'search' } },
283  'SearchBoxRole' => Set { { name: 'searchbox' } },
284  'SliderRole' => Set { { name: 'slider' } },
285  'SpinButtonRole' => Set { { name: 'spinbutton' } },
286  'SplitterRole' => Set { { name: 'separator' } },
287  'StatusRole' => Set { { name: 'status' } },
288  'SwitchRole' => Set { { name: 'switch' } },
289  'TabGroupRole' => Set { { name: 'tablist' } },
290  'TabRole' => Set { { name: 'tab' } },
291  'TableRole' => Set { { name: 'table' } },
292  'TabListRole' => Set { { name: 'tablist' } },
293  'TabPanelRole' => Set { { name: 'tabpanel' } },
294  'TermRole' => Set { { name: 'term' } },
295  'TextFieldRole' => Set { { name: 'textbox' } },
296  'TimerRole' => Set { { name: 'timer' } },
297  'ToggleButtonRole' => Set { { attributes: [Object] } },
298  'ToolbarRole' => Set { { name: 'toolbar' } },
299  'TreeRole' => Set { { name: 'tree' } },
300  'TreeGridRole' => Set { { name: 'treegrid' } },
301  'TreeItemRole' => Set { { name: 'treeitem' } },
302  'UserInterfaceTooltipRole' => Set { { name: 'tooltip' } }
303}
304```
305
306### Element to AXObject
307
308```javascript
309import { elementAXObjects } from 'axobject-query';
310```
311
312HTML elements are mapped to their related AXConcepts concepts.
313
314```
315Map {
316  { name: 'abbr' } => Set { 'AbbrRole' },
317  { name: 'article' } => Set { 'ArticleRole' },
318  { name: 'audio' } => Set { 'AudioRole' },
319  { name: 'blockquote' } => Set { 'BlockquoteRole' },
320  { name: 'button' } => Set { 'ButtonRole' },
321  { name: 'canvas' } => Set { 'CanvasRole' },
322  { name: 'caption' } => Set { 'CaptionRole' },
323  { name: 'td' } => Set { 'CellRole' },
324  { name: 'input', attributes: [ [Object] ] } => Set { 'CheckBoxRole' },
325  { name: 'input', attributes: [ [Object] ] } => Set { 'ColorWellRole' },
326  { name: 'th' } => Set { 'ColumnHeaderRole' },
327  { name: 'input', attributes: [ [Object] ] } => Set { 'DateRole' },
328  { name: 'input', attributes: [ [Object] ] } => Set { 'DateTimeRole' },
329  { name: 'dfn' } => Set { 'DefinitionRole' },
330  { name: 'dd' } => Set { 'DescriptionListDetailRole' },
331  { name: 'dl' } => Set { 'DescriptionListRole' },
332  { name: 'dt' } => Set { 'DescriptionListTermRole' },
333  { name: 'details' } => Set { 'DetailsRole' },
334  { name: 'dialog' } => Set { 'DialogRole' },
335  { name: 'dir' } => Set { 'DirectoryRole' },
336  { name: 'div' } => Set { 'DivRole' },
337  { name: 'embed' } => Set { 'EmbeddedObjectRole' },
338  { name: 'figcaption' } => Set { 'FigcaptionRole' },
339  { name: 'figure' } => Set { 'FigureRole' },
340  { name: 'footer' } => Set { 'FooterRole' },
341  { name: 'form' } => Set { 'FormRole' },
342  { name: 'h1' } => Set { 'HeadingRole' },
343  { name: 'h2' } => Set { 'HeadingRole' },
344  { name: 'h3' } => Set { 'HeadingRole' },
345  { name: 'h4' } => Set { 'HeadingRole' },
346  { name: 'h5' } => Set { 'HeadingRole' },
347  { name: 'h6' } => Set { 'HeadingRole' },
348  { name: 'iframe' } => Set { 'IframeRole' },
349  { name: 'img', attributes: [ [Object] ] } => Set { 'ImageMapRole' },
350  { name: 'img' } => Set { 'ImageRole' },
351  { name: 'input' } => Set { 'InlineTextBoxRole', 'TextFieldRole' },
352  { name: 'input', attributes: [ [Object] ] } => Set { 'InputTimeRole' },
353  { name: 'label' } => Set { 'LabelRole' },
354  { name: 'legend' } => Set { 'LegendRole' },
355  { name: 'br' } => Set { 'LineBreakRole' },
356  { name: 'a', attributes: [ [Object] ] } => Set { 'LinkRole' },
357  { name: 'option' } => Set { 'ListBoxOptionRole' },
358  { name: 'li' } => Set { 'ListItemRole' },
359  { name: 'ul' } => Set { 'ListRole' },
360  { name: 'ol' } => Set { 'ListRole' },
361  { name: 'main' } => Set { 'MainRole' },
362  { name: 'mark' } => Set { 'MarkRole' },
363  { name: 'marquee' } => Set { 'MarqueeRole' },
364  { name: 'menuitem' } => Set { 'MenuItemRole' },
365  { name: 'menu' } => Set { 'MenuRole' },
366  { name: 'meter' } => Set { 'MeterRole' },
367  { name: 'nav' } => Set { 'NavigationRole' },
368  { name: 'p' } => Set { 'ParagraphRole' },
369  { name: 'pre' } => Set { 'PreRole' },
370  { name: 'progress' } => Set { 'ProgressIndicatorRole' },
371  { name: 'input', attributes: [ [Object] ] } => Set { 'RadioButtonRole' },
372  { name: 'th', attributes: [ [Object] ] } => Set { 'RowHeaderRole' },
373  { name: 'tr' } => Set { 'RowRole' },
374  { name: 'ruby' } => Set { 'RubyRole' },
375  { name: 'input', attributes: [ [Object] ] } => Set { 'SearchBoxRole' },
376  { name: 'input', attributes: [ [Object] ] } => Set { 'SliderRole' },
377  { name: 'input', attributes: [ [Object] ] } => Set { 'SpinButtonRole' },
378  { name: 'table' } => Set { 'TableRole' },
379  { name: 'input' } => Set { 'InlineTextBoxRole', 'TextFieldRole' },
380  { name: 'input', attributes: [ [Object] ] } => Set { 'TextFieldRole' },
381  { name: 'time' } => Set { 'TimeRole' },
382  { name: 'video' } => Set { 'VideoRole' }
383}
384```
385