1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include
"nsISupports.idl"
9 * Defines cross platform (Gecko) roles.
11 [scriptable
, builtinclass
, uuid(ad7f32a5
-6d5f
-4154-a5b8
-0fa7aed48936
)]
12 interface nsIAccessibleRole
: nsISupports
15 * Used when the accessible has no strongly-defined role.
17 const unsigned long ROLE_NOTHING
= 0;
20 * Represents the menu bar (positioned beneath the title bar of a window)
21 * from which menus are selected by the user. The role is used by
22 * xul:menubar or role="menubar".
24 const unsigned long ROLE_MENUBAR
= 1;
27 * Represents a vertical or horizontal scroll bar, which is part of the client
28 * area or used in a control.
30 const unsigned long ROLE_SCROLLBAR
= 2;
33 * Represents an alert or a condition that a user should be notified about.
34 * Assistive Technologies typically respond to the role by reading the entire
35 * onscreen contents of containers advertising this role. Should be used for
36 * warning dialogs, etc. The role is used by xul:browsermessage,
39 const unsigned long ROLE_ALERT
= 3;
42 * A sub-document (<frame> or <iframe>)
44 const unsigned long ROLE_INTERNAL_FRAME
= 4;
47 * Represents a menu, which presents a list of options from which the user can
48 * make a selection to perform an action. It is used for role="menu".
50 const unsigned long ROLE_MENUPOPUP
= 5;
53 * Represents a menu item, which is an entry in a menu that a user can choose
54 * to carry out a command, select an option. It is used for xul:menuitem,
57 const unsigned long ROLE_MENUITEM
= 6;
60 * Represents a ToolTip that provides helpful hints.
62 const unsigned long ROLE_TOOLTIP
= 7;
65 * Represents a main window for an application. It is used for
66 * role="application". Also refer to ROLE_APP_ROOT
68 const unsigned long ROLE_APPLICATION
= 8;
71 * Represents a document window. A document window is always contained within
72 * an application window. For role="document", see NON_NATIVE_DOCUMENT.
74 const unsigned long ROLE_DOCUMENT
= 9;
77 * Represents a pane within a frame or document window. Users can navigate
78 * between panes and within the contents of the current pane, but cannot
79 * navigate between items in different panes. Thus, panes represent a level
80 * of grouping lower than frame windows or documents, but above individual
81 * controls. It is used for the first child of a <frame> or <iframe>.
83 const unsigned long ROLE_PANE
= 10;
86 * Represents a dialog box or message box. It is used for xul:dialog,
89 const unsigned long ROLE_DIALOG
= 11;
92 * Logically groups other objects. There is not always a parent-child
93 * relationship between the grouping object and the objects it contains. It
94 * is used for html:textfield, xul:groupbox, role="group".
96 const unsigned long ROLE_GROUPING
= 12;
99 * Used to visually divide a space into two regions, such as a separator menu
100 * item or a bar that divides split panes within a window. It is used for
101 * xul:separator, html:hr, role="separator".
103 const unsigned long ROLE_SEPARATOR
= 13;
106 * Represents a toolbar, which is a grouping of controls (push buttons or
107 * toggle buttons) that provides easy access to frequently used features. It
108 * is used for xul:toolbar, role="toolbar".
110 const unsigned long ROLE_TOOLBAR
= 14;
113 * Represents a status bar, which is an area at the bottom of a window that
114 * displays information about the current operation, state of the application,
115 * or selected object. The status bar has multiple fields, which display
116 * different kinds of information. It is used for xul:statusbar.
118 const unsigned long ROLE_STATUSBAR
= 15;
121 * Represents a table that contains rows and columns of cells, and optionally,
122 * row headers and column headers. It is used for html:table,
123 * role="grid". Also refer to the following roles: ROLE_COLUMNHEADER,
124 * ROLE_ROWHEADER, ROLE_ROW, ROLE_CELL.
126 const unsigned long ROLE_TABLE
= 16;
129 * Represents a column header, providing a visual label for a column in
130 * a table. It is used for XUL tree column headers, html:th,
131 * role="colheader". Also refer to ROLE_TABLE.
133 const unsigned long ROLE_COLUMNHEADER
= 17;
136 * Represents a row header, which provides a visual label for a table row.
137 * It is used for role="rowheader". Also, see ROLE_TABLE.
139 const unsigned long ROLE_ROWHEADER
= 18;
142 * Represents a row of cells within a table. Also, see ROLE_TABLE.
144 const unsigned long ROLE_ROW
= 19;
147 * Represents a cell within a table. It is used for html:td and xul:tree cell.
148 * Also, see ROLE_TABLE.
150 const unsigned long ROLE_CELL
= 20;
153 * Represents a link to something else. This object might look like text or
154 * a graphic, but it acts like a button. It is used for
155 * xul:label@class="text-link", html:a, html:area.
157 const unsigned long ROLE_LINK
= 21;
160 * Represents a list box, allowing the user to select one or more items. It
161 * is used for xul:listbox, html:select@size, role="list". See also
164 const unsigned long ROLE_LIST
= 22;
167 * Represents an item in a list. See also ROLE_LIST.
169 const unsigned long ROLE_LISTITEM
= 23;
172 * Represents an outline or tree structure, such as a tree view control,
173 * that displays a hierarchical list and allows the user to expand and
174 * collapse branches. Is is used for role="tree".
176 const unsigned long ROLE_OUTLINE
= 24;
179 * Represents an item in an outline or tree structure. It is used for
182 const unsigned long ROLE_OUTLINEITEM
= 25;
185 * Represents a page tab, it is a child of a page tab list. It is used for
186 * xul:tab, role="treeitem". Also refer to ROLE_PAGETABLIST.
188 const unsigned long ROLE_PAGETAB
= 26;
191 * Represents a property sheet. It is used for xul:tabpanel,
194 const unsigned long ROLE_PROPERTYPAGE
= 27;
197 * Represents a picture. Is is used for xul:image, html:img.
199 const unsigned long ROLE_GRAPHIC
= 28;
202 * Represents read-only text, such as labels for other controls or
203 * instructions in a dialog box. Static text cannot be modified or selected.
204 * Is is used for xul:label, xul:description, html:label, role="label".
206 const unsigned long ROLE_STATICTEXT
= 29;
209 * Represents selectable text that allows edits or is designated read-only.
211 const unsigned long ROLE_TEXT_LEAF
= 30;
214 * Represents a push button control. It is used for xul:button, html:button,
217 const unsigned long ROLE_PUSHBUTTON
= 31;
220 * Represents a check box control. It is used for xul:checkbox,
221 * html:input@type="checkbox", role="checkbox".
223 const unsigned long ROLE_CHECKBUTTON
= 32;
226 * Represents an option button, also called a radio button. It is one of a
227 * group of mutually exclusive options. All objects sharing a single parent
228 * that have this attribute are assumed to be part of single mutually
229 * exclusive group. It is used for xul:radio, html:input@type="radio",
232 const unsigned long ROLE_RADIOBUTTON
= 33;
235 * Represents a combo box; a popup button with an associated list box that
236 * provides a set of predefined choices. It is used for html:select with a
237 * size of 1 and xul:menulist. See also ROLE_EDITCOMBOBOX.
239 const unsigned long ROLE_COMBOBOX
= 34;
242 * Represents a progress bar, dynamically showing the user the percent
243 * complete of an operation in progress. It is used for html:progress,
244 * role="progressbar".
246 const unsigned long ROLE_PROGRESSBAR
= 35;
249 * Represents a slider, which allows the user to adjust a setting in given
250 * increments between minimum and maximum values. It is used by xul:scale,
253 const unsigned long ROLE_SLIDER
= 36;
256 * Represents a spin box, which is a control that allows the user to increment
257 * or decrement the value displayed in a separate "buddy" control associated
258 * with the spin box. It is used for input[type=number] spin buttons.
260 const unsigned long ROLE_SPINBUTTON
= 37;
263 * Represents a graphical image used to diagram data. It is used for svg:svg.
265 const unsigned long ROLE_DIAGRAM
= 38;
268 * Represents an animation control, which contains content that changes over
269 * time, such as a control that displays a series of bitmap frames.
271 const unsigned long ROLE_ANIMATION
= 39;
274 * Represents a button that drops down a list of items.
276 const unsigned long ROLE_BUTTONDROPDOWN
= 40;
279 * Represents a button that drops down a menu.
281 const unsigned long ROLE_BUTTONMENU
= 41;
284 * Represents blank space between other objects.
286 const unsigned long ROLE_WHITESPACE
= 42;
289 * Represents a container of page tab controls. Is it used for xul:tabs,
290 * DHTML: role="tabs". Also refer to ROLE_PAGETAB.
292 const unsigned long ROLE_PAGETABLIST
= 43;
295 * Represents a control that can be drawn into and is used to trap events.
296 * It is used for html:canvas.
298 const unsigned long ROLE_CANVAS
= 44;
301 * Represents a menu item with a check box.
303 const unsigned long ROLE_CHECK_MENU_ITEM
= 45;
306 * Represents control whose purpose is to allow a user to edit a date.
308 const unsigned long ROLE_DATE_EDITOR
= 46;
311 * Frame role. A top level window with a title bar, border, menu bar, etc.
312 * It is often used as the primary window for an application.
314 const unsigned long ROLE_CHROME_WINDOW
= 47;
317 * Presents an icon or short string in an interface.
319 const unsigned long ROLE_LABEL
= 48;
322 * A text object uses for passwords, or other places where the text content
323 * is not shown visibly to the user.
325 const unsigned long ROLE_PASSWORD_TEXT
= 49;
328 * A radio button that is a menu item.
330 const unsigned long ROLE_RADIO_MENU_ITEM
= 50;
333 * Collection of objects that constitute a logical text entity.
335 const unsigned long ROLE_TEXT_CONTAINER
= 51;
338 * A toggle button. A specialized push button that can be checked or
339 * unchecked, but does not provide a separate indicator for the current state.
341 const unsigned long ROLE_TOGGLE_BUTTON
= 52;
344 * Representas a control that is capable of expanding and collapsing rows as
345 * well as showing multiple columns of data.
346 * XXX: it looks like this role is dupe of ROLE_OUTLINE.
348 const unsigned long ROLE_TREE_TABLE
= 53;
351 * A paragraph of text.
353 const unsigned long ROLE_PARAGRAPH
= 54;
356 * An control whose textual content may be entered or modified by the user.
358 const unsigned long ROLE_ENTRY
= 55;
361 * A caption describing another object.
363 const unsigned long ROLE_CAPTION
= 56;
366 * An element containing content that assistive technology users may want to
367 * browse in a reading mode, rather than a focus/interactive/application mode.
368 * This role is used for role="document". For the container which holds the
369 * content of a web page, see ROLE_DOCUMENT.
371 const unsigned long ROLE_NON_NATIVE_DOCUMENT
= 57;
376 const unsigned long ROLE_HEADING
= 58;
379 * A container of document content. An example of the use of this role is to
380 * represent an html:div.
382 const unsigned long ROLE_SECTION
= 59;
385 * A container of form controls. An example of the use of this role is to
386 * represent an html:form.
388 const unsigned long ROLE_FORM
= 60;
391 * XXX: document this.
393 const unsigned long ROLE_APP_ROOT
= 61;
396 * Represents a menu item, which is an entry in a menu that a user can choose
397 * to display another menu.
399 const unsigned long ROLE_PARENT_MENUITEM
= 62;
402 * A list of items that is shown by combobox.
404 const unsigned long ROLE_COMBOBOX_LIST
= 63;
407 * A item of list that is shown by combobox;
409 const unsigned long ROLE_COMBOBOX_OPTION
= 64;
412 * An image map -- has child links representing the areas
414 const unsigned long ROLE_IMAGE_MAP
= 65;
417 * An option in a listbox
419 const unsigned long ROLE_OPTION
= 66;
422 * A rich option in a listbox, it can have other widgets as children
424 const unsigned long ROLE_RICH_OPTION
= 67;
429 const unsigned long ROLE_LISTBOX
= 68;
432 * Represents a mathematical equation in the accessible name
434 const unsigned long ROLE_FLAT_EQUATION
= 69;
437 * Represents a cell within a grid. It is used for role="gridcell". Unlike
438 * ROLE_CELL, it allows the calculation of the accessible name from subtree.
439 * Also, see ROLE_TABLE.
441 const unsigned long ROLE_GRID_CELL
= 70;
444 * A note. Originally intended to be hidden until activated, but now also used
445 * for things like html 'aside'.
447 const unsigned long ROLE_NOTE
= 71;
450 * A figure. Used for things like HTML5 figure element.
452 const unsigned long ROLE_FIGURE
= 72;
455 * Represents a rich item with a check box.
457 const unsigned long ROLE_CHECK_RICH_OPTION
= 73;
460 * An HTML definition list <dl>
462 const unsigned long ROLE_DEFINITION_LIST
= 74;
465 * An HTML definition term <dt>
467 const unsigned long ROLE_TERM
= 75;
470 * An HTML definition <dd>
472 const unsigned long ROLE_DEFINITION
= 76;
475 * A keyboard or keypad key.
477 const unsigned long ROLE_KEY
= 77;
480 * A switch control widget.
482 const unsigned long ROLE_SWITCH
= 78;
485 * A block of MathML code (math).
487 const unsigned long ROLE_MATHML_MATH
= 79;
490 * A MathML identifier (mi in MathML).
492 const unsigned long ROLE_MATHML_IDENTIFIER
= 80;
495 * A MathML number (mn in MathML).
497 const unsigned long ROLE_MATHML_NUMBER
= 81;
500 * A MathML operator (mo in MathML).
502 const unsigned long ROLE_MATHML_OPERATOR
= 82;
505 * A MathML text (mtext in MathML).
507 const unsigned long ROLE_MATHML_TEXT
= 83;
510 * A MathML string literal (ms in MathML).
512 const unsigned long ROLE_MATHML_STRING_LITERAL
= 84;
515 * A MathML glyph (mglyph in MathML).
517 const unsigned long ROLE_MATHML_GLYPH
= 85;
520 * A MathML row (mrow in MathML).
522 const unsigned long ROLE_MATHML_ROW
= 86;
525 * A MathML fraction (mfrac in MathML).
527 const unsigned long ROLE_MATHML_FRACTION
= 87;
530 * A MathML square root (msqrt in MathML).
532 const unsigned long ROLE_MATHML_SQUARE_ROOT
= 88;
535 * A MathML root (mroot in MathML).
537 const unsigned long ROLE_MATHML_ROOT
= 89;
540 * A MathML enclosed element (menclose in MathML).
542 const unsigned long ROLE_MATHML_ENCLOSED
= 90;
545 * A MathML styling element (mstyle in MathML).
547 const unsigned long ROLE_MATHML_STYLE
= 91;
550 * A MathML subscript (msub in MathML).
552 const unsigned long ROLE_MATHML_SUB
= 92;
555 * A MathML superscript (msup in MathML).
557 const unsigned long ROLE_MATHML_SUP
= 93;
560 * A MathML subscript and superscript (msubsup in MathML).
562 const unsigned long ROLE_MATHML_SUB_SUP
= 94;
565 * A MathML underscript (munder in MathML).
567 const unsigned long ROLE_MATHML_UNDER
= 95;
570 * A MathML overscript (mover in MathML).
572 const unsigned long ROLE_MATHML_OVER
= 96;
575 * A MathML underscript and overscript (munderover in MathML).
577 const unsigned long ROLE_MATHML_UNDER_OVER
= 97;
580 * A MathML multiple subscript and superscript element (mmultiscripts in
583 const unsigned long ROLE_MATHML_MULTISCRIPTS
= 98;
586 * A MathML table (mtable in MathML).
588 const unsigned long ROLE_MATHML_TABLE
= 99;
591 * A MathML labelled table row (mlabeledtr in MathML).
593 const unsigned long ROLE_MATHML_LABELED_ROW
= 100;
596 * A MathML table row (mtr in MathML).
598 const unsigned long ROLE_MATHML_TABLE_ROW
= 101;
601 * A MathML table entry or cell (mtd in MathML).
603 const unsigned long ROLE_MATHML_CELL
= 102;
606 * A MathML interactive element (maction in MathML).
608 const unsigned long ROLE_MATHML_ACTION
= 103;
611 * A MathML error message (merror in MathML).
613 const unsigned long ROLE_MATHML_ERROR
= 104;
616 * A MathML stacked (rows of numbers) element (mstack in MathML).
618 const unsigned long ROLE_MATHML_STACK
= 105;
621 * A MathML long division element (mlongdiv in MathML).
623 const unsigned long ROLE_MATHML_LONG_DIVISION
= 106;
626 * A MathML stack group (msgroup in MathML).
628 const unsigned long ROLE_MATHML_STACK_GROUP
= 107;
631 * A MathML stack row (msrow in MathML).
633 const unsigned long ROLE_MATHML_STACK_ROW
= 108;
636 * MathML carries, borrows, or crossouts for a row (mscarries in MathML).
638 const unsigned long ROLE_MATHML_STACK_CARRIES
= 109;
641 * A MathML carry, borrow, or crossout for a column (mscarry in MathML).
643 const unsigned long ROLE_MATHML_STACK_CARRY
= 110;
646 * A MathML line in a stack (msline in MathML).
648 const unsigned long ROLE_MATHML_STACK_LINE
= 111;
651 * A group containing radio buttons
653 const unsigned long ROLE_RADIO_GROUP
= 112;
656 * A text container exposing brief amount of information. See related
657 * TEXT_CONTAINER role.
659 const unsigned long ROLE_TEXT
= 113;
662 * A text container exposing brief amount of information. See related
665 const unsigned long ROLE_DETAILS
= 114;
668 * A text container exposing brief amount of information. See related
671 const unsigned long ROLE_SUMMARY
= 115;
674 * An ARIA landmark. See related NAVIGATION role.
676 const unsigned long ROLE_LANDMARK
= 116;
679 * A specific type of ARIA landmark. The ability to distinguish navigation
680 * landmarks from other types of landmarks is needed because macOS has a
681 * specific AXSubrole and AXRoleDescription for navigation landmarks.
683 const unsigned long ROLE_NAVIGATION
= 117;
686 * An object that contains the text of a footnote.
688 const unsigned long ROLE_FOOTNOTE
= 118;
691 * A complete or self-contained composition in a document, page, application,
692 * or site and that is, in principle, independently distributable or reusable,
693 * e.g. in syndication.
695 const unsigned long ROLE_ARTICLE
= 119;
698 * A perceivable section containing content that is relevant to a specific,
699 * author-specified purpose and sufficiently important that users will likely
700 * want to be able to navigate to the section easily and to have it listed in
701 * a summary of the page.
703 const unsigned long ROLE_REGION
= 120;
706 * Represents a control with a text input and a popup with a set of predefined
707 * choices. It is used for ARIA's combobox role. See also ROLE_COMBOBOX.
709 const unsigned long ROLE_EDITCOMBOBOX
= 121;
712 * A section of content that is quoted from another source.
714 const unsigned long ROLE_BLOCKQUOTE
= 122;
717 * Content previously deleted or proposed for deletion, e.g. in revision
718 * history or a content view providing suggestions from reviewers.
720 const unsigned long ROLE_CONTENT_DELETION
= 123;
723 * Content previously inserted or proposed for insertion, e.g. in revision
724 * history or a content view providing suggestions from reviewers.
726 const unsigned long ROLE_CONTENT_INSERTION
= 124;
729 * An html:form element with a label provided by WAI-ARIA.
730 * This may also be used if role="form" with a label should be exposed
731 * differently in the future.
733 const unsigned long ROLE_FORM_LANDMARK
= 125;
736 * The html:mark element.
737 * May also be used if WAI-ARIA gets an equivalent role.
739 const unsigned long ROLE_MARK
= 126;
742 * The WAI-ARIA suggestion role.
744 const unsigned long ROLE_SUGGESTION
= 127;
747 * The WAI-ARIA comment role.
749 const unsigned long ROLE_COMMENT
= 128;
752 * A snippet of program code. ATs might want to treat this differently.
754 const unsigned long ROLE_CODE
= 129;
757 * Represents control whose purpose is to allow a user to edit a time.
759 const unsigned long ROLE_TIME_EDITOR
= 130;
762 * Represents the marker associated with a list item. In unordered lists,
763 * this is a bullet, while in ordered lists this is a number.
765 const unsigned long ROLE_LISTITEM_MARKER
= 131;
768 * Essentially, this is a progress bar with a contextually defined
769 * scale, ex. the strength of a password entered in an input.
771 const unsigned long ROLE_METER
= 132;
774 * Represents phrasing content that is presented with vertical alignment
775 * lower than the baseline and a smaller font size. For example, the "2" in
776 * the chemical formula H2O.
778 const unsigned long ROLE_SUBSCRIPT
= 133;
781 * Represents phrasing content that is presented with vertical alignment
782 * higher than the baseline and a smaller font size. For example, the
783 * exponent in a math expression.
785 const unsigned long ROLE_SUPERSCRIPT
= 134;
788 * Represents one or more emphasized characters. Use this role to stress or
791 const unsigned long ROLE_EMPHASIS
= 135;
794 * Represents content that is important, serious, or urgent.
796 const unsigned long ROLE_STRONG
= 136;
799 * Represents a specific point in time.
801 const unsigned long ROLE_TIME
= 137;
804 * Represents a composite widget containing a collection of one or more rows
805 * with one or more cells where some or all cells in the grid are focusable
806 * by using methods of two-dimensional navigation.
808 const unsigned long ROLE_GRID
= 138;
811 * Represents a structure containing one or more row elements in a tabular
812 * container. It is the structural equivalent to the thead, tfoot, and tbody
813 * elements in an HTML table element.
815 const unsigned long ROLE_ROWGROUP
= 139;