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"?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With