/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef _role_h_ #define _role_h_ /** * @note Make sure to update the localized role names when changing the list. * @note When adding a new role, be sure to also add it to base/RoleMap.h and * update nsIAccessibleRole. */ namespace mozilla { namespace a11y { namespace roles { enum Role { /** * Used when accessible hans't strong defined role. */ NOTHING = 0, /** * Represents a title or caption bar for a window. It is used by MSAA only, * supported automatically by MS Windows. */ TITLEBAR = 1, /** * Represents the menu bar (positioned beneath the title bar of a window) * from which menus are selected by the user. The role is used by * xul:menubar or role="menubar". */ MENUBAR = 2, /** * Represents a vertical or horizontal scroll bar, which is part of the client * area or used in a control. */ SCROLLBAR = 3, /** * Represents a special mouse pointer, which allows a user to manipulate user * interface elements such as windows. For example, a user clicks and drags * a sizing grip in the lower-right corner of a window to resize it. */ GRIP = 4, /** * Represents a system sound, which is associated with various system events. */ SOUND = 5, /** * Represents the system mouse pointer. */ CURSOR = 6, /** * Represents the system caret. The role is supported for caret. */ CARET = 7, /** * Represents an alert or a condition that a user should be notified about. * Assistive Technologies typically respond to the role by reading the entire * onscreen contents of containers advertising this role. Should be used for * warning dialogs, etc. The role is used by xul:browsermessage, * role="alert". */ ALERT = 8, /** * Represents the window frame, which contains child objects such as * a title bar, client, and other objects contained in a window. The role * is supported automatically by MS Windows. */ WINDOW = 9, /** * A sub-document (<frame> or <iframe>) */ INTERNAL_FRAME = 10, /** * Represents a menu, which presents a list of options from which the user can * make a selection to perform an action. It is used for role="menu". */ MENUPOPUP = 11, /** * Represents a menu item, which is an entry in a menu that a user can choose * to carry out a command, select an option. It is used for xul:menuitem, * role="menuitem". */ MENUITEM = 12, /** * Represents a ToolTip that provides helpful hints. */ TOOLTIP = 13, /** * Represents a main window for an application. It is used for * role="application". Also refer to APP_ROOT */ APPLICATION = 14, /** * Represents a document window. A document window is always contained within * an application window. It is used for role="document". */ DOCUMENT = 15, /** * Represents a pane within a frame or document window. Users can navigate * between panes and within the contents of the current pane, but cannot * navigate between items in different panes. Thus, panes represent a level * of grouping lower than frame windows or documents, but above individual * controls. It is used for the first child of a <frame> or <iframe>. */ PANE = 16, /** * Represents a graphical image used to represent data. */ CHART = 17, /** * Represents a dialog box or message box. It is used for xul:dialog, * role="dialog". */ DIALOG = 18, /** * Represents a window border. */ BORDER = 19, /** * Logically groups other objects. There is not always a parent-child * relationship between the grouping object and the objects it contains. It * is used for html:textfield, xul:groupbox, role="group". */ GROUPING = 20, /** * Used to visually divide a space into two regions, such as a separator menu * item or a bar that divides split panes within a window. It is used for * xul:separator, html:hr, role="separator". */ SEPARATOR = 21, /** * Represents a toolbar, which is a grouping of controls (push buttons or * toggle buttons) that provides easy access to frequently used features. It * is used for xul:toolbar, role="toolbar". */ TOOLBAR = 22, /** * Represents a status bar, which is an area at the bottom of a window that * displays information about the current operation, state of the application, * or selected object. The status bar has multiple fields, which display * different kinds of information. It is used for xul:statusbar. */ STATUSBAR = 23, /** * Represents a table that contains rows and columns of cells, and optionally, * row headers and column headers. It is used for html:table, * role="grid". Also refer to the following role: COLUMNHEADER, * ROWHEADER, COLUMN, ROW, CELL. */ TABLE = 24, /** * Represents a column header, providing a visual label for a column in * a table. It is used for XUL tree column headers, html:th, * role="colheader". Also refer to TABLE. */ COLUMNHEADER = 25, /** * Represents a row header, which provides a visual label for a table row. * It is used for role="rowheader". Also, see TABLE. */ ROWHEADER = 26, /** * Represents a column of cells within a table. Also, see TABLE. */ COLUMN = 27, /** * Represents a row of cells within a table. Also, see TABLE. */ ROW = 28, /** * Represents a cell within a table. It is used for html:td, * xul:tree cell and xul:listcell. Also, see TABLE. */ CELL = 29, /** * Represents a link to something else. This object might look like text or * a graphic, but it acts like a button. It is used for * xul:label@class="text-link", html:a, html:area. */ LINK = 30, /** * Displays a Help topic in the form of a ToolTip or Help balloon. */ HELPBALLOON = 31, /** * Represents a cartoon-like graphic object, such as Microsoft Office * Assistant, which is displayed to provide help to users of an application. */ CHARACTER = 32, /** * Represents a list box, allowing the user to select one or more items. It * is used for xul:listbox, html:select@size, role="list". See also * LIST_ITEM. */ LIST = 33, /** * Represents an item in a list. See also LIST. */ LISTITEM = 34, /** * Represents an outline or tree structure, such as a tree view control, * that displays a hierarchical list and allows the user to expand and * collapse branches. Is is used for role="tree". */ OUTLINE = 35, /** * Represents an item in an outline or tree structure. It is used for * role="treeitem". */ OUTLINEITEM = 36, /** * Represents a page tab, it is a child of a page tab list. It is used for * xul:tab, role="treeitem". Also refer to PAGETABLIST. */ PAGETAB = 37, /** * Represents a property sheet. It is used for xul:tabpanel, * role="tabpanel". */ PROPERTYPAGE = 38, /** * Represents an indicator, such as a pointer graphic, that points to the * current item. */ INDICATOR = 39, /** * Represents a picture. Is is used for xul:image, html:img. */ GRAPHIC = 40, /** * Represents read-only text, such as labels for other controls or * instructions in a dialog box. Static text cannot be modified or selected. * Is is used for xul:label, xul:description, html:label, role="label". */ STATICTEXT = 41, /** * Represents selectable text that allows edits or is designated read-only. */ TEXT_LEAF = 42, /** * Represents a push button control. It is used for xul:button, html:button, * role="button". */ PUSHBUTTON = 43, /** * Represents a check box control. It is used for xul:checkbox, * html:input@type="checkbox", role="checkbox". */ CHECKBUTTON = 44, /** * Represents an option button, also called a radio button. It is one of a * group of mutually exclusive options. All objects sharing a single parent * that have this attribute are assumed to be part of single mutually * exclusive group. It is used for xul:radio, html:input@type="radio", * role="radio". */ RADIOBUTTON = 45, /** * Represents a combo box; an edit control with an associated list box that * provides a set of predefined choices. It is used for html:select, * xul:menulist, role="combobox". */ COMBOBOX = 46, /** * Represents the calendar control. */ DROPLIST = 47, /** * Represents a progress bar, dynamically showing the user the percent * complete of an operation in progress. It is used for xul:progressmeter, * role="progressbar". */ PROGRESSBAR = 48, /** * Represents a dial or knob whose purpose is to allow a user to set a value. */ DIAL = 49, /** * Represents a hot-key field that allows the user to enter a combination or * sequence of keystrokes. */ HOTKEYFIELD = 50, /** * Represents a slider, which allows the user to adjust a setting in given * increments between minimum and maximum values. It is used by xul:scale, * role="slider". */ SLIDER = 51, /** * Represents a spin box, which is a control that allows the user to increment * or decrement the value displayed in a separate "buddy" control associated * with the spin box. It is used for xul:spinbuttons. */ SPINBUTTON = 52, /** * Represents a graphical image used to diagram data. It is used for svg:svg. */ DIAGRAM = 53, /** * Represents an animation control, which contains content that changes over * time, such as a control that displays a series of bitmap frames. */ ANIMATION = 54, /** * Represents a mathematical equation. It is used by MATHML, where there is a * rich DOM subtree for an equation. Use FLAT_EQUATION for <img role="math" alt="[TeX]"/> */ EQUATION = 55, /** * Represents a button that drops down a list of items. */ BUTTONDROPDOWN = 56, /** * Represents a button that drops down a menu. */ BUTTONMENU = 57, /** * Represents a button that drops down a grid. It is used for xul:colorpicker. */ BUTTONDROPDOWNGRID = 58, /** * Represents blank space between other objects. */ WHITESPACE = 59, /** * Represents a container of page tab controls. Is it used for xul:tabs, * DHTML: role="tabs". Also refer to PAGETAB. */ PAGETABLIST = 60, /** * Represents a control that displays time. */ CLOCK = 61, /** * Represents a button on a toolbar that has a drop-down list icon directly * adjacent to the button. */ SPLITBUTTON = 62, /** * Represents an edit control designed for an Internet Protocol (IP) address. * The edit control is divided into sections for the different parts of the * IP address. */ IPADDRESS = 63, /** * Represents a label control that has an accelerator. */ ACCEL_LABEL = 64, /** * Represents an arrow in one of the four cardinal directions. */ ARROW = 65, /** * Represents a control that can be drawn into and is used to trap events. * It is used for html:canvas. */ CANVAS = 66, /** * Represents a menu item with a check box. */ CHECK_MENU_ITEM = 67, /** * Represents a specialized dialog that lets the user choose a color. */ COLOR_CHOOSER = 68, /** * Represents control whose purpose is to allow a user to edit a date. */ DATE_EDITOR = 69, /** * An iconified internal frame in an DESKTOP_PANE. Also refer to * INTERNAL_FRAME. */ DESKTOP_ICON = 70, /** * A desktop pane. A pane that supports internal frames and iconified * versions of those internal frames. */ DESKTOP_FRAME = 71, /** * A directory pane. A pane that allows the user to navigate through * and select the contents of a directory. May be used by a file chooser. * Also refer to FILE_CHOOSER. */ DIRECTORY_PANE = 72, /** * A file chooser. A specialized dialog that displays the files in the * directory and lets the user select a file, browse a different directory, * or specify a filename. May use the directory pane to show the contents of * a directory. Also refer to DIRECTORY_PANE. */ FILE_CHOOSER = 73, /** * A font chooser. A font chooser is a component that lets the user pick * various attributes for fonts. */ FONT_CHOOSER = 74, /** * Frame role. A top level window with a title bar, border, menu bar, etc. * It is often used as the primary window for an application. */ CHROME_WINDOW = 75, /** * A glass pane. A pane that is guaranteed to be painted on top of all * panes beneath it. Also refer to ROOT_PANE. */ GLASS_PANE = 76, /** * A document container for HTML, whose children represent the document * content. */ HTML_CONTAINER = 77, /** * A small fixed size picture, typically used to decorate components. */ ICON = 78, /** * Presents an icon or short string in an interface. */ LABEL = 79, /** * A layered pane. A specialized pane that allows its children to be drawn * in layers, providing a form of stacking order. This is usually the pane * that holds the menu bar as well as the pane that contains most of the * visual components in a window. Also refer to GLASS_PANE and * ROOT_PANE. */ LAYERED_PANE = 80, /** * A specialized pane whose primary use is inside a dialog. */ OPTION_PANE = 81, /** * A text object uses for passwords, or other places where the text content * is not shown visibly to the user. */ PASSWORD_TEXT = 82, /** * A temporary window that is usually used to offer the user a list of * choices, and then hides when the user selects one of those choices. */ POPUP_MENU = 83, /** * A radio button that is a menu item. */ RADIO_MENU_ITEM = 84, /** * A root pane. A specialized pane that has a glass pane and a layered pane * as its children. Also refer to GLASS_PANE and LAYERED_PANE. */ ROOT_PANE = 85, /** * A scroll pane. An object that allows a user to incrementally view a large * amount of information. Its children can include scroll bars and a * viewport. Also refer to VIEW_PORT. */ SCROLL_PANE = 86, /** * A split pane. A specialized panel that presents two other panels at the * same time. Between the two panels is a divider the user can manipulate to * make one panel larger and the other panel smaller. */ SPLIT_PANE = 87, /** * The header for a column of a table. * XXX: it looks this role is dupe of COLUMNHEADER. */ TABLE_COLUMN_HEADER = 88, /** * The header for a row of a table. * XXX: it looks this role is dupe of ROWHEADER */ TABLE_ROW_HEADER = 89, /** * A menu item used to tear off and reattach its menu. */ TEAR_OFF_MENU_ITEM = 90, /** * Represents an accessible terminal. */ TERMINAL = 91, /** * Collection of objects that constitute a logical text entity. */ TEXT_CONTAINER = 92, /** * A toggle button. A specialized push button that can be checked or * unchecked, but does not provide a separate indicator for the current state. */ TOGGLE_BUTTON = 93, /** * Represent a control that is capable of expanding and collapsing rows as * well as showing multiple columns of data. */ TREE_TABLE = 94, /** * A viewport. An object usually used in a scroll pane. It represents the * portion of the entire data that the user can see. As the user manipulates * the scroll bars, the contents of the viewport can change. Also refer to * SCROLL_PANE. */ VIEWPORT = 95, /** * Header of a document page. Also refer to FOOTER. */ HEADER = 96, /** * Footer of a document page. Also refer to HEADER. */ FOOTER = 97, /** * A paragraph of text. */ PARAGRAPH = 98, /** * A ruler such as those used in word processors. */ RULER = 99, /** * A text entry having dialog or list containing items for insertion into * an entry widget, for instance a list of words for completion of a * text entry. It is used for xul:textbox@autocomplete */ AUTOCOMPLETE = 100, /** * An editable text object in a toolbar. */ EDITBAR = 101, /** * An control whose textual content may be entered or modified by the user. */ ENTRY = 102, /** * A caption describing another object. */ CAPTION = 103, /** * A visual frame or container which contains a view of document content. * Document frames may occur within another Document instance, in which case * the second document may be said to be embedded in the containing instance. * HTML frames are often DOCUMENT_FRAME. Either this object, or a * singleton descendant, should implement the Document interface. */ DOCUMENT_FRAME = 104, /** * Heading. */ HEADING = 105, /** * An object representing a page of document content. It is used in documents * which are accessed by the user on a page by page basis. */ PAGE = 106, /** * A container of document content. An example of the use of this role is to * represent an html:div. */ SECTION = 107, /** * An object which is redundant with another object in the accessible * hierarchy. ATs typically ignore objects with this role. */ REDUNDANT_OBJECT = 108, /** * A container of form controls. An example of the use of this role is to * represent an html:form. */ FORM = 109, /** * An object which is used to allow input of characters not found on a * keyboard, such as the input of Chinese characters on a Western keyboard. */ IME = 110, /** * XXX: document this. */ APP_ROOT = 111, /** * Represents a menu item, which is an entry in a menu that a user can choose * to display another menu. */ PARENT_MENUITEM = 112, /** * A calendar that allows the user to select a date. */ CALENDAR = 113, /** * A list of items that is shown by combobox. */ COMBOBOX_LIST = 114, /** * A item of list that is shown by combobox. */ COMBOBOX_OPTION = 115, /** * An image map -- has child links representing the areas */ IMAGE_MAP = 116, /** * An option in a listbox */ OPTION = 117, /** * A rich option in a listbox, it can have other widgets as children */ RICH_OPTION = 118, /** * A list of options */ LISTBOX = 119, /** * Represents a mathematical equation in the accessible name */ FLAT_EQUATION = 120, /** * Represents a cell within a grid. It is used for role="gridcell". Unlike * CELL, it allows the calculation of the accessible name from subtree. * Also, see TABLE. */ GRID_CELL = 121, /** * Represents an embedded object. It is used for html:object or html:embed. */ EMBEDDED_OBJECT = 122, /** * A note. Originally intended to be hidden until activated, but now also used * for things like html 'aside'. */ NOTE = 123, /** * A figure. Used for things like HTML5 figure element. */ FIGURE = 124, /** * Represents a rich item with a check box. */ CHECK_RICH_OPTION = 125, /** * Represent a definition list (dl in HTML). */ DEFINITION_LIST = 126, /** * Represent a term in a definition list (dt in HTML). */ TERM = 127, /** * Represent a definition in a definition list (dd in HTML) */ DEFINITION = 128, /** * Represent a keyboard or keypad key (ARIA role "key"). */ KEY = 129, /** * Represent a switch control widget (ARIA role "switch"). */ SWITCH = 130, /** * A block of MathML code (math). */ MATHML_MATH = 131, /** * A MathML identifier (mi in MathML). */ MATHML_IDENTIFIER = 132, /** * A MathML number (mn in MathML). */ MATHML_NUMBER = 133, /** * A MathML operator (mo in MathML). */ MATHML_OPERATOR = 134, /** * A MathML text (mtext in MathML). */ MATHML_TEXT = 135, /** * A MathML string literal (ms in MathML). */ MATHML_STRING_LITERAL = 136, /** * A MathML glyph (mglyph in MathML). */ MATHML_GLYPH = 137, /** * A MathML row (mrow in MathML). */ MATHML_ROW = 138, /** * A MathML fraction (mfrac in MathML). */ MATHML_FRACTION = 139, /** * A MathML square root (msqrt in MathML). */ MATHML_SQUARE_ROOT = 140, /** * A MathML root (mroot in MathML). */ MATHML_ROOT = 141, /** * A MathML fenced element (mfenced in MathML). */ MATHML_FENCED = 142, /** * A MathML enclosed element (menclose in MathML). */ MATHML_ENCLOSED = 143, /** * A MathML styling element (mstyle in MathML). */ MATHML_STYLE = 144, /** * A MathML subscript (msub in MathML). */ MATHML_SUB = 145, /** * A MathML superscript (msup in MathML). */ MATHML_SUP = 146, /** * A MathML subscript and superscript (msubsup in MathML). */ MATHML_SUB_SUP = 147, /** * A MathML underscript (munder in MathML). */ MATHML_UNDER = 148, /** * A MathML overscript (mover in MathML). */ MATHML_OVER = 149, /** * A MathML underscript and overscript (munderover in MathML). */ MATHML_UNDER_OVER = 150, /** * A MathML multiple subscript and superscript element (mmultiscripts in * MathML). */ MATHML_MULTISCRIPTS = 151, /** * A MathML table (mtable in MathML). */ MATHML_TABLE = 152, /** * A MathML labelled table row (mlabeledtr in MathML). */ MATHML_LABELED_ROW = 153, /** * A MathML table row (mtr in MathML). */ MATHML_TABLE_ROW = 154, /** * A MathML table entry or cell (mtd in MathML). */ MATHML_CELL = 155, /** * A MathML interactive element (maction in MathML). */ MATHML_ACTION = 156, /** * A MathML error message (merror in MathML). */ MATHML_ERROR = 157, /** * A MathML stacked (rows of numbers) element (mstack in MathML). */ MATHML_STACK = 158, /** * A MathML long division element (mlongdiv in MathML). */ MATHML_LONG_DIVISION = 159, /** * A MathML stack group (msgroup in MathML). */ MATHML_STACK_GROUP = 160, /** * A MathML stack row (msrow in MathML). */ MATHML_STACK_ROW = 161, /** * MathML carries, borrows, or crossouts for a row (mscarries in MathML). */ MATHML_STACK_CARRIES = 162, /** * A MathML carry, borrow, or crossout for a column (mscarry in MathML). */ MATHML_STACK_CARRY = 163, /** * A MathML line in a stack (msline in MathML). */ MATHML_STACK_LINE = 164, /** * A group containing radio buttons */ RADIO_GROUP = 165, /** * A text container exposing brief amount of information. See related * TEXT_CONTAINER role. */ TEXT = 166, /** * The html:details element. */ DETAILS = 167, /** * The html:summary element. */ SUMMARY = 168, LAST_ROLE = SUMMARY }; } // namespace role typedef enum mozilla::a11y::roles::Role role; } // namespace a11y } // namespace mozilla #endif