SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Designing Accessible
Android Applications
April 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 provides


Donut (1.6) through Honeycomb (3.x)
● Spoken feedback through TextToSpeech APIs
● Modify your device's display and sound options
   ○   Large text
   ○   Change speed at which text is spoken
   ○   Disable screen rotation

Ice Cream Sandwich (4.0)
 ● Touch exploration for devices without D-Pad
 ● Services can inspect view hierarchy




                                              Google Confidential and Proprietary
What framework provides


JellyBean (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 provides


JellyBean (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 Bean


Gestures
● 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 Bean


Magnification
● 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 Bean


Gestures
● 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 provides


Android 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 sensors

Read the Android Developer Guide for Sensors




                                                          Google Confidential and Proprietary
What framework provides
Google Play
● Paid apps in many Countries
● DCB

Developer Console
● Countries and currencies
● Auto Translate feature
● Statistics

Global accessibility
● i18n and l10n


Read the Android Developer Guide for Localization


                                             Google Confidential and Proprietary
What framework provides


Design recommendations
●   Navigation should be easy
●   Use recommended touch target sizes
●   Alternatives to time-out controls
●   Label UI elements meaningfully
    ○   Minimize Chatter
    ○   Provide feedback

Read the Android Design Guide for Accessibility




                                             Google Confidential and Proprietary
(demo)

         Google Confidential and Proprietary
Code changes for Accessibility


Labeling 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 View's description
   ○   Don't 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 Accessibility


Supporting 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 Accessibility


Supporting 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 Accessibility


For 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 for
Accessibility

For all Android apps
● Enable Accessibility features
    ○   Turn on TalkBack logging in
        Accessibility > TalkBack >
        Settings > Developer
        settings

● Android Lint tool




                                      Google Confidential and Proprietary
Summary


Must 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
Summary


Good to have:
● Augment audio-only prompts
    ○   Visual cues
    ○   Haptic feedback
●   Evaluate sensors
●   Add captions to videos
●   Follow UI guidelines
●   Reach globally

Read the Android Developer Guide for Accessibility




                                             Google Confidential and Proprietary
Thanks and Questions?


                Send feedback to:
                soniash@google.com

                     Google Confidential and Proprietary

Weitere Àhnliche Inhalte

Ähnlich wie Droidcon 2013 accessible android apps sharma_google

Using the Presentation API and external screens on Android
Using the Presentation API and external screens on AndroidUsing the Presentation API and external screens on Android
Using the Presentation API and external screens on Android
Xavier Hallade
 

Ähnlich wie Droidcon 2013 accessible android apps sharma_google (20)

Introduction to Cloud Computing and Google Cloud Platform.
Introduction to Cloud Computing and Google Cloud Platform.Introduction to Cloud Computing and Google Cloud Platform.
Introduction to Cloud Computing and Google Cloud Platform.
 
Java Meetup - 12-03-15 - Android Development Workshop
Java Meetup - 12-03-15 - Android Development WorkshopJava Meetup - 12-03-15 - Android Development Workshop
Java Meetup - 12-03-15 - Android Development Workshop
 
Getting started with cloud
Getting started with cloudGetting started with cloud
Getting started with cloud
 
A Kickstart to Google Cloud
A Kickstart to Google CloudA Kickstart to Google Cloud
A Kickstart to Google Cloud
 
Android Presentation By Ashok Kumar Pachauri
Android Presentation By Ashok Kumar PachauriAndroid Presentation By Ashok Kumar Pachauri
Android Presentation By Ashok Kumar Pachauri
 
Android Presentation By Ashok Kumar Pachauri
Android Presentation By Ashok Kumar PachauriAndroid Presentation By Ashok Kumar Pachauri
Android Presentation By Ashok Kumar Pachauri
 
GDCS - Introduction to Google Products and Technologies.pptx
GDCS - Introduction to Google Products and Technologies.pptxGDCS - Introduction to Google Products and Technologies.pptx
GDCS - Introduction to Google Products and Technologies.pptx
 
YouTube Mobile Webapp: On the edge of Html5
YouTube Mobile Webapp: On the edge of Html5YouTube Mobile Webapp: On the edge of Html5
YouTube Mobile Webapp: On the edge of Html5
 
Google Platform Overview (April 2014)
Google Platform Overview (April 2014)Google Platform Overview (April 2014)
Google Platform Overview (April 2014)
 
Using the Presentation API and external screens on Android
Using the Presentation API and external screens on AndroidUsing the Presentation API and external screens on Android
Using the Presentation API and external screens on Android
 
Android App Development - 01 Introduction
Android App Development - 01 IntroductionAndroid App Development - 01 Introduction
Android App Development - 01 Introduction
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump Start
 
Android workshop material
Android workshop materialAndroid workshop material
Android workshop material
 
Android App Development Using Android Studio
Android App Development Using Android StudioAndroid App Development Using Android Studio
Android App Development Using Android Studio
 
Android Training Course In Chandigarh
Android Training Course In ChandigarhAndroid Training Course In Chandigarh
Android Training Course In Chandigarh
 
Android
AndroidAndroid
Android
 
Cyanogen Platform SDK
Cyanogen Platform SDKCyanogen Platform SDK
Cyanogen Platform SDK
 
Google Developers Overview Deck 2015
Google Developers Overview Deck 2015Google Developers Overview Deck 2015
Google Developers Overview Deck 2015
 
Swift Online Training.pdf
Swift Online Training.pdfSwift Online Training.pdf
Swift Online Training.pdf
 
Swift Online Training.pdf
Swift Online Training.pdfSwift Online Training.pdf
Swift Online Training.pdf
 

Mehr von Droidcon Berlin

Droidcon de 2014 google cast
Droidcon de 2014   google castDroidcon de 2014   google cast
Droidcon de 2014 google cast
Droidcon Berlin
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limits
Droidcon Berlin
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility
Droidcon Berlin
 
Details matter in ux
Details matter in uxDetails matter in ux
Details matter in ux
Droidcon Berlin
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_back
Droidcon Berlin
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86
Droidcon Berlin
 
5 tips of monetization
5 tips of monetization5 tips of monetization
5 tips of monetization
Droidcon Berlin
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building Android
Droidcon Berlin
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentation
Droidcon Berlin
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3
Droidcon Berlin
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkrauss
Droidcon Berlin
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014
Droidcon Berlin
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014
Droidcon Berlin
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidcon
Droidcon Berlin
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devices
Droidcon Berlin
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
Droidcon Berlin
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicro
Droidcon Berlin
 

Mehr von Droidcon Berlin (20)

Droidcon de 2014 google cast
Droidcon de 2014   google castDroidcon de 2014   google cast
Droidcon de 2014 google cast
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limits
 
crashing in style
crashing in stylecrashing in style
crashing in style
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility
 
Details matter in ux
Details matter in uxDetails matter in ux
Details matter in ux
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_back
 
droidparts
droidpartsdroidparts
droidparts
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86
 
5 tips of monetization
5 tips of monetization5 tips of monetization
5 tips of monetization
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building Android
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentation
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkrauss
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidcon
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devices
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicro
 

KĂŒrzlich hochgeladen

FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
dollysharma2066
 
Russian Call Girls In Gurgaon ❀8448577510 âŠčBest Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❀8448577510 âŠčBest Escorts Service In 24/7 Delh...Russian Call Girls In Gurgaon ❀8448577510 âŠčBest Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❀8448577510 âŠčBest Escorts Service In 24/7 Delh...
lizamodels9
 
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
dlhescort
 
Chandigarh Escorts Service 📞8868886958📞 JustđŸ“Č Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 JustđŸ“Č Call Nihal Chandigarh Call Girl...Chandigarh Escorts Service 📞8868886958📞 JustđŸ“Č Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 JustđŸ“Č Call Nihal Chandigarh Call Girl...
Sheetaleventcompany
 
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
amitlee9823
 
Call Girls From Pari Chowk Greater Noida ❀8448577510 âŠčBest Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❀8448577510 âŠčBest Escorts Service I...Call Girls From Pari Chowk Greater Noida ❀8448577510 âŠčBest Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❀8448577510 âŠčBest Escorts Service I...
lizamodels9
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Dipal Arora
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usage
Matteo Carbone
 
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
amitlee9823
 

KĂŒrzlich hochgeladen (20)

FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMAN
 
Russian Call Girls In Gurgaon ❀8448577510 âŠčBest Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❀8448577510 âŠčBest Escorts Service In 24/7 Delh...Russian Call Girls In Gurgaon ❀8448577510 âŠčBest Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❀8448577510 âŠčBest Escorts Service In 24/7 Delh...
 
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
 
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
 
Chandigarh Escorts Service 📞8868886958📞 JustđŸ“Č Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 JustđŸ“Č Call Nihal Chandigarh Call Girl...Chandigarh Escorts Service 📞8868886958📞 JustđŸ“Č Call Nihal Chandigarh Call Girl...
Chandigarh Escorts Service 📞8868886958📞 JustđŸ“Č Call Nihal Chandigarh Call Girl...
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023
 
Famous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st CenturyFamous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st Century
 
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
 
Call Girls From Pari Chowk Greater Noida ❀8448577510 âŠčBest Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❀8448577510 âŠčBest Escorts Service I...Call Girls From Pari Chowk Greater Noida ❀8448577510 âŠčBest Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❀8448577510 âŠčBest Escorts Service I...
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptx
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and pains
 
Organizational Transformation Lead with Culture
Organizational Transformation Lead with CultureOrganizational Transformation Lead with Culture
Organizational Transformation Lead with Culture
 
Falcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in indiaFalcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in india
 
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service AvailableCall Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usage
 
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
 

Droidcon 2013 accessible android apps sharma_google

  • 1. Designing Accessible Android Applications April 9, 2013 Google Confidential and Proprietary
  • 2. Agenda ● What is accessibility? ● What features are available? ● How do you make your app accessible? ● Testing and Debugging Google Confidential and Proprietary
  • 4. 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
  • 5. What framework provides Donut (1.6) through Honeycomb (3.x) ● Spoken feedback through TextToSpeech APIs ● Modify your device's display and sound options ○ Large text ○ Change speed at which text is spoken ○ Disable screen rotation Ice Cream Sandwich (4.0) ● Touch exploration for devices without D-Pad ● Services can inspect view hierarchy Google Confidential and Proprietary
  • 6. What framework provides JellyBean (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
  • 7. What framework provides JellyBean (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
  • 8. Features in Jelly Bean Gestures ● 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
  • 9. Features in Jelly Bean Magnification ● Available in Android 4.2 ● Multiple zoom modes ○ Triple-tap to toggle ○ Triple-tap and hold for momentary zoom Google Confidential and Proprietary
  • 10. Features in Jelly Bean Gestures ● Quick shortcuts available in Global Context Menu ○ Pause feedback ○ Repeat/spell last utterance ○ TalkBack Settings Google Confidential and Proprietary
  • 11. (demo) Google Confidential and Proprietary
  • 12. What framework provides Android 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 sensors Read the Android Developer Guide for Sensors Google Confidential and Proprietary
  • 13. What framework provides Google Play ● Paid apps in many Countries ● DCB Developer Console ● Countries and currencies ● Auto Translate feature ● Statistics Global accessibility ● i18n and l10n Read the Android Developer Guide for Localization Google Confidential and Proprietary
  • 14. What framework provides Design recommendations ● Navigation should be easy ● Use recommended touch target sizes ● Alternatives to time-out controls ● Label UI elements meaningfully ○ Minimize Chatter ○ Provide feedback Read the Android Design Guide for Accessibility Google Confidential and Proprietary
  • 15. (demo) Google Confidential and Proprietary
  • 16. Code changes for Accessibility Labeling 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 View's description ○ Don't override getContentDescription() ● EditTexts should use android:hint Google Confidential and Proprietary
  • 17. <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
  • 18. Code changes for Accessibility Supporting 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
  • 19. <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
  • 20. Code changes for Accessibility Supporting 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
  • 21. (demo) Google Confidential and Proprietary
  • 22. 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
  • 23. Logical grouping and ordering Google Confidential and Proprietary
  • 24. 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
  • 25. Testing and Debugging for Accessibility For 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
  • 26. Testing and Debugging for Accessibility For all Android apps ● Enable Accessibility features ○ Turn on TalkBack logging in Accessibility > TalkBack > Settings > Developer settings ● Android Lint tool Google Confidential and Proprietary
  • 27. Summary Must 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
  • 28. Summary Good to have: ● Augment audio-only prompts ○ Visual cues ○ Haptic feedback ● Evaluate sensors ● Add captions to videos ● Follow UI guidelines ● Reach globally Read the Android Developer Guide for Accessibility Google Confidential and Proprietary
  • 29. Thanks and Questions? Send feedback to: soniash@google.com Google Confidential and Proprietary