[TIMOB-3110] iOS: Support VoiceOver Accessibility
GitHub Issue | n/a |
---|---|
Type | New Feature |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2012-10-09T01:29:49.000+0000 |
Affected Version/s | Release 1.6.0, Release 3.0.0 |
Fix Version/s | Release 3.0.0, Sprint 2012-20 Core, 2012 Sprint 20 |
Components | iOS |
Labels | SupportTeam, accessibility_basic, accessibility_module, core, qe-review, qe-testadded |
Reporter | Stephen Tramer |
Assignee | Max Stepanov |
Created | 2011-04-15T03:37:14.000+0000 |
Updated | 2013-01-02T18:55:32.000+0000 |
Description
Exactly what the ticket title says. We don't support (any???) accessibility right now, if additional support for it is necessary. Unlikely to be a candidate for a module.
It should add support of defining Constants UIAccessibilityTraits UIAccessibilityTraitAllowsDirectInteraction; and UIAccessibilityAnnouncementNotification It is very useful. https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIAccessibility_Protocol/Introduction/Introduction.html
@Steve - Curious at WWDC if they said anything about alternate layouts based on accessibility settings.
Test app.js
Implemented according to spec at https://wiki.appcelerator.org/display/pe/Titanium+Accessibility+Specification
Test for regressions when accessibility is OFF.
* Turn off any accessibility services that may be turned on on your device. * Create application with app.js provided above. * Run the app on iPhone device. * Go through the two tabs in the app. Make sure nothing is broken (note: the buttons don't show anything when you click them -- just be sure nothing causes a crash.) * On the second tab, "Events", make sure the label says that accessibility is disabled. * Back out of the app.Test Accessibility
* Turn on VoiceOver and Hints in Settings/General/Accessibility. * Run the app again. * On the View Properties tab, select (without clicking) the Basic button. No accessibility properties are set on this button (thus "Basic"), so VoiceOver will simply do whatever it does by default, which is likely to say "Basic. Button.". * Now select (without clicking) the "Different" button. This button has its accessibilityLabel property set so as to override the default text that would otherwise be read aloud by VoiceOver. Instead of just saying "Different. Button." it should say "This has different text for accessibility. Button." * Now select the switch. It has three accessibility properties set: accessibilityLabel, accessibilityValue and accessibilityHint. These will be combined, and VoiceOver should say, "My special switch. Off. Double tap to turn on." * Now switch to the "Events" tab. * Select and click (in touch-by-explore this means double-tapping) the "Make announcement" button. You should hear an announcement, "Please stand by for an urgent message from the Department of Homeland Security." * Read the label field. Make sure it includes the text "Accessibility is enabled." * Try to select (with explore-by-touch) the label. It should not be possible, since the accessibilityHidden property is set totrue
. * Now keep the app running (do not terminate) and go back to Settings and disable VoiceOver. * Switch back to the app. The label should now include "Accessibility is disabled." * Switch back to Settings settings and re-enable VoiceOver. * Switch back to the app. *Note: iOS restarts application when it goes from VoiceOver=Off to VoiceOver=On, but not vice versa.* Switch to "Events" tab. The label should contain "Accessibility is enabled."PR: https://github.com/appcelerator/titanium_mobile/pull/2992
Pull merged.
Verified feature works as expected. Testing environment: OS: Mac OS X Lion 10.7.4 Titanium Studio, build: 3.0.0.201210090117 Titanium SDK, build: 3.0.0.v20121014234610 Device: iPhone 4S (4.3.5)