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: };