Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VoiceOver announces dimmed instead of disabled for buttons

iOS 8.x VoiceOver announces dimmed instead of disabled for buttons that have been disabled. Is there a way to programmatically get VoiceOver to say "disabled" instead of "dimmed"?

like image 939
Grady McGhee Avatar asked Feb 10 '23 14:02

Grady McGhee


1 Answers

There are ways to do what you want, but you absolutely should not use them. The announcement "Dimmed" occurs, when the User Interaction Enabled trait is set to NO. This is the way VoiceOver users are use to on screen, focusable, but disabled elements being announced. Forcing your app to behave in another manner is poor accessibility (See WCAG 2.0 Guideline 3.2.3).

Something you can do, if you want it to be truly disabled, is set isAccessibilityElement to NO. Then it won't even be in the VoiceOver focus loop. Then just set it to YES, when you want to enable it. But, if you want to leave it within the focus loop, "Dimmed" is the appropriate announcement for a temporarily disabled UI element.

My vote would be for the first solution, as modifying the isAccessibilityElement dynamically is a form of dynamic content, and may need additional considerations to maintain proper accessibility (See WCAG 2.0 Guideline 3.2.1 and 3.2.2). Unless there are a lot of such buttons, and flicking through them is tedious, in which case implementing the dynamic element considerations is worth it to maintain good VoiceOver usability.

like image 76
ChrisCM Avatar answered Feb 13 '23 07:02

ChrisCM