Accessibility Support
- 6 minutes to read
Accessibility interfaces allow DevExpress controls to exchange information with third-party applications, such as accessibility tools.
UI Automation-Based Accessibility
UI Automation-based accessibility features (such as Microsoft Narrator) rely on the Microsoft UI Automation (UIA) framework to obtain information about UI elements in an application.
Global UI Automation Settings
All global UI Automation and accessibility-related settings are declared in the dxUIAClasses unit.
Enable UI Automation
In v25.2, accessibility features are initially disabled in all supported controls because this functionality is still in the active development stage. To test the UI Automation functionality in all products listed below, set the dxUIAutomationEnabled global variable to True.
If you encounter any issues while the UI Automation functionality is enabled, please submit a support ticket through the DevExpress Support Center. We will be happy to follow up.
Additional UI Automation Settings
- dxUIACalculateAllProperties
- This global variable specifies if all properties are automatically calculated for a node in the UI Automation tree.
- TdxUIADefaultSettings
- Stores default UI Automation-related settings for all supported DevExpress controls.
Controls with UI Automation Support
All DevExpress controls listed in this section can store accessibility-related information (such as public name, description, type) and raise UI Automation events.
Bars
Ribbon and toolbar UIs support UI Automation-based accessibility features. You can use the Automation property of individual TdxBarItem descendant instances to add or customize accessibility-related information and handle UI Automation events.
Editors
In v25.2, all editors listed in this section implement the Properties.Automation property. You can use this property to add or customize accessibility-related information and handle UI Automation events.
- TcxBlobEdit | TcxDBBlobEdit
- A drop-down editor designed to display and edit memo and image data.
- TcxButtonEdit | TcxDBButtonEdit
- A single-line text editor with one or more embedded buttons.[1]
- TcxCheckBox | TcxDBCheckBox
- A check box.
- TcxCheckListBox | TcxDBCheckListBox
- A list box editor with checkable items.
- TcxCheckComboBox | TcxDBCheckComboBox
- A combo box editor with checkable items.
- TcxCheckGroup | TcxDBCheckGroup
- A set of checkboxes designed to specify a single state.[2]
- TcxComboBox | TcxDBComboBox
- A combo box editor.
- TcxCurrencyEdit | TcxDBCurrencyEdit
- A numeric editor designed to work with monetary values.
- TcxDateEdit | TcxDBDateEdit
- A date editor with a drop-down calendar.
- TcxFontNameComboBox | TcxDBFontNameComboBox
- A combo box editor designed for font typeface selection.
- TcxGroupBox
- A group box editor.
- TcxHyperLinkEdit | TcxDBHyperLinkEdit
- A simple editor designed to display a hyperlink.
- TcxImageComboBox | TcxDBImageComboBox
- A combo box editor with support for images.
- TcxLabel | TcxDBLabel
- An uneditable plain text label.
- TcxListBox | TcxDBListBox
- A list box editor.
- TcxLookupComboBox | TcxDBLookupComboBox | TcxExtLookupComboBox | TcxDBExtLookupComboBox
- A lookup combo box editor.[3]
- TcxMemo | TcxDBMemo
- A memo editor for plain text content (a multi-line text box).
- TcxNavigator | TcxDBNavigator
- A standalone data navigator editor for controls with IcxNavigator interface support.
- TcxPopupEdit | TcxDBPopupEdit
- A general-purpose pop-up editor.
- TcxRadioGroup | TcxDBRadioGroup
- A group of radio buttons that allow users to select an option.[4]
- TcxTextEdit | TcxDBTextEdit
- A single-line text editor.
- TcxTimeEdit | TcxDBTimeEdit
- A time editor with spin buttons.
- TcxShellComboBox | TcxDBShellComboBox
- A shell combo box editor.[3]
- TcxSpinEdit | TcxDBSpinEdit
- A spin editor.
- TcxTrackBar | TcxDBTrackBar
- A track bar editor that specifies a value using a thumb.
- TdxCheckGroupBox | TdxDBCheckGroupBox
- A hybrid editor that combines a group box and a check box.
- TdxFormattedLabel | TdxDBFormattedLabel
- An uneditable label with support for BBCode-inspired markup tags.
- TdxRangeTrackBar | TdxDBRangeTrackBar
- A track bar editor with two thumbs designed to specify a range.
- TdxToggleSwitch | TdxDBToggleSwitch
- A touch-friendly equivalent of a check box editor.
- TdxZoomTrackBar | TdxDBZoomTrackBar
- An advanced track bar editor with support for two scale ranges.
Data Grid
The Data Grid control, its Table Views, and in turn, columns and rows map to nodes in the UI Automation tree. A UIA client application reads properties of the UIA node that corresponds to the focused UI element.
You can use the TcxGrid.Automation property to configure root UIA node properties for the Data Grid control. In turn, each grid Table View has its own Automation property you can use to configure UIA node information that corresponds to an individual grid Table View and its data rows. At the lowest structure hierarchy level, each column has its own Automation property.
Tree List
All Tree List controls and their columns and rows map to nodes in the UI Automation tree. A UIA client application reads properties of the UIA node that corresponds to the focused UI element.
You can use the TcxCustomTreeList.Automation property to configure root UIA node properties for any TcxCustomTreeList descendant. In turn, each tree list column has its own Automation property that you can use to configure UIA node information exposed for individual columns.
Layout Control
The Layout control and the hierarchy of all nested groups and items map to nodes in the UI Automation tree if the dxUIAutomationEnabled global variable is set to True. A UIA client reads properties of the UIA node that corresponds to the focused control.
You can use the Automation property to configure root UIA node properties for the Layout control. In turn, each group and item has its own Automation property you can use to configure all nested nodes in the Layout control hierarchy.
Navigation Bar
The TdxNavBar control supports UI Automation interfaces at the level of individual UI elements and groups. TdxNavBarItem and TdxNavBarGroup classes implement the Automation property, which you can use to add or customize accessibility-related information and handle UI Automation events.
Miscellaneous UI Controls
Each control in the list below includes an Automation[5] property. You can use this property to add or customize accessibility-related information and handle UI Automation events.
- TdxActivityIndicator
- An activity indicator used to display a looped animation during an ongoing process with an unknown duration.
- TcxButton
- An enhanced counterpart of the standard TButton component.
- TcxRadioButton
- A standalone radio button.
- TdxPanel
- A resizable general-purpose panel with customizable borders.
- TdxTreeViewControl
- A Tree View control.
Forms
All DevExpress form classes (TdxCustomForm and TdxForm descendants) support UI Automation interfaces.
Tip
We strongly recommend that you derive all forms in your application project from TdxForm and its descendants to ensure the best user experience with third-party assistive tools (UIA clients).
-
Each embedded editor button has its own Automation property.
-
Each check group item has its own Automation property.
-
Drop-down editor windows do not support UI Automation in v25.2.
-
Each radio group item has its own Automation property.
-
Use the following links to navigate to corresponding topic descriptions:
- TcxCustomButton.Automation
- TcxRadioButton.Automation
- TdxCustomPanel.Automation
- TdxCustomTreeView.Automation
- TdxActivityIndicatorProperties.Automation