SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante 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
 

Semelhante 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
 

Mais 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
 

Mais 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

Call Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any TimeCall Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any Timedelhimodelshub1
 
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
 
Kenya’s Coconut Value Chain by Gatsby Africa
Kenya’s Coconut Value Chain by Gatsby AfricaKenya’s Coconut Value Chain by Gatsby Africa
Kenya’s Coconut Value Chain by Gatsby Africaictsugar
 
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...lizamodels9
 
8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCR8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCRashishs7044
 
Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03DallasHaselhorst
 
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,noida100girls
 
2024 Numerator Consumer Study of Cannabis Usage
2024 Numerator Consumer Study of Cannabis Usage2024 Numerator Consumer Study of Cannabis Usage
2024 Numerator Consumer Study of Cannabis UsageNeil Kimberley
 
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...lizamodels9
 
Organizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessOrganizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessSeta Wicaksana
 
Market Sizes Sample Report - 2024 Edition
Market Sizes Sample Report - 2024 EditionMarket Sizes Sample Report - 2024 Edition
Market Sizes Sample Report - 2024 EditionMintel Group
 
Case study on tata clothing brand zudio in detail
Case study on tata clothing brand zudio in detailCase study on tata clothing brand zudio in detail
Case study on tata clothing brand zudio in detailAriel592675
 
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCRashishs7044
 
8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCR8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCRashishs7044
 
Global Scenario On Sustainable and Resilient Coconut Industry by Dr. Jelfina...
Global Scenario On Sustainable  and Resilient Coconut Industry by Dr. Jelfina...Global Scenario On Sustainable  and Resilient Coconut Industry by Dr. Jelfina...
Global Scenario On Sustainable and Resilient Coconut Industry by Dr. Jelfina...ictsugar
 
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCRashishs7044
 
Marketplace and Quality Assurance Presentation - Vincent Chirchir
Marketplace and Quality Assurance Presentation - Vincent ChirchirMarketplace and Quality Assurance Presentation - Vincent Chirchir
Marketplace and Quality Assurance Presentation - Vincent Chirchirictsugar
 
Buy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy Verified Accounts
 
Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Seta Wicaksana
 
Islamabad Escorts | Call 03070433345 | Escort Service in Islamabad
Islamabad Escorts | Call 03070433345 | Escort Service in IslamabadIslamabad Escorts | Call 03070433345 | Escort Service in Islamabad
Islamabad Escorts | Call 03070433345 | Escort Service in IslamabadAyesha Khan
 

Último (20)

Call Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any TimeCall Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any Time
 
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
 
Kenya’s Coconut Value Chain by Gatsby Africa
Kenya’s Coconut Value Chain by Gatsby AfricaKenya’s Coconut Value Chain by Gatsby Africa
Kenya’s Coconut Value Chain by Gatsby Africa
 
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
 
8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCR8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCR
 
Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03
 
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
 
2024 Numerator Consumer Study of Cannabis Usage
2024 Numerator Consumer Study of Cannabis Usage2024 Numerator Consumer Study of Cannabis Usage
2024 Numerator Consumer Study of Cannabis Usage
 
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
 
Organizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessOrganizational Structure Running A Successful Business
Organizational Structure Running A Successful Business
 
Market Sizes Sample Report - 2024 Edition
Market Sizes Sample Report - 2024 EditionMarket Sizes Sample Report - 2024 Edition
Market Sizes Sample Report - 2024 Edition
 
Case study on tata clothing brand zudio in detail
Case study on tata clothing brand zudio in detailCase study on tata clothing brand zudio in detail
Case study on tata clothing brand zudio in detail
 
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
 
8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCR8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCR
 
Global Scenario On Sustainable and Resilient Coconut Industry by Dr. Jelfina...
Global Scenario On Sustainable  and Resilient Coconut Industry by Dr. Jelfina...Global Scenario On Sustainable  and Resilient Coconut Industry by Dr. Jelfina...
Global Scenario On Sustainable and Resilient Coconut Industry by Dr. Jelfina...
 
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
 
Marketplace and Quality Assurance Presentation - Vincent Chirchir
Marketplace and Quality Assurance Presentation - Vincent ChirchirMarketplace and Quality Assurance Presentation - Vincent Chirchir
Marketplace and Quality Assurance Presentation - Vincent Chirchir
 
Buy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail Accounts
 
Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...
 
Islamabad Escorts | Call 03070433345 | Escort Service in Islamabad
Islamabad Escorts | Call 03070433345 | Escort Service in IslamabadIslamabad Escorts | Call 03070433345 | Escort Service in Islamabad
Islamabad Escorts | Call 03070433345 | Escort Service in Islamabad
 

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