Spinner Control Type
This topic provides information about Microsoft UI Automation support for the Spinner control type.
Spinner controls are used to select from a domain of items or a range of numbers.
The following sections define the required UI Automation tree structure, properties, control patterns, and events for the Spinner control type. The UI Automation requirements apply to all spinner controls where the UI framework/platform integrates UI Automation support for control types and control patterns.
This topic contains the following sections.
Typical Tree Structure
The following table depicts a typical control and content view of the UI Automation tree that pertain to spinner controls when they support the RangeValue and Selection control patterns and describes what can be contained in each view. For more information about the UI Automation tree, see UI Automation Tree Overview.
RangeValue control pattern
|Control View||Content View|
Selection control pattern
|Control View||Content View|
To ensure that the two buttons in the control view subtree can be distinguished by automated test tools, assign the ScrollAmount_SmallIncrement or ScrollAmount_SmallDecrement value to the AutomationId property as appropriate. For some implementations, the associated edit control may be a peer of the spinner control.
The following table lists the UI Automation properties whose value or definition is especially relevant to spinner controls. For more information about UI Automation properties, see Retrieving Properties from UI Automation Elements.
|UI Automation Property||Value||Notes|
|UIA_AutomationIdPropertyId||See notes.||The value of this property must be unique among all peer elements in the raw view of the UI Automation tree.|
|UIA_BoundingRectanglePropertyId||See notes.||The outermost rectangle that contains the whole control.|
|UIA_ClickablePointPropertyId||See notes.||The spinner control's clickable point gives focus to the edit portion of the control.|
|UIA_ControlTypePropertyId||Spinner||This value is the same for all frameworks.|
|UIA_IsContentElementPropertyId||TRUE||The spinner control must always be content.|
|UIA_IsControlElementPropertyId||TRUE||The spinner control must always be a control.|
|UIA_IsKeyboardFocusablePropertyId||See notes.||If the control can receive keyboard focus, it must support this property. A spinner control rarely takes the focus, but when it does, the focus should remain on the spinner control itself, not on the child buttons. The user should be able to perform all scrolling actions by using the UP ARROW and DOWN ARROW keys.|
|UIA_LabeledByPropertyId||See notes.||Spinner controls have a static text label.|
|UIA_LocalizedControlTypePropertyId||See notes.||Localized string corresponding to the Spinner control type. The default value is "spinner" for en-US or English (United States).|
|UIA_NamePropertyId||See notes.||The spinner control typically gets its name from a static text label.|
Required Control Patterns
The following table lists the UI Automation control patterns required to be supported by all spinner controls. For more information on control patterns, see UI Automation Control Patterns Overview.
|Control Pattern/Pattern Property||Support/Value||Notes|
|IRangeValueProvider||Depends||Spinner controls that span a numeric range can support the RangeValue control pattern.|
|ISelectionProvider||Depends||Spinner controls that have a list of items to be selected must support the Selection control pattern.|
|CanSelectMultiple||FALSE||Spinner controls are always single selection containers.|
|IValueProvider||Depends||Spinner controls that span a descrete set of options or numbers can support the Value control pattern.|
The following table lists the UI Automation events that spinner controls are required to support. For more information on events, see UI Automation Events Overview.
|UI Automation Event||Notes|
|UIA_BoundingRectanglePropertyId property-changed event.|
|UIA_IsEnabledPropertyId property-changed event.||If the control supports the IsEnabled property, it must support this event.|
|UIA_IsOffscreenPropertyId property-changed event.||If the control supports the IsOffscreen property, it must support this event.|
|UIA_RangeValueValuePropertyId property-changed event.||If the control supports the RangeValue control pattern, it must support this event.|
|UIA_Selection_InvalidatedEventId property-changed event.||If the control supports the Selection control pattern, it must support this event.|
|UIA_ValueValuePropertyId property-changed event.||If the control supports the Value control pattern, it must support this event.|