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
 
Cyanogen Platform SDK
Cyanogen Platform SDKCyanogen Platform SDK
Cyanogen Platform SDKAdnan Begovic
 
Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016GDG Korea
 
Android App Development 01 : Getting Start
Android App Development 01 : Getting StartAndroid App Development 01 : Getting Start
Android App Development 01 : Getting StartAnuchit Chalothorn
 

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
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
 
Android things intro
Android things introAndroid things intro
Android things intro
 
Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016
 
Android App Development 01 : Getting Start
Android App Development 01 : Getting StartAndroid App Development 01 : Getting Start
Android App Development 01 : Getting Start
 

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

Q2 2024 APCO Geopolitical Radar - The Global Operating Environment for Business
Q2 2024 APCO Geopolitical Radar - The Global Operating Environment for BusinessQ2 2024 APCO Geopolitical Radar - The Global Operating Environment for Business
Q2 2024 APCO Geopolitical Radar - The Global Operating Environment for BusinessAPCO
 
PDT 89 - $1.4M - Seed - Plantee Innovations.pdf
PDT 89 - $1.4M - Seed - Plantee Innovations.pdfPDT 89 - $1.4M - Seed - Plantee Innovations.pdf
PDT 89 - $1.4M - Seed - Plantee Innovations.pdfHajeJanKamps
 
IIBA® Melbourne - Navigating Business Analysis - Excellence for Career Growth...
IIBA® Melbourne - Navigating Business Analysis - Excellence for Career Growth...IIBA® Melbourne - Navigating Business Analysis - Excellence for Career Growth...
IIBA® Melbourne - Navigating Business Analysis - Excellence for Career Growth...AustraliaChapterIIBA
 
Fabric RFID Wristbands in Ireland for Events and Festivals
Fabric RFID Wristbands in Ireland for Events and FestivalsFabric RFID Wristbands in Ireland for Events and Festivals
Fabric RFID Wristbands in Ireland for Events and FestivalsWristbands Ireland
 
UNLEASHING THE POWER OF PROGRAMMATIC ADVERTISING
UNLEASHING THE POWER OF PROGRAMMATIC ADVERTISINGUNLEASHING THE POWER OF PROGRAMMATIC ADVERTISING
UNLEASHING THE POWER OF PROGRAMMATIC ADVERTISINGlokeshwarmaha
 
Upgrade Your Banking Experience with Advanced Core Banking Applications
Upgrade Your Banking Experience with Advanced Core Banking ApplicationsUpgrade Your Banking Experience with Advanced Core Banking Applications
Upgrade Your Banking Experience with Advanced Core Banking ApplicationsIntellect Design Arena Ltd
 
PDT 88 - 4 million seed - Seed - Protecto.pdf
PDT 88 - 4 million seed - Seed - Protecto.pdfPDT 88 - 4 million seed - Seed - Protecto.pdf
PDT 88 - 4 million seed - Seed - Protecto.pdfHajeJanKamps
 
Entrepreneurship & organisations: influences and organizations
Entrepreneurship & organisations: influences and organizationsEntrepreneurship & organisations: influences and organizations
Entrepreneurship & organisations: influences and organizationsP&CO
 
Talent Management research intelligence_13 paradigm shifts_20 March 2024.pdf
Talent Management research intelligence_13 paradigm shifts_20 March 2024.pdfTalent Management research intelligence_13 paradigm shifts_20 March 2024.pdf
Talent Management research intelligence_13 paradigm shifts_20 March 2024.pdfCharles Cotter, PhD
 
BCE24 | Virtual Brand Ambassadors: Making Brands Personal - John Meulemans
BCE24 | Virtual Brand Ambassadors: Making Brands Personal - John MeulemansBCE24 | Virtual Brand Ambassadors: Making Brands Personal - John Meulemans
BCE24 | Virtual Brand Ambassadors: Making Brands Personal - John MeulemansBBPMedia1
 
Anyhr.io | Presentation HR&Recruiting agency
Anyhr.io | Presentation HR&Recruiting agencyAnyhr.io | Presentation HR&Recruiting agency
Anyhr.io | Presentation HR&Recruiting agencyHanna Klim
 
Plano de marketing- inglês em formato ppt
Plano de marketing- inglês  em formato pptPlano de marketing- inglês  em formato ppt
Plano de marketing- inglês em formato pptElizangelaSoaresdaCo
 
TalentView Webinar: Empowering the Modern Workforce_ Redefininig Success from...
TalentView Webinar: Empowering the Modern Workforce_ Redefininig Success from...TalentView Webinar: Empowering the Modern Workforce_ Redefininig Success from...
TalentView Webinar: Empowering the Modern Workforce_ Redefininig Success from...TalentView
 
Building Your Personal Brand on LinkedIn - Expert Planet- 2024
 Building Your Personal Brand on LinkedIn - Expert Planet-  2024 Building Your Personal Brand on LinkedIn - Expert Planet-  2024
Building Your Personal Brand on LinkedIn - Expert Planet- 2024Stephan Koning
 
The Vietnam Believer Newsletter_MARCH 25, 2024_EN_Vol. 003
The Vietnam Believer Newsletter_MARCH 25, 2024_EN_Vol. 003The Vietnam Believer Newsletter_MARCH 25, 2024_EN_Vol. 003
The Vietnam Believer Newsletter_MARCH 25, 2024_EN_Vol. 003believeminhh
 
Cracking the ‘Business Process Outsourcing’ Code Main.pptx
Cracking the ‘Business Process Outsourcing’ Code Main.pptxCracking the ‘Business Process Outsourcing’ Code Main.pptx
Cracking the ‘Business Process Outsourcing’ Code Main.pptxWorkforce Group
 
MoneyBridge Pitch Deck - Investor Presentation
MoneyBridge Pitch Deck - Investor PresentationMoneyBridge Pitch Deck - Investor Presentation
MoneyBridge Pitch Deck - Investor Presentationbaron83
 
AMAZON SELLER VIRTUAL ASSISTANT PRODUCT RESEARCH .pdf
AMAZON SELLER VIRTUAL ASSISTANT PRODUCT RESEARCH .pdfAMAZON SELLER VIRTUAL ASSISTANT PRODUCT RESEARCH .pdf
AMAZON SELLER VIRTUAL ASSISTANT PRODUCT RESEARCH .pdfJohnCarloValencia4
 
Graham and Doddsville - Issue 1 - Winter 2006 (1).pdf
Graham and Doddsville - Issue 1 - Winter 2006 (1).pdfGraham and Doddsville - Issue 1 - Winter 2006 (1).pdf
Graham and Doddsville - Issue 1 - Winter 2006 (1).pdfAnhNguyen97152
 

Último (20)

Q2 2024 APCO Geopolitical Radar - The Global Operating Environment for Business
Q2 2024 APCO Geopolitical Radar - The Global Operating Environment for BusinessQ2 2024 APCO Geopolitical Radar - The Global Operating Environment for Business
Q2 2024 APCO Geopolitical Radar - The Global Operating Environment for Business
 
PDT 89 - $1.4M - Seed - Plantee Innovations.pdf
PDT 89 - $1.4M - Seed - Plantee Innovations.pdfPDT 89 - $1.4M - Seed - Plantee Innovations.pdf
PDT 89 - $1.4M - Seed - Plantee Innovations.pdf
 
IIBA® Melbourne - Navigating Business Analysis - Excellence for Career Growth...
IIBA® Melbourne - Navigating Business Analysis - Excellence for Career Growth...IIBA® Melbourne - Navigating Business Analysis - Excellence for Career Growth...
IIBA® Melbourne - Navigating Business Analysis - Excellence for Career Growth...
 
Fabric RFID Wristbands in Ireland for Events and Festivals
Fabric RFID Wristbands in Ireland for Events and FestivalsFabric RFID Wristbands in Ireland for Events and Festivals
Fabric RFID Wristbands in Ireland for Events and Festivals
 
UNLEASHING THE POWER OF PROGRAMMATIC ADVERTISING
UNLEASHING THE POWER OF PROGRAMMATIC ADVERTISINGUNLEASHING THE POWER OF PROGRAMMATIC ADVERTISING
UNLEASHING THE POWER OF PROGRAMMATIC ADVERTISING
 
Upgrade Your Banking Experience with Advanced Core Banking Applications
Upgrade Your Banking Experience with Advanced Core Banking ApplicationsUpgrade Your Banking Experience with Advanced Core Banking Applications
Upgrade Your Banking Experience with Advanced Core Banking Applications
 
PDT 88 - 4 million seed - Seed - Protecto.pdf
PDT 88 - 4 million seed - Seed - Protecto.pdfPDT 88 - 4 million seed - Seed - Protecto.pdf
PDT 88 - 4 million seed - Seed - Protecto.pdf
 
Entrepreneurship & organisations: influences and organizations
Entrepreneurship & organisations: influences and organizationsEntrepreneurship & organisations: influences and organizations
Entrepreneurship & organisations: influences and organizations
 
Talent Management research intelligence_13 paradigm shifts_20 March 2024.pdf
Talent Management research intelligence_13 paradigm shifts_20 March 2024.pdfTalent Management research intelligence_13 paradigm shifts_20 March 2024.pdf
Talent Management research intelligence_13 paradigm shifts_20 March 2024.pdf
 
BCE24 | Virtual Brand Ambassadors: Making Brands Personal - John Meulemans
BCE24 | Virtual Brand Ambassadors: Making Brands Personal - John MeulemansBCE24 | Virtual Brand Ambassadors: Making Brands Personal - John Meulemans
BCE24 | Virtual Brand Ambassadors: Making Brands Personal - John Meulemans
 
Anyhr.io | Presentation HR&Recruiting agency
Anyhr.io | Presentation HR&Recruiting agencyAnyhr.io | Presentation HR&Recruiting agency
Anyhr.io | Presentation HR&Recruiting agency
 
Plano de marketing- inglês em formato ppt
Plano de marketing- inglês  em formato pptPlano de marketing- inglês  em formato ppt
Plano de marketing- inglês em formato ppt
 
TalentView Webinar: Empowering the Modern Workforce_ Redefininig Success from...
TalentView Webinar: Empowering the Modern Workforce_ Redefininig Success from...TalentView Webinar: Empowering the Modern Workforce_ Redefininig Success from...
TalentView Webinar: Empowering the Modern Workforce_ Redefininig Success from...
 
Building Your Personal Brand on LinkedIn - Expert Planet- 2024
 Building Your Personal Brand on LinkedIn - Expert Planet-  2024 Building Your Personal Brand on LinkedIn - Expert Planet-  2024
Building Your Personal Brand on LinkedIn - Expert Planet- 2024
 
The Vietnam Believer Newsletter_MARCH 25, 2024_EN_Vol. 003
The Vietnam Believer Newsletter_MARCH 25, 2024_EN_Vol. 003The Vietnam Believer Newsletter_MARCH 25, 2024_EN_Vol. 003
The Vietnam Believer Newsletter_MARCH 25, 2024_EN_Vol. 003
 
Cracking the ‘Business Process Outsourcing’ Code Main.pptx
Cracking the ‘Business Process Outsourcing’ Code Main.pptxCracking the ‘Business Process Outsourcing’ Code Main.pptx
Cracking the ‘Business Process Outsourcing’ Code Main.pptx
 
MoneyBridge Pitch Deck - Investor Presentation
MoneyBridge Pitch Deck - Investor PresentationMoneyBridge Pitch Deck - Investor Presentation
MoneyBridge Pitch Deck - Investor Presentation
 
AMAZON SELLER VIRTUAL ASSISTANT PRODUCT RESEARCH .pdf
AMAZON SELLER VIRTUAL ASSISTANT PRODUCT RESEARCH .pdfAMAZON SELLER VIRTUAL ASSISTANT PRODUCT RESEARCH .pdf
AMAZON SELLER VIRTUAL ASSISTANT PRODUCT RESEARCH .pdf
 
Graham and Doddsville - Issue 1 - Winter 2006 (1).pdf
Graham and Doddsville - Issue 1 - Winter 2006 (1).pdfGraham and Doddsville - Issue 1 - Winter 2006 (1).pdf
Graham and Doddsville - Issue 1 - Winter 2006 (1).pdf
 
WAM Corporate Presentation Mar 25 2024.pdf
WAM Corporate Presentation Mar 25 2024.pdfWAM Corporate Presentation Mar 25 2024.pdf
WAM Corporate Presentation Mar 25 2024.pdf
 

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