UI Automation Support
With the Q4 2024 version of our controls, RadDropDownList supports UI Automation. The current implementation of UI Automation for RadDropDownList is similar to the MS WinForms ComboBox 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.
This functionality is enabled by default. To disable it, you can set the EnableUIAutomation property to false.
this.radDropDownList1.EnableUIAutomation = false;
Me.RadDropDownList1.EnableUIAutomation = False
RadDropDownList
The table below outlines the UI Automation properties most important for understanding and interacting with RadDropDownList control.
RadDropDownList Available Properties
- AutomationElementIdentifiers.AutomationIdProperty.Id
- AutomationElementIdentifiers.BoundingRectangleProperty.Id
- AutomationElementIdentifiers.ControlTypeProperty => ControlType.ComboBox.Id
- AutomationElementIdentifiers.LocalizedControlTypeProperty.Id => "comboBox"
- AutomationElementIdentifiers.HelpTextProperty.Id
- AutomationElementIdentifiers.IsContentElementProperty.Id
- AutomationElementIdentifiers.IsControlElementProperty.Id
- AutomationElementIdentifiers.IsKeyboardFocusableProperty.Id
- AutomationElementIdentifiers.HasKeyboardFocusProperty.Id
- AutomationElementIdentifiers.LabeledByProperty.Id
- AutomationElementIdentifiers.NameProperty.Id
- AutomationElementIdentifiers.IsValuePatternAvailableProperty.Id
RadDropDownList Supported Control Patterns
The following section outlines the supported automation patterns for the RadDropDownList control and its constituent elements.
Editor or TextElement
The DropDownStyle property of the control determines if direct text input is allowed inside the editor or not. When the style is set to DropDown we allow input which is handled by a hosted Microsoft TextBox control. In this case, the default TextBox implementation is responsible for handling UI Automation.
Editor
The current implementation of UI Automation for the hosted Microsoft TextBox control is implemented as the UIA Edit control type
TextElement
The current implementation of UI Automation for the RadDropDownList TextElement control is implemented as the UIA Text control type
TextElement Available Properties
- AutomationElementIdentifiers.AutomationIdProperty.Id
- AutomationElementIdentifiers.BoundingRectangleProperty.Id
- AutomationElementIdentifiers.ControlTypeProperty => ControlType.Text.Id
- AutomationElementIdentifiers.LocalizedControlTypeProperty => "text"
- AutomationElementIdentifiers.HelpTextProperty.Id
- AutomationElementIdentifiers.IsContentElementProperty.Id
- AutomationElementIdentifiers.IsControlElementProperty.Id
- AutomationElementIdentifiers.IsKeyboardFocusableProperty.Id
- AutomationElementIdentifiers.HasKeyboardFocusProperty.Id
- AutomationElementIdentifiers.LabeledByProperty.Id
- AutomationElementIdentifiers.NameProperty.Id
RadArrowButtonElement
The current implementation of UI Automation for the RadArrowButtonElement control is implemented as the UIA Button control type
RadArrowButtonElement Available Properties
- AutomationElementIdentifiers.AutomationIdProperty.Id
- AutomationElementIdentifiers.BoundingRectangleProperty.Id
- AutomationElementIdentifiers.ControlTypeProperty => ControlType.Button.Id
- AutomationElementIdentifiers.LocalizedControlTypeProperty => "button"
- AutomationElementIdentifiers.HelpTextProperty.Id
- AutomationElementIdentifiers.IsContentElementProperty.Id
- AutomationElementIdentifiers.IsControlElementProperty.Id
- AutomationElementIdentifiers.IsKeyboardFocusableProperty.Id
- AutomationElementIdentifiers.HasKeyboardFocusProperty.Id
- AutomationElementIdentifiers.LabeledByProperty.Id
- AutomationElementIdentifiers.NameProperty.Id
RadArrowButtonElement Supported Control Patterns
DropDownPopupForm
This is the popup that is responsible for the list of the items. This UI Automation Provider is implemented as a IRawElementProviderFragmentRoot with its parent being the provider of the RadDropDownList control. For more information about the actual implementation check the article of the RadListControl UI Automation Provider.