michael@0: /************************************************************************* michael@0: * michael@0: * File Name (AccessibleRole.idl) michael@0: * michael@0: * IAccessible2 IDL Specification michael@0: * michael@0: * Copyright (c) 2007, 2013 Linux Foundation michael@0: * Copyright (c) 2006 IBM Corporation michael@0: * Copyright (c) 2000, 2006 Sun Microsystems, Inc. michael@0: * All rights reserved. michael@0: * michael@0: * michael@0: * Redistribution and use in source and binary forms, with or without michael@0: * modification, are permitted provided that the following conditions michael@0: * are met: michael@0: * michael@0: * 1. Redistributions of source code must retain the above copyright michael@0: * notice, this list of conditions and the following disclaimer. michael@0: * michael@0: * 2. Redistributions in binary form must reproduce the above michael@0: * copyright notice, this list of conditions and the following michael@0: * disclaimer in the documentation and/or other materials michael@0: * provided with the distribution. michael@0: * michael@0: * 3. Neither the name of the Linux Foundation nor the names of its michael@0: * contributors may be used to endorse or promote products michael@0: * derived from this software without specific prior written michael@0: * permission. michael@0: * michael@0: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND michael@0: * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, michael@0: * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF michael@0: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE michael@0: * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR michael@0: * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, michael@0: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT michael@0: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; michael@0: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) michael@0: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN michael@0: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR michael@0: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, michael@0: * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. michael@0: * michael@0: * This BSD License conforms to the Open Source Initiative "Simplified michael@0: * BSD License" as published at: michael@0: * http://www.opensource.org/licenses/bsd-license.php michael@0: * michael@0: * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 michael@0: * mark may be used in accordance with the Linux Foundation Trademark michael@0: * Policy to indicate compliance with the IAccessible2 specification. michael@0: * michael@0: ************************************************************************/ michael@0: michael@0: import "objidl.idl"; michael@0: michael@0: /** Collection of roles michael@0: michael@0: This enumerator defines an extended set of accessible roles of objects implementing michael@0: the %IAccessible2 interface. These roles are in addition to the MSAA roles obtained michael@0: through the MSAA get_accRole method. Examples are 'footnote', 'heading', and michael@0: 'label'. You obtain an object's %IAccessible2 roles by calling IAccessible2::role. michael@0: */ michael@0: enum IA2Role { michael@0: michael@0: /** Unknown role. The object contains some Accessible information, but its michael@0: role is not known. michael@0: */ michael@0: IA2_ROLE_UNKNOWN = 0, michael@0: michael@0: /** An object that can be drawn into and to manage events from the objects michael@0: drawn into it. Also refer to ::IA2_ROLE_FRAME, michael@0: ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_LAYERED_PANE. michael@0: */ michael@0: IA2_ROLE_CANVAS = 0x401, michael@0: michael@0: /// A caption describing another object. michael@0: IA2_ROLE_CAPTION, michael@0: michael@0: /// Used for check buttons that are menu items. michael@0: IA2_ROLE_CHECK_MENU_ITEM, michael@0: michael@0: /// A specialized dialog that lets the user choose a color. michael@0: IA2_ROLE_COLOR_CHOOSER, michael@0: michael@0: /// A date editor. michael@0: IA2_ROLE_DATE_EDITOR, michael@0: michael@0: /** An iconified internal frame in an ::IA2_ROLE_DESKTOP_PANE. michael@0: Also refer to ::IA2_ROLE_INTERNAL_FRAME. michael@0: */ michael@0: IA2_ROLE_DESKTOP_ICON, michael@0: michael@0: /** A desktop pane. A pane that supports internal frames and iconified michael@0: versions of those internal frames. Also refer to ::IA2_ROLE_INTERNAL_FRAME. michael@0: */ michael@0: IA2_ROLE_DESKTOP_PANE, michael@0: michael@0: /** A directory pane. A pane that allows the user to navigate through michael@0: and select the contents of a directory. May be used by a file chooser. michael@0: Also refer to ::IA2_ROLE_FILE_CHOOSER. michael@0: */ michael@0: IA2_ROLE_DIRECTORY_PANE, michael@0: michael@0: /** An editable text object in a toolbar. Deprecated. michael@0: The edit bar role was meant for a text area in a tool bar. However, to detect michael@0: a text area in a tool bar the AT can query the parent. michael@0: */ michael@0: IA2_ROLE_EDITBAR, michael@0: michael@0: /// Embedded (OLE) object. michael@0: IA2_ROLE_EMBEDDED_OBJECT, michael@0: michael@0: /// Text that is used as an endnote (footnote at the end of a chapter or section). michael@0: IA2_ROLE_ENDNOTE, michael@0: michael@0: /** A file chooser. A specialized dialog that displays the files in the michael@0: directory and lets the user select a file, browse a different directory, michael@0: or specify a filename. May use the directory pane to show the contents of michael@0: a directory. michael@0: Also refer to ::IA2_ROLE_DIRECTORY_PANE. michael@0: */ michael@0: IA2_ROLE_FILE_CHOOSER, michael@0: michael@0: /** A font chooser. A font chooser is a component that lets the user pick michael@0: various attributes for fonts. michael@0: */ michael@0: IA2_ROLE_FONT_CHOOSER, michael@0: michael@0: /** Footer of a document page. michael@0: Also refer to ::IA2_ROLE_HEADER. michael@0: */ michael@0: IA2_ROLE_FOOTER, michael@0: michael@0: /// Text that is used as a footnote. Also refer to ::IA2_ROLE_ENDNOTE. michael@0: IA2_ROLE_FOOTNOTE, michael@0: michael@0: /** A container of form controls. An example of the use of this role is to michael@0: represent an HTML FORM tag. michael@0: */ michael@0: IA2_ROLE_FORM, michael@0: michael@0: /** Frame role. A top level window with a title bar, border, menu bar, etc. michael@0: It is often used as the primary window for an application. Also refer to michael@0: ::IA2_ROLE_CANVAS and the MSAA roles of dialog and window. michael@0: */ michael@0: IA2_ROLE_FRAME, michael@0: michael@0: /** A glass pane. A pane that is guaranteed to be painted on top of all panes michael@0: beneath it. Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_INTERNAL_FRAME, and michael@0: ::IA2_ROLE_ROOT_PANE. michael@0: */ michael@0: IA2_ROLE_GLASS_PANE, michael@0: michael@0: /** Header of a document page. michael@0: Also refer to ::IA2_ROLE_FOOTER. michael@0: */ michael@0: IA2_ROLE_HEADER, michael@0: michael@0: /// Heading. Use the IAccessible2::attributes level attribute to determine the heading level. michael@0: IA2_ROLE_HEADING, michael@0: michael@0: /// A small fixed size picture, typically used to decorate components. michael@0: IA2_ROLE_ICON, michael@0: michael@0: /** An image map object. Usually a graphic with multiple hotspots, where michael@0: each hotspot can be activated resulting in the loading of another document michael@0: or section of a document. michael@0: */ michael@0: IA2_ROLE_IMAGE_MAP, michael@0: michael@0: /** An object which is used to allow input of characters not found on a keyboard, michael@0: such as the input of Chinese characters on a Western keyboard. michael@0: */ michael@0: IA2_ROLE_INPUT_METHOD_WINDOW, michael@0: michael@0: /** An internal frame. A frame-like object that is clipped by a desktop pane. michael@0: The desktop pane, internal frame, and desktop icon objects are often used to michael@0: create multiple document interfaces within an application. michael@0: Also refer to ::IA2_ROLE_DESKTOP_ICON, ::IA2_ROLE_DESKTOP_PANE, and ::IA2_ROLE_FRAME. michael@0: */ michael@0: IA2_ROLE_INTERNAL_FRAME, michael@0: michael@0: /// An object used to present an icon or short string in an interface. michael@0: IA2_ROLE_LABEL, michael@0: michael@0: /** A layered pane. A specialized pane that allows its children to be drawn michael@0: in layers, providing a form of stacking order. This is usually the pane that michael@0: holds the menu bar as well as the pane that contains most of the visual michael@0: components in a window. michael@0: Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_ROOT_PANE. michael@0: */ michael@0: IA2_ROLE_LAYERED_PANE, michael@0: michael@0: /** A section whose content is parenthetic or ancillary to the main content michael@0: of the resource. michael@0: */ michael@0: IA2_ROLE_NOTE, michael@0: michael@0: /** A specialized pane whose primary use is inside a dialog. michael@0: Also refer to MSAA's dialog role. michael@0: */ michael@0: IA2_ROLE_OPTION_PANE, michael@0: michael@0: /** An object representing a page of document content. It is used in documents michael@0: which are accessed by the user on a page by page basis. michael@0: */ michael@0: IA2_ROLE_PAGE, michael@0: michael@0: /// A paragraph of text. michael@0: IA2_ROLE_PARAGRAPH, michael@0: michael@0: /** A radio button that is a menu item. michael@0: Also refer to MSAA's button and menu item roles. michael@0: */ michael@0: IA2_ROLE_RADIO_MENU_ITEM, michael@0: michael@0: /** An object which is redundant with another object in the accessible hierarchy. michael@0: ATs typically ignore objects with this role. michael@0: */ michael@0: IA2_ROLE_REDUNDANT_OBJECT, michael@0: michael@0: /** A root pane. A specialized pane that has a glass pane and a layered pane michael@0: as its children. michael@0: Also refer to ::IA2_ROLE_GLASS_PANE and ::IA2_ROLE_LAYERED_PANE michael@0: */ michael@0: IA2_ROLE_ROOT_PANE, michael@0: michael@0: /** A ruler such as those used in word processors. michael@0: */ michael@0: IA2_ROLE_RULER, michael@0: michael@0: /** A scroll pane. An object that allows a user to incrementally view a large michael@0: amount of information. Its children can include scroll bars and a viewport. michael@0: Also refer to ::IA2_ROLE_VIEW_PORT and MSAA's scroll bar role. michael@0: */ michael@0: IA2_ROLE_SCROLL_PANE, michael@0: michael@0: /** A container of document content. An example of the use of this role is to michael@0: represent an HTML DIV tag. A section may be used as a region. A region is a michael@0: group of elements that together form a perceivable unit. A region does not michael@0: necessarily follow the logical structure of the content, but follows the michael@0: perceivable structure of the page. A region may have an attribute in the set michael@0: of IAccessible2::attributes which indicates that it is "live". A live region michael@0: is content that is likely to change in response to a timed change, a user michael@0: event, or some other programmed logic or event. michael@0: */ michael@0: IA2_ROLE_SECTION, michael@0: michael@0: /// Object with graphical representation used to represent content on draw pages. michael@0: IA2_ROLE_SHAPE, michael@0: michael@0: /** A split pane. A specialized panel that presents two other panels at the michael@0: same time. Between the two panels is a divider the user can manipulate to make michael@0: one panel larger and the other panel smaller. michael@0: */ michael@0: IA2_ROLE_SPLIT_PANE, michael@0: michael@0: /** An object that forms part of a menu system but which can be "undocked" michael@0: from or "torn off" the menu system to exist as a separate window. michael@0: */ michael@0: IA2_ROLE_TEAR_OFF_MENU, michael@0: michael@0: /// An object used as a terminal emulator. michael@0: IA2_ROLE_TERMINAL, michael@0: michael@0: /// Collection of objects that constitute a logical text entity. michael@0: IA2_ROLE_TEXT_FRAME, michael@0: michael@0: /** A toggle button. A specialized push button that can be checked or unchecked, michael@0: but does not provide a separate indicator for the current state. michael@0: Also refer to MSAA's roles of push button, check box, and radio button. michael@0:
Note: IA2_ROLE_TOGGLE_BUTTON should not be used. Instead, use MSAA's michael@0: ROLE_SYSTEM_PUSHBUTTON and STATE_SYSTEM_PRESSED. michael@0: */ michael@0: IA2_ROLE_TOGGLE_BUTTON, michael@0: michael@0: /** A viewport. An object usually used in a scroll pane. It represents the michael@0: portion of the entire data that the user can see. As the user manipulates michael@0: the scroll bars, the contents of the viewport can change. michael@0: Also refer to ::IA2_ROLE_SCROLL_PANE. michael@0: */ michael@0: IA2_ROLE_VIEW_PORT, michael@0: michael@0: /** An object containing content which is complementary to the main content of michael@0: a document, but remains meaningful when separated from the main content. There michael@0: are various types of content that would appropriately have this role. For example, michael@0: in the case where content is delivered via a web portal to a web browser, this may michael@0: include but not be limited to show times, current weather, related articles, or michael@0: stocks to watch. The complementary role indicates that contained content is relevant michael@0: to the main content. If the complementary content is completely separable main michael@0: content, it may be appropriate to use a more general role. michael@0: */ michael@0: IA2_ROLE_COMPLEMENTARY_CONTENT michael@0: michael@0: };