New to Telerik UI for WinFormsStart a free 30-day trial

UI Automation Support

Updated on Aug 11, 2025

With the Q3 2025 version of our controls, RadGridView supports UI Automation. The current implementation of UI Automation for RadGridView is similar to the MS WinForms RadGridView Control Type implementation with some extended functionality. The main goal of this implementation is to ensure compliance with accessibility standards and to provide a common practice for automated testing.

Figure 1: RadGridView UI Automation Tree Structure

Control View
├─ DataGrid (RadGridView Control )
    ├─ Header (Table Header Row)
        └─ HeaderItem (Header Cells)
    ├─ DataItem (New Row)
        └─ DataItem (New Row Cells)
    ├─ DataItem (Data Row)
        ├─ HeaderItem (Row Header Cells)
        ├─ CheckBox (Row Select Cells)
        ├─ Edit (TextBox Column Data Cell)
            └─ Edit (Cell TextBox Editor)
        ├─ Spinner (Decimal Column Data Cell)
            └─ Spinner (Cell Spin Editor)
        ├─ ComboBox (ComboBox Column Data Cell)
            └─ ComboBox (DropDownList Editor)
        ├─ CheckBox (CheckBox Column Data Cell)
        ├─ Button (Command Column Data Cell)
        ├─ Image (Image Column Data Cell)
        ├─ Hyperlink (Hyperlink Column Data Cell)
        ├─ DataItem (DateTime Column Data Cell)
        ├─ DataItem (Color Column Data Cell)
        ├─ DataItem (TimeSpan Column Data Cell)
        ├─ DataItem (MultiColumnComboBox Column Data Cell)
        ├─ DataItem (Rating Column Data Cell)
        ├─ DataItem (Sparkline Column Data Cell)
        └─ DataItem (Calculator Column Data Cell)
    ├─ ScrollBar (Vertical ScrollBar)
    └─ ScrollBar (Horizontal ScrollBar)

This functionality is enabled by default. To disable it, you can set the EnableUIAutomation property to false.

C#

this.radGridView1.EnableUIAutomation = false;

Relevant Properties

The table below outlines the UI Automation properties most important for understanding and interacting with RadGridView control.

Rows

This table describes the UI Automation support for different types of rows within RadGridView. Each row type is associated with a corresponding provider implementation, making them accessible to screen readers and automation tools.

Row ElementTelerik UIA Row ProviderUIA Control Type
Data RowDataRowHeaderItemUIAutomationProviderDataItem
New RowNewRowUIAutomationProviderDataItem
Table Header RowTableHeaderRowUIAutomationProviderHeader

DataRowUIAutomationProvider

This provider supports automation for standard data rows.

  • AutomationElementIdentifiers.ControlTypeProperty.Id => ControlType.DataItem.Id
  • AutomationElementIdentifiers.LocalizedControlTypeProperty.Id => "data item"
  • AutomationElementIdentifiers.NameProperty.Id
  • AutomationElementIdentifiers.OrientationProperty.Id
  • AutomationElementIdentifiers.IsContentElementProperty.Id
  • AutomationElementIdentifiers.HasKeyboardFocusProperty.Id
  • AutomationElementIdentifiers.IsSelectionItemPatternAvailableProperty.Id
  • AutomationElementIdentifiers.IsScrollItemPatternAvailableProperty.Id
  • AutomationElementIdentifiers.IsGridItemPatternAvailableProperty.Id
  • AutomationElementIdentifiers.IsTableItemPatternAvailableProperty.Id

The following items outlines the supported automation patterns by the DataRowUIAutomationProvider.

NewRowUIAutomationProvider

This provider targets the "Add New Row" functionality.

  • AutomationElementIdentifiers.ControlTypeProperty.Id => ControlType.DataItem.Id
  • AutomationElementIdentifiers.LocalizedControlTypeProperty.Id => "data item"
  • AutomationElementIdentifiers.NameProperty.Id => "TableAddNewRow"
  • AutomationElementIdentifiers.OrientationProperty.Id
  • AutomationElementIdentifiers.IsContentElementProperty.Id
  • AutomationElementIdentifiers.HasKeyboardFocusProperty.Id

TableHeaderRowUIAutomationProvider

This provider targets the table header row.

  • AutomationElementIdentifiers.ControlTypeProperty.Id => ControlType.Header.Id
  • AutomationElementIdentifiers.LocalizedControlTypeProperty.Id => "header"
  • AutomationElementIdentifiers.NameProperty.Id => "TableHeaderRow"
  • AutomationElementIdentifiers.OrientationProperty.Id
  • AutomationElementIdentifiers.IsContentElementProperty.Id
  • AutomationElementIdentifiers.HasKeyboardFocusProperty.Id
  • AutomationElementIdentifiers.IsKeyboardFocusableProperty.Id

Cells

This section provides a breakdown of the supported cell types in RadGridView and their corresponding UI Automation providers. Each cell type is linked to a provider responsible for handling its accessibility representation and available patterns.

Several provider classes in this list: DataRowHeaderItemUIAutomationProvider, DataCellSpinnerUIAutomationProvider, DataRowSelectCellUIAutomationProvider, and DataCellEditUIAutomationProvider — derive from the base DataCellUIAutomationProvider class. This base class defines the core automation behavior that these providers extend for their specific cell types.

Column CellsTelerik UIA Cell ProviderUIA Control Type
GridViewRowHeaderColumnDataRowHeaderItemUIAutomationProviderHeaderItem
GridViewSelectColumnDataRowSelectCellUIAutomationProviderCheckBox
GridViewTextBoxColumnDataCellEditUIAutomationProviderEdit
GridViewDecimalColumnDataCellSpinnerUIAutomationProviderSpinner
GridViewDateTimeColumnDataCellUIAutomationProviderDataItem
GridViewCheckBoxColumnDataCellCheckboxUIAutomationProviderCheckBox
GridViewHyperlinkColumnDataCellHyperLinkUIAutomationProviderHyperlink
GridViewCommandColumnDataCellCommandUIAutomationProviderButton
GridViewComboBoxColumnDataCellComboBoxUIAutomationProviderComboBox
GridViewBrowseColumnDataCellEditUIAutomationProviderEdit
GridViewCalculatorColumnDataCellUIAutomationProviderDataItem
GridViewColorColumnDataCellUIAutomationProviderDataItem
GridViewTimeSpanColumnDataCellUIAutomationProviderDataItem
GridViewImageColumnDataCellImageUIAutomationProviderImage
GridViewMaskBoxColumnDataCellEditUIAutomationProviderEdit
GridViewColorColumnDataCellUIAutomationProviderDataItem
RadMultiColumnComboBoxElementDataCellUIAutomationProviderDataItem
GridViewRatingColumnDataCellUIAutomationProviderDataItem
GridViewSparklineColumnDataCellUIAutomationProviderDataItem

DataRowHeaderItemUIAutomationProvider

Used primarily for row header cells, this provider ensures that header elements are correctly announced and interactable through assistive technologies.

  • AutomationElementIdentifiers.ControlTypeProperty.Id => "header item"
  • AutomationElementIdentifiers.LocalizedControlTypeProperty.Id => "header item"
  • AutomationElementIdentifiers.IsOffscreenProperty.Id
  • AutomationElementIdentifiers.NameProperty.Id
  • AutomationElementIdentifiers.IsContentElementProperty.Id
  • AutomationElementIdentifiers.IsControlElementProperty.Id
  • AutomationElementIdentifiers.IsKeyboardFocusableProperty.Id
  • AutomationElementIdentifiers.IsInvokePatternAvailableProperty.Id

The following items outlines the supported automation patterns by the DataRowHeaderItemUIAutomationProvider.

DataRowSelectCellUIAutomationProvider

this provider enables UI Automation support for selection cells, typically rendered as checkboxes.

  • AutomationElementIdentifiers.ControlTypeProperty.Id => ControlType.CheckBox.Id
  • AutomationElementIdentifiers.LocalizedControlTypeProperty.Id => "check box"
  • AutomationElementIdentifiers.IsOffscreenProperty.Id
  • AutomationElementIdentifiers.NameProperty.Id
  • AutomationElementIdentifiers.IsContentElementProperty.Id
  • AutomationElementIdentifiers.IsControlElementProperty.Id
  • AutomationElementIdentifiers.IsKeyboardFocusableProperty.Id
  • AutomationElementIdentifiers.IsInvokePatternAvailableProperty.Id

The following items outlines the supported automation patterns by the DataRowSelectCellUIAutomationProvider.

DataCellUIAutomationProvider

A general-purpose provider used for various content cells.

  • AutomationElementIdentifiers.AutomationIdProperty.Id
  • AutomationElementIdentifiers.ControlTypeProperty.Id => ControlType.CheckBox.Id
  • AutomationElementIdentifiers.LocalizedControlTypeProperty.Id => "data item"
  • AutomationElementIdentifiers.IsOffscreenProperty.Id
  • AutomationElementIdentifiers.NameProperty.Id
  • AutomationElementIdentifiers.IsContentElementProperty.Id
  • AutomationElementIdentifiers.IsControlElementProperty.Id
  • AutomationElementIdentifiers.IsKeyboardFocusableProperty.Id
  • AutomationElementIdentifiers.IsInvokePatternAvailableProperty.Id

The following items outlines the supported automation patterns by the base DataCellUIAutomationProvider.

DataCellEditUIAutomationProvider

This provider handles editable cells and reports them as ControlType.Edit.

  • AutomationElementIdentifiers.ControlTypeProperty.Id => ControlType.Edit.Id
  • AutomationElementIdentifiers.LocalizedControlTypeProperty.Id => "edit"
  • AutomationElementIdentifiers.IsControlElementProperty.Id => true

DataCellSpinnerUIAutomationProvider

Spinner cells, such as those in numeric columns, are handled by this provider.

  • AutomationElementIdentifiers.ControlTypeProperty.Id => ControlType.Spinner.Id
  • AutomationElementIdentifiers.LocalizedControlTypeProperty.Id => "spinner"
In this article
Relevant PropertiesRowsCells
Not finding the help you need?
Contact Support