/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2007 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Alexander Surkov <surkov.alexander@gmail.com> * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsISupports.idl" /** * Defines cross platform (Gecko) roles. * * @note - When adding a new role, be sure to also add it to nsRoleMap.h for * each platform. */ [scriptable, uuid(8c0f68f8-164a-4078-a9ee-36a7d180f0e4)] 00048 interface nsIAccessibleRole : nsISupports { /** * Used when accessible hans't strong defined role. */ 00053 const unsigned long ROLE_NOTHING = 0; /** * Represents a title or caption bar for a window. It is used by MSAA only, * supported automatically by MS Windows. */ 00059 const unsigned long ROLE_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". */ 00066 const unsigned long ROLE_MENUBAR = 2; /** * Represents a vertical or horizontal scroll bar, which is part of the client * area or used in a control. */ 00072 const unsigned long ROLE_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. */ 00079 const unsigned long ROLE_GRIP = 4; /** * Represents a system sound, which is associated with various system events. */ 00084 const unsigned long ROLE_SOUND = 5; /** * Represents the system mouse pointer. */ 00089 const unsigned long ROLE_CURSOR = 6; /** * Represents the system caret. The role is supported for caret. */ 00094 const unsigned long ROLE_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", xforms:message. */ 00103 const unsigned long ROLE_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. */ 00110 const unsigned long ROLE_WINDOW = 9; /** * A sub-document (<frame> or <iframe>) */ 00115 const unsigned long ROLE_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". */ 00121 const unsigned long ROLE_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". */ 00128 const unsigned long ROLE_MENUITEM = 12; /** * Represents a ToolTip that provides helpful hints. */ 00133 const unsigned long ROLE_TOOLTIP = 13; /** * Represents a main window for an application. It is used for * role="application". Also refer to ROLE_APP_ROOT */ 00139 const unsigned long ROLE_APPLICATION = 14; /** * Represents a document window. A document window is always contained within * an application window. It is used for role="document". */ 00145 const unsigned long ROLE_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>. */ 00154 const unsigned long ROLE_PANE = 16; /** * Represents a graphical image used to represent data. */ 00159 const unsigned long ROLE_CHART = 17; /** * Represents a dialog box or message box. It is used for xul:dialog, * role="dialog". */ 00165 const unsigned long ROLE_DIALOG = 18; /** * Represents a window border. */ 00170 const unsigned long ROLE_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". */ 00177 const unsigned long ROLE_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". */ 00184 const unsigned long ROLE_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". */ 00191 const unsigned long ROLE_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. */ 00199 const unsigned long ROLE_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 roles: ROLE_COLUMNHEADER, * ROLE_ROWHEADER, ROLE_COLUMN, ROLE_ROW, ROLE_CELL. */ 00207 const unsigned long ROLE_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 ROLE_TABLE. */ 00214 const unsigned long ROLE_COLUMNHEADER = 25; /** * Represents a row header, which provides a visual label for a table row. * It is used for role="rowheader". Also, see ROLE_TABLE. */ 00220 const unsigned long ROLE_ROWHEADER = 26; /** * Represents a column of cells within a table. Also, see ROLE_TABLE. */ 00225 const unsigned long ROLE_COLUMN = 27; /** * Represents a row of cells within a table. Also, see ROLE_TABLE. */ 00230 const unsigned long ROLE_ROW = 28; /** * Represents a cell within a table. Is is used for html:td, * role="gridcell". Also, see ROLE_TABLE. */ 00236 const unsigned long ROLE_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, * xforms:trigger@appearance="minimal". */ const unsigned long ROLE_LINK = 30; /** * Displays a Help topic in the form of a ToolTip or Help balloon. */ 00249 const unsigned long ROLE_HELPBALLOON = 31; /** * Represents a cartoon-like graphic object, such as Microsoft Office * Assistant, which is displayed to provide help to users of an application. */ 00255 const unsigned long ROLE_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 * ROLE_LIST_ITEM. */ 00262 const unsigned long ROLE_LIST = 33; /** * Represents an item in a list. See also ROLE_LIST. */ 00267 const unsigned long ROLE_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". */ 00274 const unsigned long ROLE_OUTLINE = 35; /** * Represents an item in an outline or tree structure. It is used for * role="treeitem". */ 00280 const unsigned long ROLE_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 ROLE_PAGETABLIST. */ 00286 const unsigned long ROLE_PAGETAB = 37; /** * Represents a property sheet. It is used for xul:tabpanel, * role="tabpanel". */ 00292 const unsigned long ROLE_PROPERTYPAGE = 38; /** * Represents an indicator, such as a pointer graphic, that points to the * current item. */ 00298 const unsigned long ROLE_INDICATOR = 39; /** * Represents a picture. Is is used for xul:image, html:img. */ 00303 const unsigned long ROLE_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:lablel, * role="label" or role="description", xforms:output. */ 00311 const unsigned long ROLE_STATICTEXT = 41; /** * Represents selectable text that allows edits or is designated read-only. */ 00316 const unsigned long ROLE_TEXT_LEAF = 42; /** * Represents a push button control. It is used for xul:button, html:button, * role="button", xforms:trigger, xforms:submit. */ 00322 const unsigned long ROLE_PUSHBUTTON = 43; /** * Represents a check box control. It is used for xul:checkbox, * html:input@type="checkbox", role="checkbox", boolean xforms:input. */ 00328 const unsigned long ROLE_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". */ 00337 const unsigned long ROLE_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". */ 00344 const unsigned long ROLE_COMBOBOX = 46; /** * Represents the calendar control. It is used for date xforms:input. */ 00349 const unsigned long ROLE_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". */ 00356 const unsigned long ROLE_PROGRESSBAR = 48; /** * Represents a dial or knob whose purpose is to allow a user to set a value. */ 00361 const unsigned long ROLE_DIAL = 49; /** * Represents a hot-key field that allows the user to enter a combination or * sequence of keystrokes. */ 00367 const unsigned long ROLE_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", xforms:range. */ 00374 const unsigned long ROLE_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. */ 00381 const unsigned long ROLE_SPINBUTTON = 52; /** * Represents a graphical image used to diagram data. It is used for svg:svg. */ 00386 const unsigned long ROLE_DIAGRAM = 53; /** * Represents an animation control, which contains content that changes over * time, such as a control that displays a series of bitmap frames. */ 00392 const unsigned long ROLE_ANIMATION = 54; /** * Represents a mathematical equation. It is used by MATHML, where there is a * rich DOM subtree for an equation. Use ROLE_FLAT_EQUATION for <img role="math" alt="[TeX]"/> */ 00398 const unsigned long ROLE_EQUATION = 55; /** * Represents a button that drops down a list of items. */ 00403 const unsigned long ROLE_BUTTONDROPDOWN = 56; /** * Represents a button that drops down a menu. */ 00408 const unsigned long ROLE_BUTTONMENU = 57; /** * Represents a button that drops down a grid. It is used for xul:colorpicker. */ 00413 const unsigned long ROLE_BUTTONDROPDOWNGRID = 58; /** * Represents blank space between other objects. */ 00418 const unsigned long ROLE_WHITESPACE = 59; /** * Represents a container of page tab controls. Is it used for xul:tabs, * DHTML: role="tabs". Also refer to ROLE_PAGETAB. */ 00424 const unsigned long ROLE_PAGETABLIST = 60; /** * Represents a control that displays time. */ 00429 const unsigned long ROLE_CLOCK = 61; /** * Represents a button on a toolbar that has a drop-down list icon directly * adjacent to the button. */ 00435 const unsigned long ROLE_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. */ 00442 const unsigned long ROLE_IPADDRESS = 63; /** * Represents a label control that has an accelerator. */ 00447 const unsigned long ROLE_ACCEL_LABEL = 64; /** * Represents an arrow in one of the four cardinal directions. */ 00452 const unsigned long ROLE_ARROW = 65; /** * Represents a control that can be drawn into and is used to trap events. * It is used for html:canvas. */ 00458 const unsigned long ROLE_CANVAS = 66; /** * Represents a menu item with a check box. */ 00463 const unsigned long ROLE_CHECK_MENU_ITEM = 67; /** * Represents a specialized dialog that lets the user choose a color. */ 00468 const unsigned long ROLE_COLOR_CHOOSER = 68; /** * Represents control whose purpose is to allow a user to edit a date. */ 00473 const unsigned long ROLE_DATE_EDITOR = 69; /** * An iconified internal frame in an ROLE_DESKTOP_PANE. Also refer to * ROLE_INTERNAL_FRAME. */ 00479 const unsigned long ROLE_DESKTOP_ICON = 70; /** * A desktop pane. A pane that supports internal frames and iconified * versions of those internal frames. */ 00485 const unsigned long ROLE_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 ROLE_FILE_CHOOSER. */ 00492 const unsigned long ROLE_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 ROLE_DIRECTORY_PANE. */ 00500 const unsigned long ROLE_FILE_CHOOSER = 73; /** * A font chooser. A font chooser is a component that lets the user pick * various attributes for fonts. */ 00506 const unsigned long ROLE_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. */ 00512 const unsigned long ROLE_CHROME_WINDOW = 75; /** * A glass pane. A pane that is guaranteed to be painted on top of all * panes beneath it. Also refer to ROLE_ROOT_PANE. */ 00518 const unsigned long ROLE_GLASS_PANE = 76; /** * A document container for HTML, whose children represent the document * content. */ 00524 const unsigned long ROLE_HTML_CONTAINER = 77; /** * A small fixed size picture, typically used to decorate components. */ 00529 const unsigned long ROLE_ICON = 78; /** * Presents an icon or short string in an interface. */ 00534 const unsigned long ROLE_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 ROLE_GLASS_PANE and * ROLE_ROOT_PANE. */ 00543 const unsigned long ROLE_LAYERED_PANE = 80; /** * A specialized pane whose primary use is inside a dialog. */ 00548 const unsigned long ROLE_OPTION_PANE = 81; /** * A text object uses for passwords, or other places where the text content * is not shown visibly to the user. */ 00554 const unsigned long ROLE_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. */ 00560 const unsigned long ROLE_POPUP_MENU = 83; /** * A radio button that is a menu item. */ 00565 const unsigned long ROLE_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 ROLE_GLASS_PANE and ROLE_LAYERED_PANE. */ 00571 const unsigned long ROLE_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 ROLE_VIEW_PORT. */ 00578 const unsigned long ROLE_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. */ 00585 const unsigned long ROLE_SPLIT_PANE = 87; /** * The header for a column of a table. * XXX: it looks this role is dupe of ROLE_COLUMNHEADER. */ 00591 const unsigned long ROLE_TABLE_COLUMN_HEADER = 88; /** * The header for a row of a table. * XXX: it looks this role is dupe of ROLE_ROWHEADER */ 00597 const unsigned long ROLE_TABLE_ROW_HEADER = 89; /** * A menu item used to tear off and reattach its menu. */ 00602 const unsigned long ROLE_TEAR_OFF_MENU_ITEM = 90; /** * Represents an accessible terminal. */ 00607 const unsigned long ROLE_TERMINAL = 91; /** * Collection of objects that constitute a logical text entity. */ 00612 const unsigned long ROLE_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. */ 00618 const unsigned long ROLE_TOGGLE_BUTTON = 93; /** * Representas a control that is capable of expanding and collapsing rows as * well as showing multiple columns of data. * XXX: it looks like this role is dupe of ROLE_OUTLINE. */ 00625 const unsigned long ROLE_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 * ROLE_SCROLL_PANE. */ 00633 const unsigned long ROLE_VIEWPORT = 95; /** * Header of a document page. Also refer to ROLE_FOOTER. */ 00638 const unsigned long ROLE_HEADER = 96; /** * Footer of a document page. Also refer to ROLE_HEADER. */ 00643 const unsigned long ROLE_FOOTER = 97; /** * A paragraph of text. */ 00648 const unsigned long ROLE_PARAGRAPH = 98; /** * A ruler such as those used in word processors. */ 00653 const unsigned long ROLE_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 */ 00660 const unsigned long ROLE_AUTOCOMPLETE = 100; /** * An editable text object in a toolbar. */ 00665 const unsigned long ROLE_EDITBAR = 101; /** * An control whose textual content may be entered or modified by the user. */ 00670 const unsigned long ROLE_ENTRY = 102; /** * A caption describing another object. */ 00675 const unsigned long ROLE_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 ROLE_DOCUMENT_FRAME. Either this object, or a * singleton descendant, should implement the Document interface. */ 00684 const unsigned long ROLE_DOCUMENT_FRAME = 104; /** * Heading. */ 00689 const unsigned long ROLE_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. */ 00695 const unsigned long ROLE_PAGE = 106; /** * A container of document content. An example of the use of this role is to * represent an html:div. */ 00701 const unsigned long ROLE_SECTION = 107; /** * An object which is redundant with another object in the accessible * hierarchy. ATs typically ignore objects with this role. */ 00707 const unsigned long ROLE_REDUNDANT_OBJECT = 108; /** * A container of form controls. An example of the use of this role is to * represent an html:form. */ 00713 const unsigned long ROLE_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. */ 00719 const unsigned long ROLE_IME = 110; /** * XXX: document this. */ 00724 const unsigned long ROLE_APP_ROOT = 111; /** * Represents a menu item, which is an entry in a menu that a user can choose * to display another menu. */ 00730 const unsigned long ROLE_PARENT_MENUITEM = 112; /** * A calendar that allows the user to select a date. */ 00735 const unsigned long ROLE_CALENDAR = 113; /** * A list of items that is shown by combobox. */ 00740 const unsigned long ROLE_COMBOBOX_LIST = 114; /** * A item of list that is shown by combobox; */ 00745 const unsigned long ROLE_COMBOBOX_OPTION = 115; /** * An image map -- has child links representing the areas */ 00750 const unsigned long ROLE_IMAGE_MAP = 116; /** * An option in a listbox */ 00755 const unsigned long ROLE_OPTION = 117; /** * A rich option in a listbox, it can have other widgets as children */ 00760 const unsigned long ROLE_RICH_OPTION = 118; /** * A list of options */ 00765 const unsigned long ROLE_LISTBOX = 119; /** * Represents a mathematical equation in the accessible name */ 00770 const unsigned long ROLE_FLAT_EQUATION = 120; /** * It's not role actually. This contanst is important to help ensure * nsRoleMap's are synchronized. */ 00776 const unsigned long ROLE_LAST_ENTRY = 121; };