Bug 1839316: part 5) Guard the "fetchpriority" attribute behind a pref. r=kershaw...
[gecko.git] / other-licenses / ia2 / AccessibleRole.idl
blobc23f1ec70e08849978239ec342868097cc8b7b02
1 /*************************************************************************
3 * File Name (AccessibleRole.idl)
5 * IAccessible2 IDL Specification
7 * Copyright (c) 2007-2018 Linux Foundation
8 * Copyright (c) 2006 IBM Corporation
9 * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
10 * All rights reserved.
13 * Redistribution and use in source and binary forms, with or without
14 * modification, are permitted provided that the following conditions
15 * are met:
17 * 1. Redistributions of source code must retain the above copyright
18 * notice, this list of conditions and the following disclaimer.
20 * 2. Redistributions in binary form must reproduce the above
21 * copyright notice, this list of conditions and the following
22 * disclaimer in the documentation and/or other materials
23 * provided with the distribution.
25 * 3. Neither the name of the Linux Foundation nor the names of its
26 * contributors may be used to endorse or promote products
27 * derived from this software without specific prior written
28 * permission.
30 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
31 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
32 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
33 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
34 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
35 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
36 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
37 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
38 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
40 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
41 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
42 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
44 * This BSD License conforms to the Open Source Initiative "Simplified
45 * BSD License" as published at:
46 * http://www.opensource.org/licenses/bsd-license.php
48 * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
49 * mark may be used in accordance with the Linux Foundation Trademark
50 * Policy to indicate compliance with the IAccessible2 specification.
52 ************************************************************************/
54 import "objidl.idl";
56 /** Collection of roles
58 This enumerator defines an extended set of accessible roles of objects implementing
59 the %IAccessible2 interface. These roles are in addition to the MSAA roles obtained
60 through the MSAA get_accRole method. Examples are 'footnote', 'heading', and
61 'label'. You obtain an object's %IAccessible2 roles by calling IAccessible2::role.
63 enum IA2Role {
65 /** Unknown role. The object contains some Accessible information, but its
66 role is not known.
68 IA2_ROLE_UNKNOWN = 0,
70 /** An object that can be drawn into and to manage events from the objects
71 drawn into it. Also refer to ::IA2_ROLE_FRAME,
72 ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_LAYERED_PANE.
74 IA2_ROLE_CANVAS = 0x401,
76 /// A caption describing another object.
77 IA2_ROLE_CAPTION,
79 /// Used for check buttons that are menu items.
80 IA2_ROLE_CHECK_MENU_ITEM,
82 /// A specialized dialog that lets the user choose a color.
83 IA2_ROLE_COLOR_CHOOSER,
85 /// A date editor.
86 IA2_ROLE_DATE_EDITOR,
88 /** An iconified internal frame in an ::IA2_ROLE_DESKTOP_PANE.
89 Also refer to ::IA2_ROLE_INTERNAL_FRAME.
91 IA2_ROLE_DESKTOP_ICON,
93 /** A desktop pane. A pane that supports internal frames and iconified
94 versions of those internal frames. Also refer to ::IA2_ROLE_INTERNAL_FRAME.
96 IA2_ROLE_DESKTOP_PANE,
98 /** A directory pane. A pane that allows the user to navigate through
99 and select the contents of a directory. May be used by a file chooser.
100 Also refer to ::IA2_ROLE_FILE_CHOOSER.
102 IA2_ROLE_DIRECTORY_PANE,
104 /** An editable text object in a toolbar. <b>Deprecated.</b>
105 The edit bar role was meant for a text area in a tool bar. However, to detect
106 a text area in a tool bar the AT can query the parent.
108 IA2_ROLE_EDITBAR,
110 /// Embedded (OLE) object.
111 IA2_ROLE_EMBEDDED_OBJECT,
113 /// Text that is used as an endnote (footnote at the end of a chapter or section).
114 IA2_ROLE_ENDNOTE,
116 /** A file chooser. A specialized dialog that displays the files in the
117 directory and lets the user select a file, browse a different directory,
118 or specify a filename. May use the directory pane to show the contents of
119 a directory.
120 Also refer to ::IA2_ROLE_DIRECTORY_PANE.
122 IA2_ROLE_FILE_CHOOSER,
124 /** A font chooser. A font chooser is a component that lets the user pick
125 various attributes for fonts.
127 IA2_ROLE_FONT_CHOOSER,
129 /** Footer of a document page.
130 Also refer to ::IA2_ROLE_HEADER.
132 IA2_ROLE_FOOTER,
134 /// Text that is used as a footnote. Also refer to ::IA2_ROLE_ENDNOTE.
135 IA2_ROLE_FOOTNOTE,
137 /** A container of form controls. An example of the use of this role is to
138 represent an HTML FORM tag.
140 IA2_ROLE_FORM,
142 /** Frame role. A top level window with a title bar, border, menu bar, etc.
143 It is often used as the primary window for an application. Also refer to
144 ::IA2_ROLE_CANVAS and the MSAA roles of dialog and window.
146 IA2_ROLE_FRAME,
148 /** A glass pane. A pane that is guaranteed to be painted on top of all panes
149 beneath it. Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_INTERNAL_FRAME, and
150 ::IA2_ROLE_ROOT_PANE.
152 IA2_ROLE_GLASS_PANE,
154 /** Header of a document page.
155 Also refer to ::IA2_ROLE_FOOTER.
157 IA2_ROLE_HEADER,
159 /// Heading. Use the IAccessible2::attributes level attribute to determine the heading level.
160 IA2_ROLE_HEADING,
162 /// A small fixed size picture, typically used to decorate components.
163 IA2_ROLE_ICON,
165 /** An image map object. Usually a graphic with multiple hotspots, where
166 each hotspot can be activated resulting in the loading of another document
167 or section of a document.
169 IA2_ROLE_IMAGE_MAP,
171 /** An object which is used to allow input of characters not found on a keyboard,
172 such as the input of Chinese characters on a Western keyboard.
174 IA2_ROLE_INPUT_METHOD_WINDOW,
176 /** An internal frame. A frame-like object that is clipped by a desktop pane.
177 The desktop pane, internal frame, and desktop icon objects are often used to
178 create multiple document interfaces within an application.
179 Also refer to ::IA2_ROLE_DESKTOP_ICON, ::IA2_ROLE_DESKTOP_PANE, and ::IA2_ROLE_FRAME.
181 IA2_ROLE_INTERNAL_FRAME,
183 /// An object used to present an icon or short string in an interface.
184 IA2_ROLE_LABEL,
186 /** A layered pane. A specialized pane that allows its children to be drawn
187 in layers, providing a form of stacking order. This is usually the pane that
188 holds the menu bar as well as the pane that contains most of the visual
189 components in a window.
190 Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_ROOT_PANE.
192 IA2_ROLE_LAYERED_PANE,
194 /** A section whose content is parenthetic or ancillary to the main content
195 of the resource.
197 IA2_ROLE_NOTE,
199 /** A specialized pane whose primary use is inside a dialog.
200 Also refer to MSAA's dialog role.
202 IA2_ROLE_OPTION_PANE,
204 /** An object representing a page of document content. It is used in documents
205 which are accessed by the user on a page by page basis.
207 IA2_ROLE_PAGE,
209 /// A paragraph of text.
210 IA2_ROLE_PARAGRAPH,
212 /** A radio button that is a menu item.
213 Also refer to MSAA's button and menu item roles.
215 IA2_ROLE_RADIO_MENU_ITEM,
217 /** An object which is redundant with another object in the accessible hierarchy.
218 ATs typically ignore objects with this role.
220 IA2_ROLE_REDUNDANT_OBJECT,
222 /** A root pane. A specialized pane that has a glass pane and a layered pane
223 as its children.
224 Also refer to ::IA2_ROLE_GLASS_PANE and ::IA2_ROLE_LAYERED_PANE
226 IA2_ROLE_ROOT_PANE,
228 /** A ruler such as those used in word processors.
230 IA2_ROLE_RULER,
232 /** A scroll pane. An object that allows a user to incrementally view a large
233 amount of information. Its children can include scroll bars and a viewport.
234 Also refer to ::IA2_ROLE_VIEW_PORT and MSAA's scroll bar role.
236 IA2_ROLE_SCROLL_PANE,
238 /** A container of document content. An example of the use of this role is to
239 represent an HTML DIV tag. A section may be used as a region. A region is a
240 group of elements that together form a perceivable unit. A region does not
241 necessarily follow the logical structure of the content, but follows the
242 perceivable structure of the page. A region may have an attribute in the set
243 of IAccessible2::attributes which indicates that it is "live". A live region
244 is content that is likely to change in response to a timed change, a user
245 event, or some other programmed logic or event.
247 IA2_ROLE_SECTION,
249 /// Object with graphical representation used to represent content on draw pages.
250 IA2_ROLE_SHAPE,
252 /** A split pane. A specialized panel that presents two other panels at the
253 same time. Between the two panels is a divider the user can manipulate to make
254 one panel larger and the other panel smaller.
256 IA2_ROLE_SPLIT_PANE,
258 /** An object that forms part of a menu system but which can be "undocked"
259 from or "torn off" the menu system to exist as a separate window.
261 IA2_ROLE_TEAR_OFF_MENU,
263 /// An object used as a terminal emulator.
264 IA2_ROLE_TERMINAL,
266 /// Collection of objects that constitute a logical text entity.
267 IA2_ROLE_TEXT_FRAME,
269 /** A toggle button. A specialized push button that can be checked or unchecked,
270 but does not provide a separate indicator for the current state.
271 Also refer to MSAA's roles of push button, check box, and radio button.
272 <BR><B>Note:</B> IA2_ROLE_TOGGLE_BUTTON should not be used. Instead, use MSAA's
273 ROLE_SYSTEM_PUSHBUTTON and STATE_SYSTEM_PRESSED.
275 IA2_ROLE_TOGGLE_BUTTON,
277 /** A viewport. An object usually used in a scroll pane. It represents the
278 portion of the entire data that the user can see. As the user manipulates
279 the scroll bars, the contents of the viewport can change.
280 Also refer to ::IA2_ROLE_SCROLL_PANE.
282 IA2_ROLE_VIEW_PORT,
284 /** An object containing content which is complementary to the main content of
285 a document, but remains meaningful when separated from the main content. There
286 are various types of content that would appropriately have this role. For example,
287 in the case where content is delivered via a web portal to a web browser, this may
288 include but not be limited to show times, current weather, related articles, or
289 stocks to watch. The complementary role indicates that contained content is relevant
290 to the main content. If the complementary content is completely separable main
291 content, it may be appropriate to use a more general role.
293 IA2_ROLE_COMPLEMENTARY_CONTENT,
295 /** An object representing a navigational landmark, a region on a page to
296 which the user may want quick access, such as a navigation area, a search
297 facility or the main content of a page.
299 IA2_ROLE_LANDMARK,
302 * A bar that serves as a level indicator to, for instance, show
303 * the strength of a password or the charge of a battery.
305 IA2_ROLE_LEVEL_BAR,
307 /** Content previously deleted or proposed for deletion, e.g. in revision
308 history or a content view providing suggestions from reviewers.
310 IA2_ROLE_CONTENT_DELETION,
312 /** Content previously inserted or proposed for insertion, e.g. in revision
313 history or a content view providing suggestions from reviewers.
315 IA2_ROLE_CONTENT_INSERTION,
317 /// A section of content that is quoted from another source.
318 IA2_ROLE_BLOCK_QUOTE,
320 /** A run of content that is marked or highlighted, such as for reference
321 purposes, or to call it out as having a special purpose that is clear from
322 context. If the mark is used in conjuction with a related content section
323 in the document, then IA2_RELATION_DETAILS should be used to link the
324 related content (and the reverse relation IA2_RELATION_DETAILS_FOR should
325 link back to the IA2_ROLE_MARK object). If the mark has related information
326 in a tooltip, or as hidden text, then accDescription should be used to
327 provide this information.
329 IA2_ROLE_MARK,
331 /** A grouping for content that is called out as a proposed change from the
332 current version of the document, such as by a reviewer of the content.
333 Should include as children one or both of:
334 IA2_ROLE_CONTENT_DELETION and IA2_ROLE_CONTENT_INSERTION, in any order,
335 to indicate what the actual change is.
336 If the suggestion is accepted, the implementation should change the role to
337 a generic one such as IA2_ROLE_SECTION or IA2_ROLE_TEXT_FRAME.
339 IA2_ROLE_SUGGESTION,
341 /** A single comment, typically user-generated content. Supports reply
342 hierarchies via descendant structure, e.g. a child comment is a reply
343 to the parent comment. Supports groupPosition() method to determine
344 reply level (top comment is 1), as well as set size and position in set
345 within that level.
347 IA2_ROLE_COMMENT