Added basic date/time picker automation peers. #17426
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does the pull request do?
Currently,
DatePicker
andTimePicker
have no automation peer, meaning that they don't show up in the automation tree1.This PR adds basic automation peers for these controls, causing them to show up as controls of type
Custom
in the automation tree. This matches how they show up in WPF (though in WinUI they show up as "Group" for some reason). UIA and NSAccessibility don't have a control type/role for date/time pickers.The peers implement
IValueProvider
allowing the value to be set through automation. The parsing of the date/time is done using a simpleDateTimeOffset.TryParse
orTimeSpan.TryParse
, so will use the OS/application culture.Ideally, the automation peers should also implement
IExpandCollapseProvider
but this was not done here because:IsDropDownOpen
or equivalent API for opening/closing the date/time pickerFootnotes
More accurately, they will show up only in the Raw view in UIA and
isAccessibilityElement
will returnfalse
on macOS ↩