[Enhancement] Expose AccessibilityValue on iOS (and equivalents on other platforms)
- Dominant language
- C#
- Stars
- 23.3k
- Forks
- 2k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 290
Description
_From @johnshardman on Wed, 18 Nov 2020 11:35:32 GMT_
The AutomationProperties.NameProperty and AutomationProperties.HelpTextProperty are useful for naming controls and adding help text. Using them to expose a control's value results in accessibility guidelines being breached on target platforms, and result in a poor user experience for those using accessibility options/devices (such as Braille readers). For example, if using VoiceOver on iOS, the default behavior for a Slider is that the position of the Slider is read out as a percentage. In most situations (in my experience at least), that's not what the user wants. The user wants the value read out, not the percentage. So, if the Slider runs from 1 to 365 for days in the year, the user might want to hear 180 rather than 50%. Using AutomationProperties.NameProperty to read out the 180 has multiple drawbacks (for a start, it doesn't stop the 50% being read out first).
To solve this, it's necessary to somehow expose the value (in the case of iOS, AccessibilityValue). I suggest adding AutomationProperties.ValueProperty as a bindable property - that would be consistent with the other properties, although there are other ways of exposing it. This should be done for all controls, not just Sliders.
_Copied from original issue xamarin/Xamarin.Forms#12889_
Contributor guide
Research direction
Start by tracing AutomationProperties.NameProperty and HelpTextProperty into the platform accessibility mappings, beginning with iOS AccessibilityValue. Define how a value property should work across controls and platforms, then verify that controls expose the value without replacing their standard accessibility behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, ios
- Domain
- accessibility, mobile-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100