2 * AT-SPI - Assistive Technology Service Provider Interface
3 * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
5 * Copyright 2001 Sun Microsystems Inc.
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Library General Public License for more details.
17 * You should have received a copy of the GNU Library General Public
18 * License along with this library; if not, write to the
19 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 * Boston, MA 02111-1307, USA.
23 #ifndef _ACCESSIBILITY_ROLE_IDL
24 #define _ACCESSIBILITY_ROLE_IDL
26 module Accessibility {
29 /** A Role indicating an error condition, such as uninitialized Role data. */
31 /** Object is a label indicating the keyboard accelerators for the parent */
32 ROLE_ACCELERATOR_LABEL,
33 /** Object is used to alert the user about something */
35 /** Object contains a dynamic or moving image of some kind */
37 /** Object is a 2d directional indicator */
39 /** Object contains one or more dates, usually arranged into a 2d list */
41 /** Object that can be drawn into and is used to trap events */
44 * A choice that can be checked or unchecked and provides a separate
45 * indicator for the current state.
48 /** A menu item that behaves like a check box (see ROLE_CHECK_BOX) */
50 /** A specialized dialog that lets the user choose a color. */
52 /** The header for a column of data */
54 /** A list of choices the user can select from */
56 /** An object which allows entry of a date */
58 /** An inconifed internal frame within a DESKTOP_PANE */
61 * A pane that supports internal frames and iconified versions of those
66 * An object that allows a value to be changed via rotating a visual element,
67 * or which displays a value via such a rotating element.
70 /** A top level window with title bar and a border */
73 * A pane that allows the user to navigate through and select the contents
78 * A specialized dialog that displays the files in the directory and lets
79 * the user select a file, browse a different directory, or specify a
84 * An object used for drawing custom user interface elements.
88 * A object that fills up space in a user interface
91 /** XXX Don't use, reserved for future use. */
92 ROLE_FOCUS_TRAVERSABLE,
93 /** Allows selection of a display font */
95 /** A top level window with a title bar, border, menubar, etc. */
97 /** A pane that is guaranteed to be painted on top of all panes beneath it */
100 * A document container for HTML, whose children
101 * represent the document content.
104 /** A small fixed size picture, typically used to decorate components */
106 /** An image, typically static. */
108 /** A frame-like object that is clipped by a desktop pane. */
110 /** An object used to present an icon or short string in an interface */
113 * A specialized pane that allows its children to be drawn in layers,
114 * providing a form of stacking order.
118 * An object that presents a list of objects to the user and allows the
119 * user to select one or more of them.
122 /** An object that represents an element of a list. */
125 * An object usually found inside a menu bar that contains a list of
126 * actions the user can choose from.
130 * An object usually drawn at the top of the primary dialog box of an
131 * application that contains a list of menus the user can choose from.
135 * An object usually contained in a menu that presents an action the
139 /** A specialized pane whose primary use is inside a DIALOG */
141 /** An object that is a child of a page tab list */
144 * An object that presents a series of panels (or page tabs), one at a time,
145 * through some mechanism provided by the object.
148 /** A generic container that is often used to group objects. */
151 * A text object uses for passwords, or other places where the text
152 * content is not shown visibly to the user.
156 * A temporary window that is usually used to offer the user a list of
157 * choices, and then hides when the user selects one of those choices.
160 /** An object used to indicate how much of a task has been completed. */
163 * An object the user can manipulate to tell the application to do
168 * A specialized check box that will cause other radio buttons in the
169 * same group to become uncghecked when this one is checked.
172 /** Object is both a menu item and a "radio button" (see ROLE_RADIO_BUTTON) */
173 ROLE_RADIO_MENU_ITEM,
175 * A specialized pane that has a glass pane and a layered pane as its
179 /** The header for a row of data */
182 * An object usually used to allow a user to incrementally view a large
183 * amount of data by moving the bounds of a viewport along a one-dimensional axis.
187 * An object that allows a user to incrementally view a large amount
188 * of information. ROLE_SCROLL_PANE objects are usually accompanied by
189 * ROLE_SCROLL_BAR controllers, on which the RELATION_CONTROLLER_FOR and
190 * RELATION_CONTROLLED_BY reciprocal relations are set; \see
191 * Accessibility::RelationSet.
195 * An object usually contained in a menu to provide a visible and
196 * logical separation of the contents in a menu.
199 /** An object that allows the user to select from a bounded range */
202 * An object which allows one of a set of choices to be selected,
203 * and which displays the current choice. Unlike ROLE_SCROLL_BAR,
204 * ROLE_SLIDER objects need not control 'viewport'-like objects.
207 /** A specialized panel that presents two other panels at the same time. */
209 /** Object displays non-quantitative status information (c.f. ROLE_PROGRESS_BAR) */
211 /** An object used to repesent information in terms of rows and columns. */
213 /** A 'cell' or discrete child within a Table. \note Table cells need not have ROLE_TABLE_CELL,
214 * other RoleType values are valid as well. */
216 /** An object which labels a particular column in a Table. */
217 ROLE_TABLE_COLUMN_HEADER,
218 /** An object which labels a particular row in a Table. Table rows and columns may also be
219 * labelled via the RELATION_LABEL_FOR/RELATION_LABELLED_BY relationships;
220 * \see Accessibility::RelationSet. */
221 ROLE_TABLE_ROW_HEADER,
222 /** Object allows menu to be removed from menubar and shown in its own window. */
223 ROLE_TEAROFF_MENU_ITEM,
224 /** An object that emulates a terminal */
226 /** An object that presents text to the user, of nonspecific type. */
229 * A specialized push button that can be checked or unchecked, but does
230 * not procide a separate indicator for the current state.
234 * A bar or palette usually composed of push buttons or toggle buttons
238 * An object that provides information about another object
241 /** An object used to repsent hierarchical information to the user. */
243 /** An object that presents both tabular and hierarchical info to the user */
246 * The object contains some Accessible information, but its role is
250 /** An object usually used in a scroll pane, or to otherwise clip a larger object or
251 * content renderer to a specific onscreen viewport. */
253 /** A ¨top level window¨ with no title or border. */
256 * means that the role for this item is known, but not included in the
260 /** An object that serves as a document header. */
262 /** An object that serves as a document footer. */
264 /** An object which is contains a single paragraph of text content. \see also ROLE_TEXT. */
267 * An object which describes margins and tab stops, etc.
268 * for text objects which it controls
269 * (should have CONTROLLER_FOR relation to such).
273 * An object corresponding to the toplevel accessible of an
274 * application, which may contain ROLE_FRAME objects or other
275 * accessible objects. Children of AccessibleDesktop objects
276 * are generally ROLE_APPLICATION objects.
280 * The object is a dialog or list containing items for insertion
281 * into an entry widget, for instance a list of words for completion
286 * The object is an editable text object in a toolbar.
290 * The object is an embedded component container. This role is a
291 * "grouping" hint that the contained objects share a context which is
292 * different from the container in which this accessible is embedded.
293 * In particular, it is used for some kinds of document embedding, and
294 * for embedding of out-of-process component, "panel applets", etc.
299 * The object is a component whose textual content may be entered or modified by the user,
300 * provided STATE_EDITABLE is present.
301 * @note a readonly ROLE_ENTRY object (i.e. where STATE_EDITABLE is not present) implies a
302 * read-only ¨text field¨ in a form, as opposed to a title, label, or caption.
304 * @since AT-SPI 1.7.0
308 * The object is a graphical depiction of quantitative data. It may contain multiple
309 * subelements whose attributes and/or description may be queried to obtain both the
310 * quantitative data and information about how the data is being presented.
311 * The LABELLED_BY relation is particularly important in interpreting objects of this type,
312 * as is the accessible-description property.
315 * @since AT-SPI 1.7.0
319 * The object contains descriptive information, usually textual, about another user interface
320 * element such as a table, chart, or image.
322 * @since AT-SPI 1.7.0
326 * The object is a visual frame or container which contains a view of document content.
327 * Document frames may occur within another Document instance, in which case the second
328 * document may be said to be embedded in the containing instance. HTML frames are
329 * often ROLE_DOCUMENT_FRAME. Either this object, or a singleton descendant, should implement
330 * the Document interface.
332 * @since AT-SPI 1.7.0
336 * The object serves as a heading for content which follows it in a document.
337 * The 'heading level' of the heading, if availabe, may be obtained by
338 * querying the object's attributes.
340 * @since AT-SPI 1.7.0
344 * The object is a containing instance which encapsulates a page of
345 * information. ROLE_PAGE is used in documents and content which support
346 * a paginated navigation model.
348 * @since AT-SPI 1.7.0
352 * The object is a containing instance of document content which constitutes
353 * a particular 'logical' section of the document. The type of content within
354 * a section, and the nature of the section division itself, may be obtained
355 * by querying the object's attributes. Sections may be nested.
357 * @since AT-SPI 1.7.0
361 * The object is redundant with another object in the hierarchy,
362 * and is exposed for purely technical reasons. Objects of this role
363 * should be ignored by clients, if they are encountered at all.
365 * @since AT-SPI 1.7.6
367 ROLE_REDUNDANT_OBJECT,
369 * The object is a containing instance of document content which constitutes
370 * a particular 'logical' section of the document. The type of content within
371 * a section, and the nature of the section division itself, may be obtained
372 * by querying the object's attributes. Sections may be nested.
374 * @since AT-SPI 1.7.6
378 * The object is a hypertext anchor, i.e. a "link" in a
379 * hypertext document. Such objects are distinct from 'inline'
380 * content which may also use the Hypertext/Hyperlink interfaces
381 * to indicate the range/location within a text object where
382 * an inline or embedded object lies.
384 * @since AT-SPI 1.7.6
388 * The object is a window or similar viewport which is used
389 * to allow composition or input of a 'complex character',
390 * in other words it is an "input method window."
392 * @since AT-SPI 1.7.6
394 ROLE_INPUT_METHOD_WINDOW,
396 /** not a valid role, used for finding end of enumeration. */