dotnet / dotnet/maui

[Enhancement] Expose AccessibilityValue on iOS (and equivalents on other platforms)

Open
#4,032 0 comments 0 reactions 0 assignees View on GitHub
area-core-platform legacy-area-a11y platform/ios proposal/open t/a11y t/enhancement ☀️
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.