gecko-dev/accessible/interfaces/nsIAccessible.idl
Birunthan Mohanathas 3111e08278 Bug 1028563 - Part 2: Rename accessible/{public => interfaces}/. rs=surkov
--HG--
rename : accessible/public/ia2/IA2Marshal.def => accessible/interfaces/ia2/IA2Marshal.def
rename : accessible/public/ia2/Makefile.in => accessible/interfaces/ia2/Makefile.in
rename : accessible/public/ia2/moz.build => accessible/interfaces/ia2/moz.build
rename : accessible/public/moz.build => accessible/interfaces/moz.build
rename : accessible/public/msaa/AccessibleMarshal.def => accessible/interfaces/msaa/AccessibleMarshal.def
rename : accessible/public/msaa/ISimpleDOMDocument.idl => accessible/interfaces/msaa/ISimpleDOMDocument.idl
rename : accessible/public/msaa/ISimpleDOMNode.idl => accessible/interfaces/msaa/ISimpleDOMNode.idl
rename : accessible/public/msaa/ISimpleDOMText.idl => accessible/interfaces/msaa/ISimpleDOMText.idl
rename : accessible/public/msaa/Makefile.in => accessible/interfaces/msaa/Makefile.in
rename : accessible/public/msaa/moz.build => accessible/interfaces/msaa/moz.build
rename : accessible/public/nsIAccessibilityService.h => accessible/interfaces/nsIAccessibilityService.h
rename : accessible/public/nsIAccessible.idl => accessible/interfaces/nsIAccessible.idl
rename : accessible/public/nsIAccessibleApplication.idl => accessible/interfaces/nsIAccessibleApplication.idl
rename : accessible/public/nsIAccessibleCaretMoveEvent.idl => accessible/interfaces/nsIAccessibleCaretMoveEvent.idl
rename : accessible/public/nsIAccessibleDocument.idl => accessible/interfaces/nsIAccessibleDocument.idl
rename : accessible/public/nsIAccessibleEditableText.idl => accessible/interfaces/nsIAccessibleEditableText.idl
rename : accessible/public/nsIAccessibleEvent.idl => accessible/interfaces/nsIAccessibleEvent.idl
rename : accessible/public/nsIAccessibleHideEvent.idl => accessible/interfaces/nsIAccessibleHideEvent.idl
rename : accessible/public/nsIAccessibleHyperLink.idl => accessible/interfaces/nsIAccessibleHyperLink.idl
rename : accessible/public/nsIAccessibleHyperText.idl => accessible/interfaces/nsIAccessibleHyperText.idl
rename : accessible/public/nsIAccessibleImage.idl => accessible/interfaces/nsIAccessibleImage.idl
rename : accessible/public/nsIAccessiblePivot.idl => accessible/interfaces/nsIAccessiblePivot.idl
rename : accessible/public/nsIAccessibleRelation.idl => accessible/interfaces/nsIAccessibleRelation.idl
rename : accessible/public/nsIAccessibleRetrieval.idl => accessible/interfaces/nsIAccessibleRetrieval.idl
rename : accessible/public/nsIAccessibleRole.idl => accessible/interfaces/nsIAccessibleRole.idl
rename : accessible/public/nsIAccessibleSelectable.idl => accessible/interfaces/nsIAccessibleSelectable.idl
rename : accessible/public/nsIAccessibleStateChangeEvent.idl => accessible/interfaces/nsIAccessibleStateChangeEvent.idl
rename : accessible/public/nsIAccessibleStates.idl => accessible/interfaces/nsIAccessibleStates.idl
rename : accessible/public/nsIAccessibleTable.idl => accessible/interfaces/nsIAccessibleTable.idl
rename : accessible/public/nsIAccessibleTableChangeEvent.idl => accessible/interfaces/nsIAccessibleTableChangeEvent.idl
rename : accessible/public/nsIAccessibleText.idl => accessible/interfaces/nsIAccessibleText.idl
rename : accessible/public/nsIAccessibleTextChangeEvent.idl => accessible/interfaces/nsIAccessibleTextChangeEvent.idl
rename : accessible/public/nsIAccessibleTextRange.idl => accessible/interfaces/nsIAccessibleTextRange.idl
rename : accessible/public/nsIAccessibleTypes.idl => accessible/interfaces/nsIAccessibleTypes.idl
rename : accessible/public/nsIAccessibleValue.idl => accessible/interfaces/nsIAccessibleValue.idl
rename : accessible/public/nsIAccessibleVirtualCursorChangeEvent.idl => accessible/interfaces/nsIAccessibleVirtualCursorChangeEvent.idl
rename : accessible/public/nsIXBLAccessible.idl => accessible/interfaces/nsIXBLAccessible.idl
2014-06-22 10:16:39 -07:00

294 lines
9.3 KiB
Plaintext

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
#include "nsIArray.idl"
interface nsIPersistentProperties;
interface nsIDOMCSSPrimitiveValue;
interface nsIDOMNode;
interface nsIAccessibleDocument;
interface nsIAccessibleRelation;
/**
* A cross-platform interface that supports platform-specific
* accessibility APIs like MSAA and ATK. Contains the sum of what's needed
* to support IAccessible as well as ATK's generic accessibility objects.
* Can also be used by in-process accessibility clients to get information
* about objects in the accessible tree. The accessible tree is a subset of
* nodes in the DOM tree -- such as documents, focusable elements and text.
* Mozilla creates the implementations of nsIAccessible on demand.
* See http://www.mozilla.org/projects/ui/accessibility for more information.
*/
[scriptable, uuid(ee62158b-bb83-424b-a88d-d7d7f9cf460d)]
interface nsIAccessible : nsISupports
{
/**
* Parent node in accessible tree.
*/
readonly attribute nsIAccessible parent;
/**
* Next sibling in accessible tree
*/
readonly attribute nsIAccessible nextSibling;
/**
* Previous sibling in accessible tree
*/
readonly attribute nsIAccessible previousSibling;
/**
* First child in accessible tree
*/
readonly attribute nsIAccessible firstChild;
/**
* Last child in accessible tree
*/
readonly attribute nsIAccessible lastChild;
/**
* Array of all this element's children.
*/
readonly attribute nsIArray children;
/**
* Number of accessible children
*/
readonly attribute long childCount;
/**
* The 0-based index of this accessible in its parent's list of children,
* or -1 if this accessible does not have a parent.
*/
readonly attribute long indexInParent;
/**
* The DOM node this nsIAccessible is associated with.
*/
readonly attribute nsIDOMNode DOMNode;
/**
* The document accessible that this access node resides in.
*/
readonly attribute nsIAccessibleDocument document;
/**
* The root document accessible that this access node resides in.
*/
readonly attribute nsIAccessibleDocument rootDocument;
/**
* The language for the current DOM node, e.g. en, de, etc.
*/
readonly attribute DOMString language;
/**
* Accessible name -- the main text equivalent for this node. The name is
* specified by ARIA or by native markup. Example of ARIA markup is
* aria-labelledby attribute placed on element of this accessible. Example
* of native markup is HTML label linked with HTML element of this accessible.
*
* Value can be string or null. A null value indicates that AT may attempt to
* compute the name. Any string value, including the empty string, should be
* considered author-intentional, and respected.
*/
attribute AString name;
/**
* Accessible value -- a number or a secondary text equivalent for this node
* Widgets that use role attribute can force a value using the valuenow attribute
*/
readonly attribute AString value;
/**
* Accessible description -- long text associated with this node
*/
readonly attribute AString description;
/**
* Provides localized string of accesskey name, such as Alt+D.
* The modifier may be affected by user and platform preferences.
* Usually alt+letter, or just the letter alone for menu items.
*/
readonly attribute AString accessKey;
/**
* Provides localized string of global keyboard accelerator for default
* action, such as Ctrl+O for Open file
*/
readonly attribute AString keyboardShortcut;
/**
* Enumerated accessible role (see the constants defined in nsIAccessibleRole).
*
* @note The values might depend on platform because of variations. Widgets
* can use ARIA role attribute to force the final role.
*/
readonly attribute unsigned long role;
/**
* Accessible states -- bit fields which describe boolean properties of node.
* Many states are only valid given a certain role attribute that supports
* them.
*
* @param aState - the first bit field (see nsIAccessibleStates::STATE_*
* constants)
* @param aExtraState - the second bit field
* (see nsIAccessibleStates::EXT_STATE_* constants)
*/
void getState(out unsigned long aState, out unsigned long aExtraState);
/**
* Help text associated with node
*/
readonly attribute AString help;
/**
* Focused accessible child of node
*/
readonly attribute nsIAccessible focusedChild;
/**
* Attributes of accessible
*/
readonly attribute nsIPersistentProperties attributes;
/**
* Returns grouping information. Used for tree items, list items, tab panel
* labels, radio buttons, etc. Also used for collectons of non-text objects.
*
* @param groupLevel - 1-based, similar to ARIA 'level' property
* @param similarItemsInGroup - 1-based, similar to ARIA 'setsize' property,
* inclusive of the current item
* @param positionInGroup - 1-based, similar to ARIA 'posinset' property
*/
[binaryname(ScriptableGroupPosition)]
void groupPosition(out long aGroupLevel, out long aSimilarItemsInGroup,
out long aPositionInGroup);
/**
* Accessible child which contains the coordinate at (x, y) in screen pixels.
* If the point is in the current accessible but not in a child, the
* current accessible will be returned.
* If the point is in neither the current accessible or a child, then
* null will be returned.
*
* @param x screen's x coordinate
* @param y screen's y coordinate
* @return the deepest accessible child containing the given point
*/
nsIAccessible getChildAtPoint(in long x, in long y);
/**
* Deepest accessible child which contains the coordinate at (x, y) in screen
* pixels. If the point is in the current accessible but not in a child, the
* current accessible will be returned. If the point is in neither the current
* accessible or a child, then null will be returned.
*
* @param x screen's x coordinate
* @param y screen's y coordinate
* @return the deepest accessible child containing the given point
*/
nsIAccessible getDeepestChildAtPoint(in long x, in long y);
/**
* Nth accessible child using zero-based index or last child if index less than zero
*/
nsIAccessible getChildAt(in long aChildIndex);
/**
* Return accessible relation by the given relation type (see.
* constants defined in nsIAccessibleRelation).
*/
nsIAccessibleRelation getRelationByType(in unsigned long aRelationType);
/**
* Returns multiple accessible relations for this object.
*/
nsIArray getRelations();
/**
* Return accessible's x and y coordinates relative to the screen and
* accessible's width and height.
*/
void getBounds(out long x, out long y, out long width, out long height);
/**
* Add or remove this accessible to the current selection
*/
void setSelected(in boolean isSelected);
/**
* Extend the current selection from its current accessible anchor node
* to this accessible
*/
void extendSelection();
/**
* Select this accessible node only
*/
void takeSelection();
/**
* Focus this accessible node,
* The state STATE_FOCUSABLE indicates whether this node is normally focusable.
* It is the callers responsibility to determine whether this node is focusable.
* accTakeFocus on a node that is not normally focusable (such as a table),
* will still set focus on that node, although normally that will not be visually
* indicated in most style sheets.
*/
void takeFocus();
/**
* The number of accessible actions associated with this accessible
*/
readonly attribute uint8_t actionCount;
/**
* The name of the accessible action at the given zero-based index
*/
AString getActionName(in uint8_t index);
/**
* The description of the accessible action at the given zero-based index
*/
AString getActionDescription(in uint8_t aIndex);
/**
* Perform the accessible action at the given zero-based index
* Action number 0 is the default action
*/
void doAction(in uint8_t index);
/**
* Makes an object visible on screen.
*
* @param scrollType - defines where the object should be placed on
* the screen (see nsIAccessibleScrollType for
* available constants).
*/
void scrollTo(in unsigned long aScrollType);
/**
* Moves the top left of an object to a specified location.
*
* @param coordinateType [in] - specifies whether the coordinates are relative to
* the screen or the parent object (for available
* constants refer to nsIAccessibleCoordinateType)
* @param x [in] - defines the x coordinate
* @param y [in] - defines the y coordinate
*/
void scrollToPoint(in unsigned long coordinateType, in long x, in long y);
/**
* Get a pointer to accessibility interface for this node, which is specific
* to the OS/accessibility toolkit we're running on.
*/
[noscript] void getNativeInterface(out voidPtr aOutAccessible);
};