Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for IValueProvider #13328

Closed
Tracked by #11903
chiaramooney opened this issue Jun 11, 2024 · 2 comments · Fixed by #14212
Closed
Tracked by #11903

Add support for IValueProvider #13328

chiaramooney opened this issue Jun 11, 2024 · 2 comments · Fixed by #14212
Assignees
Labels
Area: Accessibility Area: Fabric Support Facebook Fabric enhancement New Architecture Broad category for issues that apply to the RN "new" architecture of Turbo Modules + Fabric Workstream: Accessibility Ensure RNW Fabric apps are properly accessible.
Milestone

Comments

@chiaramooney
Copy link
Contributor

chiaramooney commented Jun 11, 2024

Documentation

IValueProvider Documentation: https://learn.microsoft.com/en-us/windows/win32/api/uiautomationcore/nn-uiautomationcore-ivalueprovider

Behavior

Components of control type Slider, ProgressBar, Hyperlink, and Button should have conditional support for the UIA IValueProvider (Documentation: https://learn.microsoft.com/en-us/windows/win32/winauto/uiauto-controlpatternmapping). Value for IValueProvider should be supplied by the accessibilityValue property (if this property was specified). See #12510 for issue for accessibilityValue specification.

Implementation Plan

We should:

Implement the IValueProvider APIs in CompositionDynamicAutomationProvider.
Set the list of controls who implement the IValueProvider to be Slider, ProgressBar, Hyperlink, and Button under certain conditions. To get more information on the conditions visit the page for the individual UIA control types.

For addition reference, see implementation of other provider on Fabric: #11874

To Be Clarified

Q: Are there scenarios where accessibilityValue should have a default value for a control, or should it only take a value when the accessibilitValue was specified?
A: It appears from the UIA documentation that there are no controls where an accessibility value is required. There are only controls where conditionally there should be an accessibility value.

Implementation

Control Type Value Pattern Supported IsReadOnly Supports get_Value Support set_Value
TextInput Yes No Yes Yes
Searchbox Yes No Yes Yes
Adjustable Yes No Yes Not Yet, To-Do
Spinbutton Yes No Yes Not Yet, To-Do
Hyperlink Yes Yes Yes N/A
Button Yes Yes Yes N/A
ProgressBar Yes Yes Yes N/A
ComboBox Yes Yes Yes Not Yet, To-Do
ListItem Yes Yes Yes N/A
@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs: Triage 🔍 New issue that needs to be reviewed by the issue management team (label applied by bot) label Jun 11, 2024
@chrisglein chrisglein added Area: Accessibility and removed Needs: Triage 🔍 New issue that needs to be reviewed by the issue management team (label applied by bot) labels Jun 13, 2024
@chrisglein chrisglein added this to the Backlog milestone Jun 13, 2024
@jonthysell jonthysell added the Area: Fabric Support Facebook Fabric label Jul 15, 2024
@microsoft-github-policy-service microsoft-github-policy-service bot added the New Architecture Broad category for issues that apply to the RN "new" architecture of Turbo Modules + Fabric label Jul 15, 2024
@chiaramooney
Copy link
Contributor Author

#12361

@chiaramooney
Copy link
Contributor Author

#12510

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Accessibility Area: Fabric Support Facebook Fabric enhancement New Architecture Broad category for issues that apply to the RN "new" architecture of Turbo Modules + Fabric Workstream: Accessibility Ensure RNW Fabric apps are properly accessible.
Projects
Status: Done
3 participants