Droidcon 2013 accessible android apps sharma_google
Upcoming SlideShare
Loading in...5
×
 

Droidcon 2013 accessible android apps sharma_google

on

  • 744 views

 

Statistics

Views

Total Views
744
Views on SlideShare
665
Embed Views
79

Actions

Likes
0
Downloads
15
Comments
0

1 Embed 79

http://de.droidcon.com 79

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Droidcon 2013 accessible android apps sharma_google Droidcon 2013 accessible android apps sharma_google Presentation Transcript

  • Designing AccessibleAndroid ApplicationsApril 9, 2013 Google Confidential and Proprietary
  • Agenda● What is accessibility?● What features are available?● How do you make your app accessible?● Testing and Debugging Google Confidential and Proprietary
  • Google Confidential and Proprietary
  • What framework provides● User interactions and system events generate AccessibilityEvents and send them to services● AccessibilityServices like TalkBack respond to these events and provide feedback to the user Google Confidential and Proprietary
  • What framework providesDonut (1.6) through Honeycomb (3.x)● Spoken feedback through TextToSpeech APIs● Modify your devices display and sound options ○ Large text ○ Change speed at which text is spoken ○ Disable screen rotationIce Cream Sandwich (4.0) ● Touch exploration for devices without D-Pad ● Services can inspect view hierarchy Google Confidential and Proprietary
  • What framework providesJellyBean (4.1)● Supports Accessibility focus ○ Services can place this focus on any view ○ Indicated on-screen via yellow rectangle● Supports Braille I/O devices via BrailleBack service Google Confidential and Proprietary
  • What framework providesJellyBean (4.1)● Many actions available ○ Move input focus ○ Click on views ○ Scroll within views ○ Navigate text by words, etc. ○ Perform global actions Google Confidential and Proprietary
  • Features in Jelly BeanGestures● Services can respond to user- drawn gestures ○ Perform accessibility actions ○ Invoke global actions (Home, Back, etc.)● Deterministic access to screen content Google Confidential and Proprietary
  • Features in Jelly BeanMagnification● Available in Android 4.2● Multiple zoom modes ○ Triple-tap to toggle ○ Triple-tap and hold for momentary zoom Google Confidential and Proprietary
  • Features in Jelly BeanGestures● Quick shortcuts available in Global Context Menu ○ Pause feedback ○ Repeat/spell last utterance ○ TalkBack Settings Google Confidential and Proprietary
  • (demo) Google Confidential and Proprietary
  • What framework providesAndroid sensors● SMS, Video chats, Videos with Captions● Location aware, GPS, maps, places● proximity● eyes free - motion / accelerometer / velocity tracker / light sensor● motion, environmental and position sensorsRead the Android Developer Guide for Sensors Google Confidential and Proprietary
  • What framework providesGoogle Play● Paid apps in many Countries● DCBDeveloper Console● Countries and currencies● Auto Translate feature● StatisticsGlobal accessibility● i18n and l10nRead the Android Developer Guide for Localization Google Confidential and Proprietary
  • What framework providesDesign recommendations● Navigation should be easy● Use recommended touch target sizes● Alternatives to time-out controls● Label UI elements meaningfully ○ Minimize Chatter ○ Provide feedbackRead the Android Design Guide for Accessibility Google Confidential and Proprietary
  • (demo) Google Confidential and Proprietary
  • Code changes for AccessibilityLabeling content● Controls without text need android:contentDescription● Android Lint tool warns when images are missing descriptions● Purely decorative Views should set android: contentDescription="@null"● Use setContentDescription() to update a Views description ○ Dont override getContentDescription()● EditTexts should use android:hint Google Confidential and Proprietary
  • <ImageView android:id="@+id/rounded_corner" android:contentDescription="@null" ... /><ImageView android:id="@+id/search_button" android:focusable=”true” android:contentDescription="@string/search" ... /><EditText android:id="@+id/search_field" android:hint="@string/search_hint" ... /> Google Confidential and Proprietary
  • Code changes for AccessibilitySupporting D-Pad navigation● Prior to Android 4.0, app needs to be accessible via D-Pad ○ Includes arrow keys on USB and Bluetooth keyboards ○ This is easy to test in the emulator!● May need to manually specify that clickable items (e.g. ImageViews) are focusable using android:focusable="true"● Make important text focusable● Control order using android:nextFocusDown Google Confidential and Proprietary
  • <LinearLayout android:orientation="horizontal" ... > <EditText android:id="@+id/edit" android:focusable=”true” android:nextFocusDown=”@+id/text” ... /> <TextView android:id="@+id/text" android:focusable=”true” android:text="@string/terms_of_service" android:nextFocusUp=”@id/edit” ... /></LinearLayout> Google Confidential and Proprietary
  • Code changes for AccessibilitySupporting scaled text● Android supports large fonts for low-vision use● Text sizes should be in sp "scaled pixels" instead of dips● Always test your app for text cropping, wrapping, etc. ○ You should be doing this for i18n anyway!<TextView android:id="@+id/intro_text" android:textSize="14sp" .... /> Google Confidential and Proprietary
  • (demo) Google Confidential and Proprietary
  • Logical grouping and ordering● View hierarchy order and on-screen positioning determine grouping for accessibility focus and ordering of spoken feedback● Group non-focusable items (e.g. TextViews) in a focusable container to have them read as a single item● Set content description on a container to override automatic grouping and ordering of contained items Google Confidential and Proprietary
  • Logical grouping and ordering Google Confidential and Proprietary
  • FolderIcon android:id="@+id/folder" android:focusable="true" android:contentDescription="@string/folder_google" ...> <ImageView android:id="@+id/preview_background" android:contentDescription="@null" ... /> <BubbleTextView android:id="@+id/folder_icon_name" android:text="@string/google" ... /></LinearLayout> Google Confidential and Proprietary
  • Testing and Debugging for AccessibilityFor all Android apps ○ Create checklist ○ Check with real simulation ○ Test on all supported Platforms ○ Test on screens and densities Screens: small, normal, large, xlarge Densities: (low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)) Google Confidential and Proprietary
  • Testing and Debugging forAccessibilityFor all Android apps● Enable Accessibility features ○ Turn on TalkBack logging in Accessibility > TalkBack > Settings > Developer settings● Android Lint tool Google Confidential and Proprietary
  • SummaryMust do:● Use built-in Android components ○ Label controls ○ Make controls focusable ○ Ensure traversal order is correct ○ Specify text in sp ○ Logically group UI elements● Fix custom components ○ Implement accessibility interfaces ○ Use Support library ○ TouchExplorationHelper is available on Google Code● Test and Fix Google Confidential and Proprietary
  • SummaryGood to have:● Augment audio-only prompts ○ Visual cues ○ Haptic feedback● Evaluate sensors● Add captions to videos● Follow UI guidelines● Reach globallyRead the Android Developer Guide for Accessibility Google Confidential and Proprietary
  • Thanks and Questions? Send feedback to: soniash@google.com Google Confidential and Proprietary