# UI Automation

## Content

[C1InputPanel](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.C1InputPanel.html) provides Microsoft UI Automation (UIA) support for accessibility and automated UI testing scenarios.
UIA support allows screen readers, accessibility tools, and automation frameworks to inspect and interact with `InputPanel` controls through standard Microsoft accessibility APIs. Controls expose accessibility metadata, interaction patterns, hierarchy information, and state information that can be consumed programmatically by assistive technologies and automation clients.
The implementation improves accessibility compliance and enables reliable automated UI testing for WinForms applications.
Typical scenarios include

* screen reader integration
* accessibility validation
* keyboard-accessible interaction
* programmatic control navigation.

![C1WinForms InputPanel - UIA test demonstration](https://cdn.mescius.io/document-site-files/images/4e65bab9-2efa-46a9-bc67-a45339527116/InputPanel%20UI%20Automation-20261008.2ece69.gif?width=600)

***

## Supported Features

`C1InputPanel` exposes standard accessibility and automation information that allows automation clients to navigate controls, inspect values and state information, and invoke supported interactions programmatically.
Controls expose metadata including control names, control types, hierarchy relationships, state information, value information, and supported UIA interaction patterns. Automation frameworks can use this information to locate controls, validate state changes, automate workflows, and perform interaction testing.

***

## Supported Controls

The following controls expose UIA providers and accessibility metadata.

| Control | Supported Features | @cols=2:UIA Template |
| ------- | ------------------ | ------------ | ------------ |
| [C1InputPanel](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.C1InputPanel.html) | Container hierarchy exposure | `UiaPane` |
| [InputButton](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputButton.html) | Invoke support | `UiaButton` |
| [InputCheckBox](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputCheckBox.html) | Toggle support | `UiaCheckBox` |
| [InputComboBox](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputComboBox.html) | Expand/Collapse, Selection | `UiaComboBox` |
| [InputDataNavigator](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputDataNavigator.html) | Toolbar navigation | `UiaToolBar` |
| [InputDatePicker](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputDatePicker.html) | Expand/Collapse, Value | `UiaComboBox` |
| [InputFlowPanel](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputFlowPanel.html) | Container support | `UiaPane` |
| [InputGridPanel](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputGridPanel.html) | Container support | `UiaPane` |
| [InputGroupHeader](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputGroupHeader.html) | Group support | `UiaGroup` |
| [InputHtmlLabel](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputHtmlLabel.html) | Text and hyperlink support | `UiaText` |
| [InputImage](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputImage.html) | Image accessibility support | `UiaImage` |
| [InputLabel](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputLabel.html) | Text support | `UiaText` |
| [InputMaskedTextBox](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputMaskedTextBox.html) | Text and Value support | `UiaEdit` |
| [InputMenu](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputMenu.html) | Invoke, Selection, Scroll, Transform | `UiaMenu` |
| [InputNumericBox](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputNumericBox.html) | RangeValue support | `UiaSpinner` |
| [InputOption](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputOption.html) | Selection item support | `UiaListItem` |
| [InputProgressBar](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputProgressBar.html) | Progress reporting | `UiaProgressBar` |
| [InputRadioButton](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputRadioButton.html) | Selection support | `UiaRadioButton` |
| [InputSeparator](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputSeparator.html) | Structural separation | `UiaSeparator` |
| [InputSplitButton](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputSplitButton.html) | Invoke, Selection, Scroll, Transform | `UiaSplitButton` |
| [InputTextBox](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputTextBox.html) | Text and Value support | `UiaEdit` |
| [InputTimePicker](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputTimePicker.html) | Value support | `UiaSpinner` |
| [InputTrackBar](/componentone/api/win/online-inputpanel/dotnet-api/C1.Win.InputPanel.10/C1.Win.InputPanel.InputTrackBar.html) | Range interaction support | `UiaSlider` |

***

## UIA Pattern-to-Control Mapping

`C1InputPanel` exposes standard UI Automation interaction patterns according to the capabilities of each control.
**Pattern Mapping**
The following table shows the primary UIA patterns exposed by supported `InputPanel` controls.

| Control | @cols=2:Supported UIA Patterns |
| ------- | ---------------------- | ---------------------- |
| `InputButton` | `InvokePattern` |
| `InputCheckBox` | `TogglePattern` |
| `InputComboBox` | `ExpandCollapsePattern`, `SelectionPattern` |
| `InputDatePicker` | `ExpandCollapsePattern`, `ValuePattern` |
| `InputMenu` | `InvokePattern`, `SelectionPattern`, `ScrollPattern`, `TransformPattern` |
| `InputNumericBox` | `RangeValuePattern` |
| `InputOption` | `SelectionPattern` |
| `InputRadioButton` | `SelectionPattern` |
| `InputSplitButton` | `InvokePattern`, `SelectionPattern`, `ScrollPattern`, `TransformPattern` |
| `InputTextBox` | `ValuePattern` |
| `InputMaskedTextBox` | `ValuePattern` |
| `InputTimePicker` | `ValuePattern` |
| `InputTrackBar` | `RangeValuePattern` |

***

## Accessibility Behavior

`C1InputPanel` exposes child controls through the standard UI Automation hierarchy, allowing automation clients to navigate controls programmatically, read values and state information, detect state changes, invoke supported interactions, and query supported interaction patterns.
This behavior supports integration with Windows Narrator, screen readers, accessibility inspection tools, and automated UI testing frameworks.

***

## Limitations

| Limitation | @cols=2:Description |
| ---------- | ----------- | ----------- |
| Container-level UIA restrictions | Some advanced container behaviors are limited by Microsoft UIA provider constraints. |
| Extra edit node in `InputDatePicker` | Internal `TextBox` hosting may expose an unnamed edit node in the UIA tree. |
| TextBox hierarchy inconsistencies | Hosted native `TextBox` controls may expose duplicate accessibility nodes. |
| Focus support | Full focus-related UIA pattern support is not implemented. |
