Skip to main content
All docs
V25.2
  • 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.

    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).

    Footnotes
    1. Each embedded editor button has its own Automation property.

    2. Each check group item has its own Automation property.

    3. Drop-down editor windows do not support UI Automation in v25.2.

    4. Each radio group item has its own Automation property.

    5. Use the following links to navigate to corresponding topic descriptions: