Qt 4.8
|
The QAccessible class provides enums and static functions relating to accessibility. More...
#include <qaccessible.h>
Public Types | |
enum | Action { DefaultAction = 0, Press = -1, FirstStandardAction = Press, SetFocus = -2, Increase = -3, Decrease = -4, Accept = -5, Cancel = -6, Select = -7, ClearSelection = -8, RemoveSelection = -9, ExtendSelection = -10, AddToSelection = -11, LastStandardAction = AddToSelection } |
This enum describes the possible types of action that can occur. More... | |
enum | Event { SoundPlayed = 0x0001, Alert = 0x0002, ForegroundChanged = 0x0003, MenuStart = 0x0004, MenuEnd = 0x0005, PopupMenuStart = 0x0006, PopupMenuEnd = 0x0007, ContextHelpStart = 0x000C, ContextHelpEnd = 0x000D, DragDropStart = 0x000E, DragDropEnd = 0x000F, DialogStart = 0x0010, DialogEnd = 0x0011, ScrollingStart = 0x0012, ScrollingEnd = 0x0013, MenuCommand = 0x0018, ActionChanged = 0x0101, ActiveDescendantChanged = 0x0102, AttributeChanged = 0x0103, DocumentContentChanged = 0x0104, DocumentLoadComplete = 0x0105, DocumentLoadStopped = 0x0106, DocumentReload = 0x0107, HyperlinkEndIndexChanged = 0x0108, HyperlinkNumberOfAnchorsChanged = 0x0109, HyperlinkSelectedLinkChanged = 0x010A, HypertextLinkActivated = 0x010B, HypertextLinkSelected = 0x010C, HyperlinkStartIndexChanged = 0x010D, HypertextChanged = 0x010E, HypertextNLinksChanged = 0x010F, ObjectAttributeChanged = 0x0110, PageChanged = 0x0111, SectionChanged = 0x0112, TableCaptionChanged = 0x0113, TableColumnDescriptionChanged = 0x0114, TableColumnHeaderChanged = 0x0115, TableModelChanged = 0x0116, TableRowDescriptionChanged = 0x0117, TableRowHeaderChanged = 0x0118, TableSummaryChanged = 0x0119, TextAttributeChanged = 0x011A, TextCaretMoved = 0x011B, TextColumnChanged = 0x011D, TextInserted = 0x011E, TextRemoved = 0x011F, TextUpdated = 0x0120, TextSelectionChanged = 0x0121, VisibleDataChanged = 0x0122, ObjectCreated = 0x8000, ObjectDestroyed = 0x8001, ObjectShow = 0x8002, ObjectHide = 0x8003, ObjectReorder = 0x8004, Focus = 0x8005, Selection = 0x8006, SelectionAdd = 0x8007, SelectionRemove = 0x8008, SelectionWithin = 0x8009, StateChanged = 0x800A, LocationChanged = 0x800B, NameChanged = 0x800C, DescriptionChanged = 0x800D, ValueChanged = 0x800E, ParentChanged = 0x800F, HelpChanged = 0x80A0, DefaultActionChanged = 0x80B0, AcceleratorChanged = 0x80C0 } |
This enum type defines accessible event types. More... | |
typedef QAccessibleInterface *(* | InterfaceFactory) (const QString &key, QObject *) |
This is a typedef for a pointer to a function with the following signature: More... | |
enum | Method { ListSupportedMethods = 0, SetCursorPosition = 1, GetCursorPosition = 2, ForegroundColor = 3, BackgroundColor = 4 } |
This enum describes the possible types of methods that can be invoked on an accessible object. More... | |
enum | RelationFlag { Unrelated = 0x00000000, Self = 0x00000001, Ancestor = 0x00000002, Child = 0x00000004, Descendent = 0x00000008, Sibling = 0x00000010, HierarchyMask = 0x000000ff, Up = 0x00000100, Down = 0x00000200, Left = 0x00000400, Right = 0x00000800, Covers = 0x00001000, Covered = 0x00002000, GeometryMask = 0x0000ff00, FocusChild = 0x00010000, Label = 0x00020000, Labelled = 0x00040000, Controller = 0x00080000, Controlled = 0x00100000, LogicalMask = 0x00ff0000 } |
This enum type defines bit flags that can be combined to indicate the relationship between two accessible objects. More... | |
enum | Role { NoRole = 0x00000000, TitleBar = 0x00000001, MenuBar = 0x00000002, ScrollBar = 0x00000003, Grip = 0x00000004, Sound = 0x00000005, Cursor = 0x00000006, Caret = 0x00000007, AlertMessage = 0x00000008, Window = 0x00000009, Client = 0x0000000A, PopupMenu = 0x0000000B, MenuItem = 0x0000000C, ToolTip = 0x0000000D, Application = 0x0000000E, Document = 0x0000000F, Pane = 0x00000010, Chart = 0x00000011, Dialog = 0x00000012, Border = 0x00000013, Grouping = 0x00000014, Separator = 0x00000015, ToolBar = 0x00000016, StatusBar = 0x00000017, Table = 0x00000018, ColumnHeader = 0x00000019, RowHeader = 0x0000001A, Column = 0x0000001B, Row = 0x0000001C, Cell = 0x0000001D, Link = 0x0000001E, HelpBalloon = 0x0000001F, Assistant = 0x00000020, List = 0x00000021, ListItem = 0x00000022, Tree = 0x00000023, TreeItem = 0x00000024, PageTab = 0x00000025, PropertyPage = 0x00000026, Indicator = 0x00000027, Graphic = 0x00000028, StaticText = 0x00000029, EditableText = 0x0000002A, PushButton = 0x0000002B, CheckBox = 0x0000002C, RadioButton = 0x0000002D, ComboBox = 0x0000002E, ProgressBar = 0x00000030, Dial = 0x00000031, HotkeyField = 0x00000032, Slider = 0x00000033, SpinBox = 0x00000034, Canvas = 0x00000035, Animation = 0x00000036, Equation = 0x00000037, ButtonDropDown = 0x00000038, ButtonMenu = 0x00000039, ButtonDropGrid = 0x0000003A, Whitespace = 0x0000003B, PageTabList = 0x0000003C, Clock = 0x0000003D, Splitter = 0x0000003E, LayeredPane = 0x0000003F, Terminal = 0x00000040, Desktop = 0x00000041, UserRole = 0x0000ffff } |
This enum defines the role of an accessible object. More... | |
typedef void(* | RootObjectHandler) (QObject *) |
A function pointer type. More... | |
enum | StateFlag { Normal = 0x00000000, Unavailable = 0x00000001, Selected = 0x00000002, Focused = 0x00000004, Pressed = 0x00000008, Checked = 0x00000010, Mixed = 0x00000020, ReadOnly = 0x00000040, HotTracked = 0x00000080, DefaultButton = 0x00000100, Expanded = 0x00000200, Collapsed = 0x00000400, Busy = 0x00000800, Marqueed = 0x00002000, Animated = 0x00004000, Invisible = 0x00008000, Offscreen = 0x00010000, Sizeable = 0x00020000, Movable = 0x00040000, SelfVoicing = 0x00080000, Focusable = 0x00100000, Selectable = 0x00200000, Linked = 0x00400000, Traversed = 0x00800000, MultiSelectable = 0x01000000, ExtSelectable = 0x02000000, Protected = 0x20000000, HasPopup = 0x40000000, Modal = 0x80000000, HasInvokeExtension = 0x10000000 } |
This enum type defines bit flags that can be combined to indicate the state of an accessible object. More... | |
enum | Text { Name = 0, Description, Value, Help, Accelerator, UserText = 0x0000ffff } |
This enum specifies string information that an accessible object returns. More... | |
typedef void(* | UpdateHandler) (QObject *, int who, Event reason) |
A function pointer type. More... | |
Static Public Functions | |
static void | cleanup () |
static void | initialize () |
static void | installFactory (InterfaceFactory) |
Installs the InterfaceFactory factory. More... | |
static RootObjectHandler | installRootObjectHandler (RootObjectHandler) |
Installs the given handler as the function to be used by setRootObject(), and returns the previously installed handler. More... | |
static UpdateHandler | installUpdateHandler (UpdateHandler) |
Installs the given handler as the function to be used by updateAccessibility(), and returns the previously installed handler. More... | |
static bool | isActive () |
Returns true if an accessibility implementation has been requested during the runtime of the application; otherwise returns false. More... | |
static QAccessibleInterface * | queryAccessibleInterface (QObject *) |
If a QAccessibleInterface implementation exists for the given object, this function returns a pointer to the implementation; otherwise it returns 0. More... | |
static void | removeFactory (InterfaceFactory) |
Removes factory from the list of installed InterfaceFactories. More... | |
static void | setRootObject (QObject *) |
Sets the root accessible object of this application to object. More... | |
static void | updateAccessibility (QObject *, int who, Event reason) |
Notifies accessibility clients about a change in object's accessibility information. More... | |
Static Private Attributes | |
static RootObjectHandler | rootObjectHandler |
static UpdateHandler | updateHandler |
The QAccessible class provides enums and static functions relating to accessibility.
Accessible applications can be used by people who are not able to use applications by conventional means.
The functions in this class are used for communication between accessible applications (also called AT Servers) and accessibility tools (AT Clients), such as screen readers and braille displays. Clients and servers communicate in the following way:
AT Servers notify the clients about events through calls to the updateAccessibility() function.
The communication between servers and clients is initialized by the setRootObject() function. Function pointers can be installed to replace or extend the default behavior of the static functions in QAccessible.
Qt supports Microsoft Active Accessibility (MSAA), Mac OS X Accessibility, and the Unix/X11 AT-SPI standard. Other backends can be supported using QAccessibleBridge.
In addition to QAccessible's static functions, Qt offers one generic interface, QAccessibleInterface, that can be used to wrap all widgets and objects (e.g., QPushButton). This single interface provides all the metadata necessary for the assistive technologies. Qt provides implementations of this interface for its built-in widgets as plugins.
When you develop custom widgets, you can create custom subclasses of QAccessibleInterface and distribute them as plugins (using QAccessiblePlugin) or compile them into the application. Likewise, Qt's predefined accessibility support can be built as plugin (the default) or directly into the Qt library. The main advantage of using plugins is that the accessibility classes are only loaded into memory if they are actually used; they don't slow down the common case where no assistive technology is being used.
Qt also includes two convenience classes, QAccessibleObject and QAccessibleWidget, that inherit from QAccessibleInterface and provide the lowest common denominator of metadata (e.g., widget geometry, window title, basic help text). You can use them as base classes when wrapping your custom QObject or QWidget subclasses.
Definition at line 64 of file qaccessible.h.
QAccessible::InterfaceFactory |
This is a typedef for a pointer to a function with the following signature:
The function receives a QString and a QObject pointer, where the QString is the key identifying the interface. The QObject is used to pass on to the QAccessibleInterface so that it can hold a reference to it.
If the key and the QObject does not have a corresponding QAccessibleInterface, a null-pointer will be returned.
Installed factories are called by queryAccessibilityInterface() until one provides an interface.
Definition at line 319 of file qaccessible.h.
QAccessible::RootObjectHandler |
A function pointer type.
Use a function with this prototype to install your own root object handler.
The function is called by setRootObject().
Definition at line 321 of file qaccessible.h.
QAccessible::UpdateHandler |
A function pointer type.
Use a function with this prototype to install your own update function.
The function is called by updateAccessibility().
Definition at line 320 of file qaccessible.h.
enum QAccessible::Action |
This enum describes the possible types of action that can occur.
Enumerator | |
---|---|
DefaultAction | |
Press | |
FirstStandardAction | |
SetFocus | |
Increase | |
Decrease | |
Accept | |
Cancel | |
Select | |
ClearSelection | |
RemoveSelection | |
ExtendSelection | |
AddToSelection | |
LastStandardAction |
Definition at line 294 of file qaccessible.h.
enum QAccessible::Event |
This enum type defines accessible event types.
The values for this enum are defined to be the same as those defined in the AccessibleEventID.idl File Reference{IAccessible2} and Microsoft Active Accessibility Event Constants{MSAA} specifications.
Definition at line 67 of file qaccessible.h.
enum QAccessible::Method |
This enum describes the possible types of methods that can be invoked on an accessible object.
Enumerator | |
---|---|
ListSupportedMethods | |
SetCursorPosition | |
GetCursorPosition | |
ForegroundColor | |
BackgroundColor |
Definition at line 311 of file qaccessible.h.
This enum type defines bit flags that can be combined to indicate the relationship between two accessible objects.
Implementations of relationTo() return a combination of these flags. Some values are mutually exclusive.
Implementations of navigate() can accept only one distinct value.
Enumerator | |
---|---|
Unrelated | |
Self | |
Ancestor | |
Child | |
Descendent | |
Sibling | |
HierarchyMask | |
Up | |
Down | |
Left | |
Right | |
Covers | |
Covered | |
GeometryMask | |
FocusChild | |
Label | |
Labelled | |
Controller | |
Controlled | |
LogicalMask |
Definition at line 268 of file qaccessible.h.
enum QAccessible::Role |
This enum defines the role of an accessible object.
The roles are:
Definition at line 188 of file qaccessible.h.
This enum type defines bit flags that can be combined to indicate the state of an accessible object.
The values are:
Implementations of QAccessibleInterface::state() return a combination of these flags.
Definition at line 143 of file qaccessible.h.
enum QAccessible::Text |
This enum specifies string information that an accessible object returns.
Enumerator | |
---|---|
Name | |
Description | |
Value | |
Help | |
Accelerator | |
UserText |
Definition at line 259 of file qaccessible.h.
|
static |
Definition at line 2359 of file qaccessible_mac.mm.
Referenced by qt_cleanup().
|
static |
Definition at line 2339 of file qaccessible_mac.mm.
Referenced by qt_init().
|
static |
Installs the InterfaceFactory factory.
The last factory added is the first one used by queryAccessibleInterface().
Definition at line 553 of file qaccessible.cpp.
|
static |
Installs the given handler as the function to be used by setRootObject(), and returns the previously installed handler.
Definition at line 596 of file qaccessible.cpp.
Referenced by QTestAccessibility::QTestAccessibility(), and QTestAccessibility::~QTestAccessibility().
|
static |
Installs the given handler as the function to be used by updateAccessibility(), and returns the previously installed handler.
Definition at line 585 of file qaccessible.cpp.
Referenced by QTestAccessibility::QTestAccessibility(), and QTestAccessibility::~QTestAccessibility().
|
static |
Returns true if an accessibility implementation has been requested during the runtime of the application; otherwise returns false.
Use this function to prevent potentially expensive notifications via updateAccessibility().
Definition at line 665 of file qaccessible.cpp.
Referenced by QMenuBarPrivate::_q_actionHovered(), QAbstractItemViewPrivate::_q_columnsInserted(), QAbstractItemViewPrivate::_q_columnsRemoved(), QAbstractItemViewPrivate::_q_layoutChanged(), QAbstractItemViewPrivate::_q_rowsInserted(), QAbstractItemViewPrivate::_q_rowsRemoved(), QMenuPrivate::activateAction(), QTableView::currentChanged(), QListView::currentChanged(), QTreeView::currentChanged(), QStatusBar::hideOrShow(), QTreeViewPrivate::insertViewItems(), QTreeViewPrivate::removeViewItems(), QAbstractItemView::reset(), QTableView::selectionChanged(), QListView::selectionChanged(), QTreeView::selectionChanged(), and QTabBar::setCurrentIndex().
|
static |
If a QAccessibleInterface implementation exists for the given object, this function returns a pointer to the implementation; otherwise it returns 0.
The function calls all installed factory functions (from most recently installed to least recently installed) until one is found that provides an interface for the class of object. If no factory can provide an accessibility implementation for the class the function loads installed accessibility plugins, and tests if any of the plugins can provide the implementation.
If no implementation for the object's class is available, the function tries to find an implementation for the object's parent class, using the above strategy.
Definition at line 622 of file qaccessible.cpp.
Referenced by QAbstractItemViewPrivate::_q_columnsInserted(), QAbstractItemViewPrivate::_q_columnsRemoved(), QAbstractItemViewPrivate::_q_layoutChanged(), QAbstractItemViewPrivate::_q_rowsInserted(), QAbstractItemViewPrivate::_q_rowsRemoved(), QAccessibleItemView::accessibleAt(), AccessibleElement::AccessibleElement(), applicationEventHandler(), QAccessibleItemView::columnHeader(), QAccessibleWidget::navigate(), QAccessibleTable2::navigate(), QAccessibleAbstractScrollArea::navigate(), QAccessibleMenuItem::navigate(), QAccessibleApplication::navigate(), QAccessibleDisplay::navigate(), QAccessibleWidgetStack::navigate(), QAccessibleStackedWidget::navigate(), QAccessibleTable2Cell::navigate(), QAccessibleToolBox::navigate(), QAccessibleMdiArea::navigate(), QAccessibleMdiSubWindow::navigate(), QAccessibleWorkspace::navigate(), QAccessibleComboBox::navigate(), QAccessibleTable2CornerButton::navigate(), QAccessibleCalendarWidget::navigate(), QAccessibleDockWidget::navigate(), QAccessibleMainWindow::navigate(), QtWndProc(), QAccessibleHierarchyManager::registerInterface(), QAccessibleWidget::relationTo(), QAbstractItemView::reset(), QAccessibleWidget::role(), QAccessibleItemView::rowHeader(), QAccessibleAbstractScrollArea::setText(), QAccessibleAbstractScrollArea::state(), QAccessibleMenuItem::state(), QAccessibleTable2Cell::table(), QAccessibleAbstractScrollArea::text(), and updateAccessibility().
|
static |
Removes factory from the list of installed InterfaceFactories.
Definition at line 570 of file qaccessible.cpp.
|
static |
Sets the root accessible object of this application to object.
All other accessible objects in the application can be reached by the client using object navigation.
You should never need to call this function. Qt sets the QApplication object as the root object immediately before the event loop is entered in QApplication::exec().
Use QAccessible::installRootObjectHandler() to redirect the function call to a customized handler function.
Definition at line 2348 of file qaccessible_mac.mm.
Referenced by QApplication::exec().
Notifies accessibility clients about a change in object's accessibility information.
reason specifies the cause of the change, for example, ValueChange
when the position of a slider has been changed. child is the (1-based) index of the child element that has changed. When child is 0, the object itself has changed.
Call this function whenever the state of your accessible object or one of its sub-elements has been changed either programmatically (e.g. by calling QLabel::setText()) or by user interaction.
If there are no accessibility tools listening to this event, the performance penalty for calling this function is small, but if determining the parameters of the call is expensive you can test isActive() to avoid unnecessary computations.
Definition at line 2369 of file qaccessible_mac.mm.
Referenced by QMenuBarPrivate::_q_actionHovered(), QAbstractItemViewPrivate::_q_columnsInserted(), QAbstractItemViewPrivate::_q_columnsRemoved(), QPlainTextEditPrivate::_q_cursorPositionChanged(), QComboBoxPrivate::_q_dataChanged(), QComboBoxPrivate::_q_emitCurrentIndexChanged(), QAbstractItemViewPrivate::_q_layoutChanged(), QAbstractItemViewPrivate::_q_rowsInserted(), QAbstractItemViewPrivate::_q_rowsRemoved(), QLineEditPrivate::_q_selectionChanged(), QMenuPrivate::activateAction(), QDragManager::cancel(), QWidget::changeEvent(), QComboBox::clear(), QComboBox::clearEditText(), QWidget::clearFocus(), QTableView::currentChanged(), QListView::currentChanged(), QTreeView::currentChanged(), QDragManager::drag(), QOleDropTarget::Drop(), QLineControl::emitCursorPositionChanged(), QWidgetPrivate::hide_helper(), QWidgetPrivate::hideChildren(), QMenu::hideEvent(), QStatusBar::hideOrShow(), QTreeViewPrivate::insertViewItems(), QLineControl::internalSetText(), QAbstractSpinBox::keyPressEvent(), QMenu::popup(), QWhatsThisPrivate::QWhatsThisPrivate(), QAbstractButtonPrivate::refresh(), QTreeViewPrivate::removeViewItems(), QAbstractItemView::reset(), QTextControlPrivate::selectionChanged(), QTableView::selectionChanged(), QListView::selectionChanged(), QTreeView::selectionChanged(), QWidget::setAccessibleDescription(), QWidget::setAccessibleName(), QGroupBox::setChecked(), QTabBar::setCurrentIndex(), QPushButton::setDefault(), QComboBox::setEditText(), QWidget::setFocus(), QGraphicsScenePrivate::setFocusItemHelper(), QAbstractButton::setText(), QLabel::setText(), QGroupBox::setTitle(), QProgressBar::setValue(), QAbstractSlider::setValue(), QDialog::setVisible(), QWidgetPrivate::show_helper(), QMessageBox::showEvent(), QGraphicsItem::updateMicroFocus(), QWidget::updateMicroFocus(), QAbstractSpinBoxPrivate::updateState(), QWhatsThisPrivate::~QWhatsThisPrivate(), and QWidget::~QWidget().
|
staticprivate |
Definition at line 338 of file qaccessible.h.
Referenced by installRootObjectHandler().
|
staticprivate |
Definition at line 337 of file qaccessible.h.
Referenced by installUpdateHandler().