1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4  * License, v. 2.0. If a copy of the MPL was not distributed with this
5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 
7 #ifndef _role_h_
8 #define _role_h_
9 
10 /**
11  * @note Make sure to update the localized role names when changing the list.
12  * @note When adding a new role, be sure to also add it to base/RoleMap.h and
13  *       update nsIAccessibleRole.
14  */
15 
16 namespace mozilla {
17 namespace a11y {
18 namespace roles {
19 
20 enum Role {
21   /**
22    * Used when accessible hans't strong defined role.
23    */
24   NOTHING = 0,
25 
26   /**
27    * Represents a title or caption bar for a window. It is used by MSAA only,
28    * supported automatically by MS Windows.
29    */
30   TITLEBAR = 1,
31 
32   /**
33    * Represents the menu bar (positioned beneath the title bar of a window)
34    * from which menus are selected by the user. The role is used by
35    * xul:menubar or role="menubar".
36    */
37   MENUBAR = 2,
38 
39   /**
40    * Represents a vertical or horizontal scroll bar, which is part of the client
41    * area or used in a control.
42    */
43   SCROLLBAR = 3,
44 
45   /**
46    * Represents a special mouse pointer, which allows a user to manipulate user
47    * interface elements such as windows. For example, a user clicks and drags
48    * a sizing grip in the lower-right corner of a window to resize it.
49    */
50   GRIP = 4,
51 
52   /**
53    * Represents a system sound, which is associated with various system events.
54    */
55   SOUND = 5,
56 
57   /**
58    * Represents the system mouse pointer.
59    */
60   CURSOR = 6,
61 
62   /**
63    * Represents the system caret. The role is supported for caret.
64    */
65   CARET = 7,
66 
67   /**
68    * Represents an alert or a condition that a user should be notified about.
69    * Assistive Technologies typically respond to the role by reading the entire
70    * onscreen contents of containers advertising this role. Should be used for
71    * warning dialogs, etc. The role is used by xul:browsermessage,
72    * role="alert".
73    */
74   ALERT = 8,
75 
76   /**
77    * Represents the window frame, which contains child objects such as
78    * a title bar, client, and other objects contained in a window. The role
79    * is supported automatically by MS Windows.
80    */
81   WINDOW = 9,
82 
83   /**
84    * A sub-document (<frame> or <iframe>)
85    */
86   INTERNAL_FRAME = 10,
87 
88   /**
89    * Represents a menu, which presents a list of options from which the user can
90    * make a selection to perform an action. It is used for role="menu".
91    */
92   MENUPOPUP = 11,
93 
94   /**
95    * Represents a menu item, which is an entry in a menu that a user can choose
96    * to carry out a command, select an option. It is used for xul:menuitem,
97    * role="menuitem".
98    */
99   MENUITEM = 12,
100 
101   /**
102    * Represents a ToolTip that provides helpful hints.
103    */
104   TOOLTIP = 13,
105 
106   /**
107    * Represents a main window for an application. It is used for
108    * role="application". Also refer to APP_ROOT
109    */
110   APPLICATION = 14,
111 
112   /**
113    * Represents a document window. A document window is always contained within
114    * an application window. It is used for role="document".
115    */
116   DOCUMENT = 15,
117 
118   /**
119    * Represents a pane within a frame or document window. Users can navigate
120    * between panes and within the contents of the current pane, but cannot
121    * navigate between items in different panes. Thus, panes represent a level
122    * of grouping lower than frame windows or documents, but above individual
123    * controls. It is used for the first child of a <frame> or <iframe>.
124    */
125   PANE = 16,
126 
127   /**
128    * Represents a graphical image used to represent data.
129    */
130   CHART = 17,
131 
132   /**
133    * Represents a dialog box or message box. It is used for xul:dialog,
134    * role="dialog".
135    */
136   DIALOG = 18,
137 
138   /**
139    * Represents a window border.
140    */
141   BORDER = 19,
142 
143   /**
144    * Logically groups other objects. There is not always a parent-child
145    * relationship between the grouping object and the objects it contains. It
146    * is used for html:textfield, xul:groupbox, role="group".
147    */
148   GROUPING = 20,
149 
150   /**
151    * Used to visually divide a space into two regions, such as a separator menu
152    * item or a bar that divides split panes within a window. It is used for
153    * xul:separator, html:hr, role="separator".
154    */
155   SEPARATOR = 21,
156 
157   /**
158    * Represents a toolbar, which is a grouping of controls (push buttons or
159    * toggle buttons) that provides easy access to frequently used features. It
160    * is used for xul:toolbar, role="toolbar".
161    */
162   TOOLBAR = 22,
163 
164   /**
165    * Represents a status bar, which is an area at the bottom of a window that
166    * displays information about the current operation, state of the application,
167    * or selected object. The status bar has multiple fields, which display
168    * different kinds of information. It is used for xul:statusbar.
169    */
170   STATUSBAR = 23,
171 
172   /**
173    * Represents a table that contains rows and columns of cells, and optionally,
174    * row headers and column headers. It is used for html:table,
175    * role="grid". Also refer to the following role: COLUMNHEADER,
176    * ROWHEADER, COLUMN, ROW, CELL.
177    */
178   TABLE = 24,
179 
180   /**
181    * Represents a column header, providing a visual label for a column in
182    * a table. It is used for XUL tree column headers, html:th,
183    * role="colheader". Also refer to TABLE.
184    */
185   COLUMNHEADER = 25,
186 
187   /**
188    * Represents a row header, which provides a visual label for a table row.
189    * It is used for role="rowheader". Also, see TABLE.
190    */
191   ROWHEADER = 26,
192 
193   /**
194    * Represents a column of cells within a table. Also, see TABLE.
195    */
196   COLUMN = 27,
197 
198   /**
199    * Represents a row of cells within a table. Also, see TABLE.
200    */
201   ROW = 28,
202 
203   /**
204    * Represents a cell within a table. It is used for html:td,
205    * xul:tree cell and xul:listcell. Also, see TABLE.
206    */
207   CELL = 29,
208 
209   /**
210    * Represents a link to something else. This object might look like text or
211    * a graphic, but it acts like a button. It is used for
212    * xul:label@class="text-link", html:a, html:area.
213    */
214   LINK = 30,
215 
216   /**
217    * Displays a Help topic in the form of a ToolTip or Help balloon.
218    */
219   HELPBALLOON = 31,
220 
221   /**
222    * Represents a cartoon-like graphic object, such as Microsoft Office
223    * Assistant, which is displayed to provide help to users of an application.
224    */
225   CHARACTER = 32,
226 
227   /**
228    * Represents a list box, allowing the user to select one or more items. It
229    * is used for xul:listbox, html:select@size, role="list". See also
230    * LIST_ITEM.
231    */
232   LIST = 33,
233 
234   /**
235    * Represents an item in a list. See also LIST.
236    */
237   LISTITEM = 34,
238 
239   /**
240    * Represents an outline or tree structure, such as a tree view control,
241    * that displays a hierarchical list and allows the user to expand and
242    * collapse branches. Is is used for role="tree".
243    */
244   OUTLINE = 35,
245 
246   /**
247    * Represents an item in an outline or tree structure. It is used for
248    * role="treeitem".
249    */
250   OUTLINEITEM = 36,
251 
252   /**
253    * Represents a page tab, it is a child of a page tab list. It is used for
254    * xul:tab, role="treeitem". Also refer to PAGETABLIST.
255    */
256   PAGETAB = 37,
257 
258   /**
259    * Represents a property sheet. It is used for xul:tabpanel,
260    * role="tabpanel".
261    */
262   PROPERTYPAGE = 38,
263 
264   /**
265    * Represents an indicator, such as a pointer graphic, that points to the
266    * current item.
267    */
268   INDICATOR = 39,
269 
270   /**
271    * Represents a picture. Is is used for xul:image, html:img.
272    */
273   GRAPHIC = 40,
274 
275   /**
276    * Represents read-only text, such as labels for other controls or
277    * instructions in a dialog box. Static text cannot be modified or selected.
278    * Is is used for xul:label, xul:description, html:label, role="label".
279    */
280   STATICTEXT = 41,
281 
282   /**
283    * Represents selectable text that allows edits or is designated read-only.
284    */
285   TEXT_LEAF = 42,
286 
287   /**
288    * Represents a push button control. It is used for xul:button, html:button,
289    * role="button".
290    */
291   PUSHBUTTON = 43,
292 
293   /**
294    * Represents a check box control. It is used for xul:checkbox,
295    * html:input@type="checkbox", role="checkbox".
296    */
297   CHECKBUTTON = 44,
298 
299   /**
300    * Represents an option button, also called a radio button. It is one of a
301    * group of mutually exclusive options. All objects sharing a single parent
302    * that have this attribute are assumed to be part of single mutually
303    * exclusive group. It is used for xul:radio, html:input@type="radio",
304    * role="radio".
305    */
306   RADIOBUTTON = 45,
307 
308   /**
309    * Represents a combo box; an edit control with an associated list box that
310    * provides a set of predefined choices. It is used for html:select,
311    * xul:menulist, role="combobox".
312    */
313   COMBOBOX = 46,
314 
315   /**
316    * Represents the calendar control.
317    */
318   DROPLIST = 47,
319 
320   /**
321    * Represents a progress bar, dynamically showing the user the percent
322    * complete of an operation in progress. It is used for xul:progressmeter,
323    * role="progressbar".
324    */
325   PROGRESSBAR = 48,
326 
327   /**
328    * Represents a dial or knob whose purpose is to allow a user to set a value.
329    */
330   DIAL = 49,
331 
332   /**
333    * Represents a hot-key field that allows the user to enter a combination or
334    * sequence of keystrokes.
335    */
336   HOTKEYFIELD = 50,
337 
338   /**
339    * Represents a slider, which allows the user to adjust a setting in given
340    * increments between minimum and maximum values. It is used by xul:scale,
341    * role="slider".
342    */
343   SLIDER = 51,
344 
345   /**
346    * Represents a spin box, which is a control that allows the user to increment
347    * or decrement the value displayed in a separate "buddy" control associated
348    * with the spin box. It is used for xul:spinbuttons.
349    */
350   SPINBUTTON = 52,
351 
352   /**
353    * Represents a graphical image used to diagram data. It is used for svg:svg.
354    */
355   DIAGRAM = 53,
356 
357   /**
358    * Represents an animation control, which contains content that changes over
359    * time, such as a control that displays a series of bitmap frames.
360    */
361   ANIMATION = 54,
362 
363   /**
364    * Represents a mathematical equation. It is used by MATHML, where there is a
365    * rich DOM subtree for an equation. Use FLAT_EQUATION for <img role="math" alt="[TeX]"/>
366    */
367   EQUATION = 55,
368 
369   /**
370    * Represents a button that drops down a list of items.
371    */
372   BUTTONDROPDOWN = 56,
373 
374   /**
375    * Represents a button that drops down a menu.
376    */
377   BUTTONMENU = 57,
378 
379   /**
380    * Represents a button that drops down a grid. It is used for xul:colorpicker.
381    */
382   BUTTONDROPDOWNGRID = 58,
383 
384   /**
385    * Represents blank space between other objects.
386    */
387   WHITESPACE = 59,
388 
389   /**
390    * Represents a container of page tab controls. Is it used for xul:tabs,
391    * DHTML: role="tabs". Also refer to PAGETAB.
392    */
393   PAGETABLIST = 60,
394 
395   /**
396    * Represents a control that displays time.
397    */
398   CLOCK = 61,
399 
400   /**
401    * Represents a button on a toolbar that has a drop-down list icon directly
402    * adjacent to the button.
403    */
404   SPLITBUTTON = 62,
405 
406   /**
407    * Represents an edit control designed for an Internet Protocol (IP) address.
408    * The edit control is divided into sections for the different parts of the
409    * IP address.
410    */
411   IPADDRESS = 63,
412 
413   /**
414    * Represents a label control that has an accelerator.
415    */
416   ACCEL_LABEL = 64,
417 
418   /**
419    * Represents an arrow in one of the four cardinal directions.
420    */
421   ARROW  = 65,
422 
423   /**
424    * Represents a control that can be drawn into and is used to trap events.
425    * It is used for html:canvas.
426    */
427   CANVAS = 66,
428 
429   /**
430    * Represents a menu item with a check box.
431    */
432   CHECK_MENU_ITEM = 67,
433 
434   /**
435    * Represents a specialized dialog that lets the user choose a color.
436    */
437   COLOR_CHOOSER  = 68,
438 
439   /**
440    * Represents control whose purpose is to allow a user to edit a date.
441    */
442   DATE_EDITOR = 69,
443 
444   /**
445    * An iconified internal frame in an DESKTOP_PANE. Also refer to
446    * INTERNAL_FRAME.
447    */
448   DESKTOP_ICON = 70,
449 
450   /**
451    * A desktop pane. A pane that supports internal frames and iconified
452    * versions of those internal frames.
453    */
454   DESKTOP_FRAME = 71,
455 
456   /**
457    * A directory pane. A pane that allows the user to navigate through
458    * and select the contents of a directory. May be used by a file chooser.
459    * Also refer to FILE_CHOOSER.
460    */
461   DIRECTORY_PANE = 72,
462 
463   /**
464    * A file chooser. A specialized dialog that displays the files in the
465    * directory and lets the user select a file, browse a different directory,
466    * or specify a filename. May use the directory pane to show the contents of
467    * a directory. Also refer to DIRECTORY_PANE.
468    */
469   FILE_CHOOSER = 73,
470 
471   /**
472    * A font chooser. A font chooser is a component that lets the user pick
473    * various attributes for fonts.
474    */
475   FONT_CHOOSER = 74,
476 
477   /**
478    * Frame role. A top level window with a title bar, border, menu bar, etc.
479    * It is often used as the primary window for an application.
480    */
481   CHROME_WINDOW = 75,
482 
483   /**
484    *  A glass pane. A pane that is guaranteed to be painted on top of all
485    * panes beneath it. Also refer to ROOT_PANE.
486    */
487   GLASS_PANE = 76,
488 
489   /**
490    * A document container for HTML, whose children represent the document
491    * content.
492    */
493   HTML_CONTAINER = 77,
494 
495   /**
496    * A small fixed size picture, typically used to decorate components.
497    */
498   ICON = 78,
499 
500   /**
501    * Presents an icon or short string in an interface.
502    */
503   LABEL = 79,
504 
505   /**
506    * A layered pane. A specialized pane that allows its children to be drawn
507    * in layers, providing a form of stacking order. This is usually the pane
508    * that holds the menu bar as  well as the pane that contains most of the
509    * visual components in a window. Also refer to GLASS_PANE and
510    * ROOT_PANE.
511    */
512   LAYERED_PANE = 80,
513 
514   /**
515    * A specialized pane whose primary use is inside a dialog.
516    */
517   OPTION_PANE = 81,
518 
519   /**
520    * A text object uses for passwords, or other places where the text content
521    * is not shown visibly to the user.
522    */
523   PASSWORD_TEXT = 82,
524 
525   /**
526    * A temporary window that is usually used to offer the user a list of
527    * choices, and then hides when the user selects one of those choices.
528    */
529   POPUP_MENU = 83,
530 
531   /**
532    * A radio button that is a menu item.
533    */
534   RADIO_MENU_ITEM = 84,
535 
536   /**
537    * A root pane. A specialized pane that has a glass pane and a layered pane
538    * as its children. Also refer to GLASS_PANE and LAYERED_PANE.
539    */
540   ROOT_PANE = 85,
541 
542   /**
543    * A scroll pane. An object that allows a user to incrementally view a large
544    * amount of information.  Its children can include scroll bars and a
545    * viewport. Also refer to VIEW_PORT.
546    */
547   SCROLL_PANE = 86,
548 
549   /**
550    * A split pane. A specialized panel that presents two other panels at the
551    * same time. Between the two panels is a divider the user can manipulate to
552    * make one panel larger and the other panel smaller.
553    */
554   SPLIT_PANE = 87,
555 
556   /**
557    * The header for a column of a table.
558    * XXX: it looks this role is dupe of COLUMNHEADER.
559    */
560   TABLE_COLUMN_HEADER = 88,
561 
562   /**
563    * The header for a row of a table.
564    * XXX: it looks this role is dupe of ROWHEADER
565    */
566   TABLE_ROW_HEADER = 89,
567 
568   /**
569    * A menu item used to tear off and reattach its menu.
570    */
571   TEAR_OFF_MENU_ITEM = 90,
572 
573   /**
574    * Represents an accessible terminal.
575    */
576   TERMINAL = 91,
577 
578   /**
579    * Collection of objects that constitute a logical text entity.
580    */
581   TEXT_CONTAINER = 92,
582 
583   /**
584    * A toggle button. A specialized push button that can be checked or
585    * unchecked, but does not provide a separate indicator for the current state.
586    */
587   TOGGLE_BUTTON = 93,
588 
589   /**
590    * Represent a control that is capable of expanding and collapsing rows as
591    * well as showing multiple columns of data.
592    */
593   TREE_TABLE = 94,
594 
595   /**
596    * A viewport. An object usually used in a scroll pane. It represents the
597    * portion of the entire data that the user can see. As the user manipulates
598    * the scroll bars, the contents of the viewport can change. Also refer to
599    * SCROLL_PANE.
600    */
601   VIEWPORT = 95,
602 
603   /**
604    * Header of a document page. Also refer to FOOTER.
605    */
606   HEADER = 96,
607 
608   /**
609    * Footer of a document page. Also refer to HEADER.
610    */
611   FOOTER = 97,
612 
613   /**
614    * A paragraph of text.
615    */
616   PARAGRAPH = 98,
617 
618   /**
619    * A ruler such as those used in word processors.
620    */
621   RULER = 99,
622 
623   /**
624    * A text entry having dialog or list containing items for insertion into
625    * an entry widget, for instance a list of words for completion of a
626    * text entry. It is used for xul:textbox@autocomplete
627    */
628   AUTOCOMPLETE = 100,
629 
630   /**
631    *  An editable text object in a toolbar.
632    */
633   EDITBAR = 101,
634 
635   /**
636    * An control whose textual content may be entered or modified by the user.
637    */
638   ENTRY = 102,
639 
640   /**
641    * A caption describing another object.
642    */
643   CAPTION = 103,
644 
645   /**
646    * A visual frame or container which contains a view of document content.
647    * Document frames may occur within another Document instance, in which case
648    * the second document may be said to be embedded in the containing instance.
649    * HTML frames are often DOCUMENT_FRAME. Either this object, or a
650    * singleton descendant, should implement the Document interface.
651    */
652   DOCUMENT_FRAME = 104,
653 
654   /**
655    * Heading.
656    */
657   HEADING = 105,
658 
659   /**
660    * An object representing a page of document content.  It is used in documents
661    * which are accessed by the user on a page by page basis.
662    */
663   PAGE = 106,
664 
665   /**
666    * A container of document content.  An example of the use of this role is to
667    * represent an html:div.
668    */
669   SECTION = 107,
670 
671   /**
672    * An object which is redundant with another object in the accessible
673    * hierarchy. ATs typically ignore objects with this role.
674    */
675   REDUNDANT_OBJECT = 108,
676 
677   /**
678    * A container of form controls. An example of the use of this role is to
679    * represent an html:form.
680    */
681   FORM = 109,
682 
683   /**
684    * An object which is used to allow input of characters not found on a
685    * keyboard, such as the input of Chinese characters on a Western keyboard.
686    */
687   IME = 110,
688 
689   /**
690    * XXX: document this.
691    */
692   APP_ROOT = 111,
693 
694   /**
695    * Represents a menu item, which is an entry in a menu that a user can choose
696    * to display another menu.
697    */
698   PARENT_MENUITEM = 112,
699 
700   /**
701    * A calendar that allows the user to select a date.
702    */
703   CALENDAR = 113,
704 
705   /**
706    * A list of items that is shown by combobox.
707    */
708   COMBOBOX_LIST = 114,
709 
710   /**
711    * A item of list that is shown by combobox.
712    */
713   COMBOBOX_OPTION = 115,
714 
715   /**
716    * An image map -- has child links representing the areas
717    */
718   IMAGE_MAP = 116,
719 
720   /**
721    * An option in a listbox
722    */
723   OPTION = 117,
724 
725   /**
726    * A rich option in a listbox, it can have other widgets as children
727    */
728   RICH_OPTION = 118,
729 
730   /**
731    * A list of options
732    */
733   LISTBOX = 119,
734 
735   /**
736    * Represents a mathematical equation in the accessible name
737    */
738   FLAT_EQUATION = 120,
739 
740   /**
741    * Represents a cell within a grid. It is used for role="gridcell". Unlike
742    * CELL, it allows the calculation of the accessible name from subtree.
743    * Also, see TABLE.
744    */
745   GRID_CELL = 121,
746 
747   /**
748    * Represents an embedded object. It is used for html:object or html:embed.
749    */
750   EMBEDDED_OBJECT = 122,
751 
752   /**
753    * A note. Originally intended to be hidden until activated, but now also used
754    * for things like html 'aside'.
755    */
756   NOTE = 123,
757 
758   /**
759    * A figure. Used for things like HTML5 figure element.
760    */
761   FIGURE = 124,
762 
763   /**
764    * Represents a rich item with a check box.
765    */
766   CHECK_RICH_OPTION = 125,
767 
768   /**
769    * Represent a definition list (dl in HTML).
770    */
771   DEFINITION_LIST = 126,
772 
773   /**
774    * Represent a term in a definition list (dt in HTML).
775    */
776   TERM = 127,
777 
778   /**
779    * Represent a definition in a definition list (dd in HTML)
780    */
781   DEFINITION = 128,
782 
783   /**
784    * Represent a keyboard or keypad key (ARIA role "key").
785    */
786   KEY = 129,
787 
788   /**
789    * Represent a switch control widget (ARIA role "switch").
790    */
791   SWITCH = 130,
792 
793   /**
794    * A block of MathML code (math).
795    */
796   MATHML_MATH = 131,
797 
798   /**
799    * A MathML identifier (mi in MathML).
800    */
801   MATHML_IDENTIFIER = 132,
802 
803   /**
804    * A MathML number (mn in MathML).
805    */
806   MATHML_NUMBER = 133,
807 
808   /**
809    * A MathML operator (mo in MathML).
810    */
811   MATHML_OPERATOR = 134,
812 
813   /**
814    * A MathML text (mtext in MathML).
815    */
816   MATHML_TEXT = 135,
817 
818   /**
819    * A MathML string literal (ms in MathML).
820    */
821   MATHML_STRING_LITERAL = 136,
822 
823   /**
824    * A MathML glyph (mglyph in MathML).
825    */
826   MATHML_GLYPH = 137,
827 
828   /**
829    * A MathML row (mrow in MathML).
830    */
831   MATHML_ROW = 138,
832 
833   /**
834    * A MathML fraction (mfrac in MathML).
835    */
836   MATHML_FRACTION = 139,
837 
838   /**
839    * A MathML square root (msqrt in MathML).
840    */
841   MATHML_SQUARE_ROOT = 140,
842 
843   /**
844    * A MathML root (mroot in MathML).
845    */
846   MATHML_ROOT = 141,
847 
848   /**
849    * A MathML fenced element (mfenced in MathML).
850    */
851   MATHML_FENCED = 142,
852 
853   /**
854    * A MathML enclosed element (menclose in MathML).
855    */
856   MATHML_ENCLOSED = 143,
857 
858   /**
859    * A MathML styling element (mstyle in MathML).
860    */
861   MATHML_STYLE = 144,
862 
863   /**
864    * A MathML subscript (msub in MathML).
865    */
866   MATHML_SUB = 145,
867 
868   /**
869    * A MathML superscript (msup in MathML).
870    */
871   MATHML_SUP = 146,
872 
873   /**
874    * A MathML subscript and superscript (msubsup in MathML).
875    */
876   MATHML_SUB_SUP = 147,
877 
878   /**
879    * A MathML underscript (munder in MathML).
880    */
881   MATHML_UNDER = 148,
882 
883   /**
884    * A MathML overscript (mover in MathML).
885    */
886   MATHML_OVER = 149,
887 
888   /**
889    * A MathML underscript and overscript (munderover in MathML).
890    */
891   MATHML_UNDER_OVER = 150,
892 
893   /**
894    * A MathML multiple subscript and superscript element (mmultiscripts in
895    * MathML).
896    */
897   MATHML_MULTISCRIPTS = 151,
898 
899   /**
900    * A MathML table (mtable in MathML).
901    */
902   MATHML_TABLE = 152,
903 
904   /**
905    * A MathML labelled table row (mlabeledtr in MathML).
906    */
907   MATHML_LABELED_ROW = 153,
908 
909   /**
910    * A MathML table row (mtr in MathML).
911    */
912   MATHML_TABLE_ROW = 154,
913 
914   /**
915    * A MathML table entry or cell (mtd in MathML).
916    */
917   MATHML_CELL = 155,
918 
919   /**
920    * A MathML interactive element (maction in MathML).
921    */
922   MATHML_ACTION = 156,
923 
924   /**
925    * A MathML error message (merror in MathML).
926    */
927   MATHML_ERROR = 157,
928 
929   /**
930    * A MathML stacked (rows of numbers) element (mstack in MathML).
931    */
932   MATHML_STACK = 158,
933 
934   /**
935    * A MathML long division element (mlongdiv in MathML).
936    */
937   MATHML_LONG_DIVISION = 159,
938 
939   /**
940    * A MathML stack group (msgroup in MathML).
941    */
942   MATHML_STACK_GROUP = 160,
943 
944   /**
945    * A MathML stack row (msrow in MathML).
946    */
947   MATHML_STACK_ROW = 161,
948 
949   /**
950    * MathML carries, borrows, or crossouts for a row (mscarries in MathML).
951    */
952   MATHML_STACK_CARRIES = 162,
953 
954   /**
955    * A MathML carry, borrow, or crossout for a column (mscarry in MathML).
956    */
957   MATHML_STACK_CARRY = 163,
958 
959   /**
960    * A MathML line in a stack (msline in MathML).
961    */
962   MATHML_STACK_LINE = 164,
963 
964   /**
965    * A group containing radio buttons
966    */
967   RADIO_GROUP = 165,
968 
969   /**
970    * A text container exposing brief amount of information. See related
971    * TEXT_CONTAINER role.
972    */
973   TEXT = 166,
974 
975   /**
976    * The html:details element.
977    */
978   DETAILS = 167,
979 
980   /**
981    * The html:summary element.
982    */
983   SUMMARY = 168,
984 
985   LAST_ROLE = SUMMARY
986 };
987 
988 } // namespace role
989 
990 typedef enum mozilla::a11y::roles::Role role;
991 
992 } // namespace a11y
993 } // namespace mozilla
994 
995 #endif
996