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. @status UNDER_REVIEW
[scriptable, uuid(db717db4-37e9-42f1-a3b0-2579dd7c3814)]
interface nsIAccessible : nsISupports
Constants
MSAA State flags - used for bitfield. More than 1 allowed.
const
unsigned long
STATE_UNAVAILABLE = 1
const
unsigned long
STATE_SELECTED = 2
const
unsigned long
STATE_FOCUSED = 4
const
unsigned long
STATE_PRESSED = 8
const
unsigned long
STATE_CHECKED = 16
const
unsigned long
STATE_MIXED = 32
const
unsigned long
STATE_READONLY = 64
const
unsigned long
STATE_HOTTRACKED = 128
const
unsigned long
STATE_DEFAULT = 256
const
unsigned long
STATE_EXPANDED = 512
const
unsigned long
STATE_COLLAPSED = 1024
const
unsigned long
STATE_BUSY = 2048
const
unsigned long
STATE_FLOATING = 4096
const
unsigned long
STATE_MARQUEED = 8192
const
unsigned long
STATE_ANIMATED = 16384
const
unsigned long
STATE_INVISIBLE = 32768
const
unsigned long
STATE_OFFSCREEN = 65536
const
unsigned long
STATE_SIZEABLE = 131072
const
unsigned long
STATE_MOVEABLE = 262144
const
unsigned long
STATE_SELFVOICING = 524288
const
unsigned long
STATE_FOCUSABLE = 1048576
const
unsigned long
STATE_SELECTABLE = 2097152
const
unsigned long
STATE_LINKED = 4194304
const
unsigned long
STATE_TRAVERSED = 8388608
const
unsigned long
STATE_MULTISELECTABLE = 16777216
const
unsigned long
STATE_EXTSELECTABLE = 33554432
const
unsigned long
STATE_ALERT_LOW = 67108864
const
unsigned long
STATE_ALERT_MEDIUM = 134217728
const
unsigned long
STATE_ALERT_HIGH = 268435456
const
unsigned long
STATE_PROTECTED = 536870912
const
unsigned long
STATE_HASPOPUP = 1073741824
const
unsigned long
STATE_REQUIRED = 67108864
const
unsigned long
STATE_IMPORTANT = 134217728
const
unsigned long
STATE_INVALID = 268435456
const
unsigned long
STATE_CHECKABLE = 8192
Extended state flags (for now non-MSAA, for Java and Gnome/ATK support) "Extended state flags" has seperate value space from "MSAA State flags".
const
unsigned long
EXT_STATE_EDITABLE = 2097152
const
unsigned long
EXT_STATE_ACTIVE = 4194304
const
unsigned long
EXT_STATE_EXPANDABLE = 8388608
const
unsigned long
EXT_STATE_MODAL = 16777216
const
unsigned long
EXT_STATE_MULTI_LINE = 33554432
const
unsigned long
EXT_STATE_SENSITIVE = 67108864
const
unsigned long
EXT_STATE_SHOWING = 268435456
const
unsigned long
EXT_STATE_SINGLE_LINE = 536870912
const
unsigned long
EXT_STATE_TRANSIENT = 1073741824
const
unsigned long
EXT_STATE_VERTICAL = 2147483648
Relation Types -- most of these come from ATK's atkrelationtype.h
RELATION_NULL:
RELATION_CONTROLLED_BY: Controlled by one or more target objects.
RELATION_CONTROLLER_FOR: Controller for one or more target objects.
RELATION_LABEL_FOR: Label for one or more target objects.
RELATION_LABELLED_BY: Labelled by one or more target objects.
RELATION_MEMBER_OF: Member of a group of one or more target objects.
RELATION_NODE_CHILD_OF: Cell in a treetable which is displayed because a
cell in the same col is expanded & identifies it.
RELATION_FLOWS_TO: Has content that flows logically to another
object in a sequential way, e.g. text flow.
RELATION_FLOWS_FROM: Has content that flows logically from another
object in a sequential way, e.g. text flow.
RELATION_SUBWINDOW_OF: Subwindow attached to a component but otherwise
not connected in the UI hierarchy to that component.
RELATION_EMBEDS: Visually embeds another object's content, i.e.
this object's content flows around another's content.
RELATION_EMBEDDED_BY: Inverse of RELATION_EMBEDS; this object's content
is visually embedded in another object.
RELATION_POPUP_FOR: Popup for another object.
RELATION_PARENT_WINDOW_OF: Parent window of another object.
RELATION_DEFAULT_BUTTON: Part of a form/dialog with a related default button.
RELATION_DESCRIBED_BY: Described by one or more target objects.
RELATION_DESCRIPTION_FOR: Description for one or more target objects.
RELATION_LAST_DEFINED:
const
unsigned long
RELATION_NUL = 0
const
unsigned long
RELATION_CONTROLLED_BY = 1
const
unsigned long
RELATION_CONTROLLER_FOR = 2
const
unsigned long
RELATION_LABEL_FOR = 3
const
unsigned long
RELATION_LABELLED_BY = 4
const
unsigned long
RELATION_MEMBER_OF = 5
const
unsigned long
RELATION_NODE_CHILD_OF = 6
const
unsigned long
RELATION_FLOWS_TO = 7
const
unsigned long
RELATION_FLOWS_FROM = 8
const
unsigned long
RELATION_SUBWINDOW_OF = 9
const
unsigned long
RELATION_EMBEDS = 10
const
unsigned long
RELATION_EMBEDDED_BY = 11
const
unsigned long
RELATION_POPUP_FOR = 12
const
unsigned long
RELATION_PARENT_WINDOW_OF = 13
const
unsigned long
RELATION_DEFAULT_BUTTON = 16384
const
unsigned long
RELATION_DESCRIBED_BY = 16385
const
unsigned long
RELATION_DESCRIPTION_FOR = 16386
Attributes
Number of accessible children
readonly attribute
long
childCount
Accessible description -- long text associated with this node
readonly attribute
AString
description
Extended accessible states -- second bit field describing node
readonly attribute
unsigned long
extState
Enumerated accessible role. The values depend on platform because of variations. See the ROLE_* constants defined later in this file. Widgets can use xhtml2:role to force the final role
readonly attribute
unsigned long
finalRole
Accessible states -- bit field which describes boolean properties of node. See the STATE_* constants defined later in this file. Widgets that use xhtml2:role can force the state using the attributes disabled, etc.
readonly attribute
unsigned long
finalState
Accessible value -- a number or a secondary text equivalent for this node Widgets that use xhtml2:role can force a value using the valuenow attribute
readonly attribute
AString
finalValue
First child in accessible tree
readonly attribute
nsIAccessible
firstChild
Focused accessible child of node
readonly attribute
nsIAccessible
focusedChild
Help text associated with node
readonly attribute
AString
help
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
Provides localized string of global keyboard accelerator, such as Ctrl+O for Open file
readonly attribute
AString
keyBinding
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
keyboardShortcut
Last child in accessible tree
readonly attribute
nsIAccessible
lastChild
Accessible name -- the main text equivalent for this node
attribute
AString
name
Next sibling in accessible tree
readonly attribute
nsIAccessible
nextSibling
The number of accessible actions associated with this accessible
readonly attribute
PRUint8
numActions
Parent node in accessible tree.
readonly attribute
nsIAccessible
parent
Previous sibling in accessible tree
readonly attribute
nsIAccessible
previousSibling
Natural enumerated accessible role for the associated element. The values depend on platform because of variations. See the ROLE_* constants defined later in this file. This does not take into account xhtml2:role as the finalRole does.
readonly attribute
unsigned long
role
Methods
Add this accessible to the current selection
void
addSelection()
Perform the accessible action at the given zero-based index Action number 0 is the default action
void
doAction(in PRUint8 index)
Extend the current selection from its current accessible anchor node to this accessible
void
extendSelection()
Accessible node geometrically above this one
nsIAccessible
getAccessibleAbove()
Accessible node geometrically below this one
nsIAccessible
getAccessibleBelow()
Accessible node related to this one
nsIAccessible
getAccessibleRelated(in unsigned long aRelationType)
Accessible node geometrically to the left of this one
nsIAccessible
getAccessibleToLeft()
Accessible node geometrically to the right of this one
nsIAccessible
getAccessibleToRight()
The name of the accessible action at the given zero-based index
AString
getActionName(in PRUint8 index)
void
getBounds(out long x, out long y, out long width, out long height)
Nth accessible child using zero-based index or last child if index less than zero
nsIAccessible
getChildAt(in long aChildIndex)
Accessible child which contains the coordinate at x,y
nsIAccessible
getChildAtPoint(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)
Remove this accessible from the current selection
void
removeSelection()
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()
Select this accessible node only
void
takeSelection()
Compare to: