SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a Droidcon 2013 accessible android apps sharma_google

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.vriddhigupta
 
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 WorkshopKasun Dananjaya Delgolla
 
Getting started with cloud
Getting started with cloudGetting started with cloud
Getting started with cloudpalakmantry
 
A Kickstart to Google Cloud
A Kickstart to Google CloudA Kickstart to Google Cloud
A Kickstart to Google CloudGDSCDJSCE
 
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.pptxGoogleDeveloperStude25
 
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 Html5SMART DevNet
 
Google Platform Overview (April 2014)
Google Platform Overview (April 2014)Google Platform Overview (April 2014)
Google Platform Overview (April 2014)Ido Green
 
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 AndroidXavier Hallade
 
Android App Development - 01 Introduction
Android App Development - 01 IntroductionAndroid App Development - 01 Introduction
Android App Development - 01 IntroductionDiego Grancini
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump StartHaim Michael
 
Android workshop material
Android workshop materialAndroid workshop material
Android workshop materialReza Yogaswara
 
Android App Development Using Android Studio
Android App Development Using Android StudioAndroid App Development Using Android Studio
Android App Development Using Android StudioHMRai
 
Android Training Course In Chandigarh
Android Training Course In ChandigarhAndroid Training Course In Chandigarh
Android Training Course In ChandigarhExcellence Academy
 
Cyanogen Platform SDK
Cyanogen Platform SDKCyanogen Platform SDK
Cyanogen Platform SDKAdnan Begovic
 

Similar a 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
 

Más de Droidcon Berlin

Droidcon de 2014 google cast
Droidcon de 2014   google castDroidcon de 2014   google cast
Droidcon de 2014 google castDroidcon Berlin
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limitsDroidcon Berlin
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility 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_backDroidcon Berlin
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86Droidcon Berlin
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building AndroidDroidcon Berlin
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentationDroidcon Berlin
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Droidcon Berlin
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkraussDroidcon Berlin
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014Droidcon Berlin
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Droidcon Berlin
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidconDroidcon Berlin
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devicesDroidcon 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 deliradioDroidcon Berlin
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon Berlin
 

Más de 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
 

Último

VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130  Available With RoomVIP Kolkata Call Girl Howrah 👉 8250192130  Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Roomdivyansh0kumar0
 
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...Roland Driesen
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒anilsa9823
 
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 / WOMANIlamathiKannappan
 
RE Capital's Visionary Leadership under Newman Leech
RE Capital's Visionary Leadership under Newman LeechRE Capital's Visionary Leadership under Newman Leech
RE Capital's Visionary Leadership under Newman LeechNewman George Leech
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayNZSG
 
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurSuhani Kapoor
 
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 AvailableDipal Arora
 
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...lizamodels9
 
Cash Payment 9602870969 Escort Service in Udaipur Call Girls
Cash Payment 9602870969 Escort Service in Udaipur Call GirlsCash Payment 9602870969 Escort Service in Udaipur Call Girls
Cash Payment 9602870969 Escort Service in Udaipur Call GirlsApsara Of India
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation SlidesKeppelCorporation
 
Eni 2024 1Q Results - 24.04.24 business.
Eni 2024 1Q Results - 24.04.24 business.Eni 2024 1Q Results - 24.04.24 business.
Eni 2024 1Q Results - 24.04.24 business.Eni
 
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetCreating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetDenis Gagné
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfPaul Menig
 
The CMO Survey - Highlights and Insights Report - Spring 2024
The CMO Survey - Highlights and Insights Report - Spring 2024The CMO Survey - Highlights and Insights Report - Spring 2024
The CMO Survey - Highlights and Insights Report - Spring 2024christinemoorman
 
Catalogue ONG NƯỚC uPVC - HDPE DE NHAT.pdf
Catalogue ONG NƯỚC uPVC - HDPE DE NHAT.pdfCatalogue ONG NƯỚC uPVC - HDPE DE NHAT.pdf
Catalogue ONG NƯỚC uPVC - HDPE DE NHAT.pdfOrient Homes
 
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis:  Simple Linear Regression Multiple Linear RegressionRegression analysis:  Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear RegressionRavindra Nath Shukla
 
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 2023Neil Kimberley
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth MarketingShawn Pang
 

Último (20)

VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130  Available With RoomVIP Kolkata Call Girl Howrah 👉 8250192130  Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Room
 
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...
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
 
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
 
RE Capital's Visionary Leadership under Newman Leech
RE Capital's Visionary Leadership under Newman LeechRE Capital's Visionary Leadership under Newman Leech
RE Capital's Visionary Leadership under Newman Leech
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 May
 
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
 
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 In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
 
Cash Payment 9602870969 Escort Service in Udaipur Call Girls
Cash Payment 9602870969 Escort Service in Udaipur Call GirlsCash Payment 9602870969 Escort Service in Udaipur Call Girls
Cash Payment 9602870969 Escort Service in Udaipur Call Girls
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
 
Eni 2024 1Q Results - 24.04.24 business.
Eni 2024 1Q Results - 24.04.24 business.Eni 2024 1Q Results - 24.04.24 business.
Eni 2024 1Q Results - 24.04.24 business.
 
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetCreating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdf
 
The CMO Survey - Highlights and Insights Report - Spring 2024
The CMO Survey - Highlights and Insights Report - Spring 2024The CMO Survey - Highlights and Insights Report - Spring 2024
The CMO Survey - Highlights and Insights Report - Spring 2024
 
Catalogue ONG NƯỚC uPVC - HDPE DE NHAT.pdf
Catalogue ONG NƯỚC uPVC - HDPE DE NHAT.pdfCatalogue ONG NƯỚC uPVC - HDPE DE NHAT.pdf
Catalogue ONG NƯỚC uPVC - HDPE DE NHAT.pdf
 
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis:  Simple Linear Regression Multiple Linear RegressionRegression analysis:  Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear Regression
 
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
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
 
Forklift Operations: Safety through Cartoons
Forklift Operations: Safety through CartoonsForklift Operations: Safety through Cartoons
Forklift Operations: Safety through Cartoons
 

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