SlideShare a Scribd company logo
1 of 58
Download to read offline
Mobile Accessibility




                             Accessibility Camp - Toronto, 2012
                               Ted Drake, Intuit Accessibility
Saturday, November 17, 12

Hurdle race on snowshoes, Montreal, QC, 1892
•      This presentation:
               Slideshare.net/7mary4

        •      Photos from Flickr Commons




Saturday, November 17, 12

Wrestlers, McGill boxing, wrestling and fencing club, Montreal, 1925
Screen Reader




Saturday, November 17, 12

Screen readers are more than a text to speech engine.
They analyze the page/screen and create their own version of the structure. which allows the user to navigate via headers, form
inputs, landmarks, etc.
Popular screen readers are Narrator for windows 8, VoiceOver for Mac, TalkBack and ChromeVox for Android.
JAWS and NVDA are for windows desktop and should be available for Win8 mobile tablet.

Plastic sneeuwstormbeschermer / Face protection from snowstorms
Saturday, November 17, 12

Screen readers work like a tasty batch of Poutine.
Poutine!
Poutine Readers

                                      Gravy

                                      Curds

                                      Taters

Saturday, November 17, 12

Screen readers, such as VoiceOver, TalkBack, and Narrator have three layers
The application sits on the bottom. The screen reader sits on top of this, like the curds. The
gravy is the user.
The screen reader interprets the input from gravy and output of the taters.
For automated testing, replace the gravy with software that recreates a user’s expectations.
Braille




Saturday, November 17, 12

Young woman and man braille reading on park bench http://www.flickr.com/photos/
center_for_jewish_history/4926954971/
Braille is a tactile alphabet for reading. Refreshable braille displays allow users to interact
with their mobile devices via bluetooth. iOS and Android’s Jellybean support braille output.
Cognitive Disabilities




Saturday, November 17, 12
The direct interaction between finger and input has made mobile devices accessible to those with cognitive disabilities. Apps, such as schedule reminders, help
those with memory loss due to traumatic brain injury.

Guided Access for iOS6 allows the user to focus on using only one app at a time. Good for ADD and cognitive disabilities.

Mobile apps in general are more focused and task oriented.

"Old Woman in a Shoe", from the Mother Goose Nursery Rhymes, Montreal, 1866-67
Low
                Vision


Saturday, November 17, 12

Ice mask, C.T. Madigan, between 1911-1914 / photograph by Frank Hurley http://www.flickr.com/photos/statelibraryofnsw/
2963668712/

The following slide is an interview with Karo Caran about using the iPad with low vision.
Saturday, November 17, 12
Saturday, November 17, 12
Assistive Communication
Saturday, November 17, 12

this child uses Proloque2Go to communicate with his parents. This app uses icons to build
sentences and speak for the user. This replaces bulky, fragile equipment that can cost over
$4,000
http://www.youtube.com/watch?v=Tp2ROyyyqjo Toddler with apraxia Asking for Cheese and Cracker on Ipad with Proloquo2Go and ASL
Assistive Communication
Saturday, November 17, 12

this child uses Proloque2Go to communicate with his parents. This app uses icons to build
sentences and speak for the user. This replaces bulky, fragile equipment that can cost over
$4,000
http://www.youtube.com/watch?v=Tp2ROyyyqjo Toddler with apraxia Asking for Cheese and Cracker on Ipad with Proloquo2Go and ASL
Alternate Inputs




Saturday, November 17, 12

Braille displays, single switches, and other alternative inputs can be enabled with mobile devices. Often times, the
mobile device becomes the alternate input for other technology. iOS AssistiveTouch provides enhanced control of
this functionality

High skates, copied for Captain J. Miner, 1870
iOS - Android - Win8 - HTML5




Saturday, November 17, 12

Gymnastic group, Trafalgar School, Montreal, QC, 1933-35
iOS



Saturday, November 17, 12
LSE Sports Day, Apple Bobbing, May 1932 http://www.flickr.com/photos/lselibrary/4166786914/

Accessibility features are baked into every Apple device. VoiceOver is the core engine for translating user interactions between the app and the assistive
technology.
VoiceOver




Saturday, November 17, 12

VoiceOver is more than a screen reader. It’s a layer that acts as a middle layer between the user and app. It interprets gestures and
content.

It also can be used by automated testing to replace the user with scripts. Accessibility -> automated testing

Erik Bye og Otto Nilsen i radio studio 13. mars 1958. - http://www.flickr.com/photos/national_archives_of_norway/5476890757/
Hearing




Saturday, November 17, 12
Apple is now certifying hearing aids to provide digital audio experience and minimal radio interference
some apps are now using the phone to detect sound and act as “ears” for users.
Skype, face to face and other apps allow people to communicate via sign language
Royal Bank Branch, Notre Dame Street, Montreal, QC, 1911
Guided Access




Saturday, November 17, 12
Guided Access allows the user to close off certain parts of apps to minimize distractions. This is useful for autism, ADD, and classrooms to keep people focused on
a single task and away from angry birds.

Snowshoeing Indian file, Mount Royal, Montreal, QC, 1879
Android




Saturday, November 17, 12

Department Store Toy Display




http://developer.android.com/guide/topics/ui/accessibility/apps.html
Before
                  Ice Cream
                  Sandwich


Saturday, November 17, 12

http://www.flickr.com/photos/field_museum_library/3405449492/in/photostream/ Girl dressed like a bee
74% of users are still on pre-ICS phones.
Honeycomb and other pre-ICS versions have minimal accessibility support. DPad focus control is critical. Making your app
accessible fortunately helps all versions.
Ice
             Cream
             Sandwich

Saturday, November 17, 12

Members of the Donald Dannheim Family Who Operate a Dairy and Ice Cream Store - http://www.flickr.com/photos/usnationalarchives/
4727559500/

ICS introduced touch navigation, web view, voice input, and font resizing
http://developer.android.com/about/versions/android-4.0-highlights.html
Jelly Bean




Saturday, November 17, 12

JB introduced gesture support and accessibility focus management, braille support, accessibility node APIs for custom views.
Voice activated search is more powerful. http://developer.android.com/about/versions/jelly-bean.html

JB 4.2.2 introduces ability to enable/disable Talkback without sighted assistance, read full screen, and three finger tap for
zooming.

Two ladies in swimming costumes in the "Greasy Pole" competition aboard the 'Empress of Canada'
Saturday, November 17, 12

This short video shows the accessibility improvements for Jelly Bean 4.2.
These include zooming and TalkBack shortcut.
http://www.youtube.com/watch?v=LEQHyc3NMGc
Windows 8




Saturday, November 17, 12

Narrator provides touch navigation and many gestures. Zooming is built in. Should be able to install NVDA or JAWS
on tablets. Easy to enable/disable.
Uses UI Automation as the accessibility layer
http://windows.microsoft.com/en-US/windows-8/hear-text-read-aloud-with-narrator
Gymnastic group, Montreal, QC, 1891
Saturday, November 17, 12

This video shows how to enable Narrator with shortcut keys. It also shows how the basic
gestures work.
Unfortunately, it wasn’t as easy as you’d hope.
Mobile Web




Saturday, November 17, 12

Audio, Video, HTML5 form types, ARIA,
HTML5 web sites generally work well with mobile devices.
Don’t overload with -webkit prefixes. Remember there will be other browsers (firefox, ie10)
Expo 67
Get To Work
Saturday, November 17, 12

Unloading S.S "Durham City", Montreal, QC, 1896
Focus Control




Saturday, November 17, 12

Every action item in your app must be focusable and clickable.
Flickr photo app for iOS. Currently the rows are focusable, but not the individual thumbnails.
iOS
                      isAccessibilityElement
          // if a UIView implements the container
          protocol, it cannot be an accessible
          element
          - (BOOL)isAccessibilityElement
          {
              return NO;
          }

Saturday, November 17, 12

isAccessibility defines which elements are subject to focus. This is set by default for buttons
and other actionable items. it needs to be configured with custom containers.
Don’t set the parent to YES if there are actionable children.
http://yaccessibilityblog.com/library/isaccessibility-ios-app.html
Saturday, November 17, 12

This video shows the custom view used for a selector within Quickbooks Mobile. It’s the only
thing that fails in this application.
Saturday, November 17, 12

This video shows the custom view used for a selector within Quickbooks Mobile. It’s the only
thing that fails in this application.
Android
         setFocusable() | isFocusable() | requestFocus()


            <RelativeLayout
              android:id="@+id/row_type"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_margin="2dp"
                  android:focusable="true"                                >




Saturday, November 17, 12

Test your app by using a bluetooth keyboard. Can you access everything?
Use the focus functions or set focusable at the layout level.
Unfocused Content




Saturday, November 17, 12

This video shows an android app that has not set focusable on the elements. The entire
container is read as a single string.
HTML5
                            <a> & <button>
        Best:
        <button>Share This</button>

        Good:
        <a href=”#sharethis” role=”button”>Share
        This</a>

        Works, but avoid:
        <div role=”button” tabindex=”0”>Share
        This</div>
Saturday, November 17, 12

Use the a for links. Use button for actions.
use role=”button” if you need to use a link to trigger an action.
use tabindex=”0” on non-links or buttons, such as a div.
tabindex=”-1” allows an item to receive focus via JS, but is not in the normal tab flow.
the javascript for div will still need to recognize the onclick event, not mouse events.
HTML
                                     focus()
     <div id="cb" role="checkbox"> Spam</div>

     var checkbox =
         document.getElementById('cb');

     checkbox.tabIndex = 0; // make the div
     focusable

     checkbox.focus();

Saturday, November 17, 12

set focus with JavaScript
This is the same approach needed to let the user know a portion of the screen has changed.
For instance, if a dropdown menu appears, place focus on the first link.
Don’t Touch

                 •touchstart
                 •touchend
                 •touchmove
                 •touchcancel




Saturday, November 17, 12

  •   Screen readers intercept the touch events. You cannot depend on these events. You must provide alternate buttons.
  •   JellyBean theoretically works by letting two fingers be interpreted as a single touch
  •   iOS provides a gesture event, but it is not supported on other devices.
  •   Finger is placed on the screen
  •   Finger is removed from the screen
  •   Finger is moved across the screen
  •   Touch is cancelled before the finger is actually removed from the screen
  •   Kersthazen voor verkeersagent http://www.flickr.com/photos/nationaalarchief/3118323158/
Labels and Descriptions




Saturday, November 17, 12

Every non-standard button needs a label
Make sure concatenated content includes all information and it is easily understood.
Custom Buttons




Saturday, November 17, 12

This short video shows how the buttons are not labeled on the Southwest Airlines app. Sadly,
this video is almost two years old and the app is still missing labels.
http://www.youtube.com/watch?v=StI0iIufJzk
Custom Buttons




Saturday, November 17, 12

This short video shows how the buttons are not labeled on the Southwest Airlines app. Sadly,
this video is almost two years old and the app is still missing labels.
http://www.youtube.com/watch?v=StI0iIufJzk
iOS
        accessibilityLabel | accessibilityHint

   quantity.accessibilityLabel =
          @”Quantity”;
   quantity.accessibilityHint =
          @”Increase desired quantity.”;




Saturday, November 17, 12
accessibilityLabel : A string that succinctly identifies the accessibility element.

accessibilityHint: A string that briefly describes the result of performing an action on the accessibility element.

These can be set in Interface builder as well.

https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIAccessibilityElement_Class/Reference/Reference.html
Android
                            contentDescription
                       <ImageView
                         android:id="@+id/local_deals"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_margin="16dp"
                            android:contentDescription=
                                    "@string/local_deals"
                            android:focusable="true"
                            android:src="@drawable/ic_menu_local" />




Saturday, November 17, 12

use contentDescription to provide labels for Android devices.
use android:contentDescription = “@null”; for images that should be ignored.
For EditText fields, provide an android:hint attribute instead of a content description, to help users understand what content is expected
when the text field is empty. When the field is filled, TalkBack reads the entered content to the user, instead of the hint text.
HTML
         <img alt=”GoPayment” ...>

         <label for=”name”>Name</label>

         <input title=”Search”...>

         <input aria-label=”Area Code”
         aria-describedby=”phoneError” ...>


Saturday, November 17, 12

Use basic, semantic HTML first.
title attribute on input can work if you want to hide the label
aria-label works well when breaking up the text inputs
aria-describedby points to a text container that describes the input, such as an error
message.
Dynamic Values




Saturday, November 17, 12

When the user changes the quantity on this invoice, we want the user to know the subtitle
has also changed. This is a common pattern where there are dynamic changes to a screen
and we need to notify the user. This could also be for a dialog window, expanded menu, etc.
iOS
                 UIAccessibilityPostNotification
      -(void)helpDidClose:(ZBEHelpView *)view
      {
           [helpView removeFromSuperview];
           helpView = nil;
           [self unease];

           UIAccessibilityPostNotification (
                UIAccessibilityScreenChangedNotification,
                statusView);
                // statusView instead of nil tells this where to
      place the focus.
      }


Saturday, November 17, 12

iOS6 allows you to notify a screen has changed, and place focus on that element.
use UIAccessibilityLayoutChangedNotification for small changes

See WWDC 2012 Accessibility for iOS for the demo of this code https://developer.apple.com/videos/wwdc/2012/
#210
Android
                                   AccessibilityEvent
        private void announceForAccessibilityCompat(CharSequence text) {
               if (!mA11yManager.isEnabled()) {
                   return;
               }

                      final int eventType;
                      if (Build.VERSION.SDK_INT < 16) {
                          eventType = AccessibilityEvent.TYPE_VIEW_FOCUSED;
                      } else {
                          eventType = AccessibilityEventCompat.TYPE_ANNOUNCEMENT;
                      }

                      final AccessibilityEvent event =
                          AccessibilityEvent.obtain(eventType);
                      event.getText().add(text);
                      event.setClassName(AccessibleCanvas.class.getName());
                      event.setPackageName(mContext.getPackageName());

                      mA11yManager.sendAccessibilityEvent(event);
              }


Saturday, November 17, 12

an AccessibilityEvent is created whenever you select an item or change focus in your UI.
more info: http://developer.android.com/training/accessibility/accessible-app.html#events

use announceForAccessibilityCompat to get built in backwards compatibility
Google has provided a great package of inaccessible/accessible code to learn more.
https://code.google.com/p/eyes-­‐free/downloads/detail?name=accessibility_codelab_demos_v2_src.zip
HTML
                                     aria-live


       <div aria-live=”polite”>
           Total is $5.10
       </div>



Saturday, November 17, 12

aria-live alerts the user when the content within the container’s value changes. Polite waits
until the user pauses, assertive announces the change immediately.
Fine tune with aria-atomic, aria-relevant, and aria-channel
http://lists.w3.org/Archives/Public/www-archive/2008May/att-0031/WAI-
ARIA_Best_Practices_StructNav.html#LiveRegions
More Stuff




Saturday, November 17, 12

Missie Harriet Frothingham and drum, Montreal, QC, 1867
accessibilityViewIsModal (iOS5)
         A Boolean value indicating whether VoiceOver should ignore
         the elements within views that are siblings of the receiver.




Saturday, November 17, 12

https://developer.apple.com/library/ios/#documentation/UIKit/Reference/
UIAccessibility_Protocol/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008786
Your only option in 4.3 is to iterate the entire sub-tree setting isAccessibilityElement = NO
accessibilityPerformEscape
                                                             Implement this method on an element or
                                                             containing view that can be revealed
                                                             modally or in a hierarchy. When a
                                                             VoiceOver user performs a dismiss
                                                             action, this method dismisses the view.
                                                             the popover.




Saturday, November 17, 12
https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIAccessibilityAction_Protocol/Introduction/Introduction.html

override	
  accessibilityPerformEscape	
  on	
  custom	
  back	
  button

The iPad does not use a standard back button in the top left of the screen. Allow the user to
perform a scrub gesture to move back.
Detect Screen Reader


                iOS
                UIAccessibilityIsVoiceOverRunning();

                Android
                isScreenReaderActive()




Saturday, November 17, 12



This information could be passed from the native app to webview if you need to provide
alternate content.
This is helpful for skipping annoying gesture introduction screens.
This is NOT possible in desktop browsers.
You can also test for closed captions are enabled or mono audio.
http://code.google.com/p/eyes-free/source/browse/trunk/shell/src/com/google/marvin/
shell/HomeLauncher.java?spec=svn623&r=623
https://developer.apple.com/library/ios/#documentation/UIKit/Reference/
UIKitFunctionReference/Reference/reference.html#//apple_ref/c/func/
UIAccessibilityIsVoiceOverRunning
Saturday, November 17, 12

This video shows how to use the Android Lint tool to find accessibility problems and fix them
quickly.
on YouTube: http://youtu.be/OtwCe-YlD5k
Don’t Hide Your Fixes




Saturday, November 17, 12

Tell users when you make an improvement to accessibility in your release notes. Preferably
what part was fixed. They want to know when things are better and will tell their friends.
Ice cased Adelie penguins after a blizzard at Cape Denison / photograph by Frank Hurley http://
www.flickr.com/photos/statelibraryofnsw/2960116125/
Turn on the
         screen reader



Saturday, November 17, 12

Woman reading http://www.flickr.com/photos/nationalmediamuseum/2780164461/
The following slides will show how to enable screen reader on iOS and Android
Enable VoiceOver




Saturday, November 17, 12

Open settings.
Choose General
Scroll down to Accessibility
Enable VoiceOver




Saturday, November 17, 12

Scroll down and select Triple-click Home
Choose VoiceOver and go back to Accessibility Settings
Explore the accessibility options
Now you can triple click the home button to enable disable VoiceOver.
Victor Tsaran provides a good intro to using VoiceOver http://www.youtube.com/watch?
v=t60voPIY5xY
Enable TalkBack




Saturday, November 17, 12

Open Settings
Select Accessibility
Select TalkBack
Enable TalkBack




Saturday, November 17, 12

select the on/off switch and choose ok
Go back to Accessibility and choose Install web scripts (ICS) or Enhance Web Accessibility
(Jelly Bean)
Ted Drake
                             @ted_drake
                            Last-Child.com


Saturday, November 17, 12

More Related Content

Similar to Mobile Accessibility - Accessibility Camp Toronto

Mobile Accessibility - iOS, Android, Mobile Web
Mobile Accessibility - iOS, Android, Mobile WebMobile Accessibility - iOS, Android, Mobile Web
Mobile Accessibility - iOS, Android, Mobile WebTed Drake
 
Focus Management and Accessibility on iOS, Android, and HTML5
Focus Management and Accessibility on iOS, Android, and HTML5Focus Management and Accessibility on iOS, Android, and HTML5
Focus Management and Accessibility on iOS, Android, and HTML5Ted Drake
 
Multiplatform, Promises and HTML5
Multiplatform, Promises and HTML5Multiplatform, Promises and HTML5
Multiplatform, Promises and HTML5C4Media
 
The Contextual Experience of the Mobile Web
The Contextual Experience of the Mobile WebThe Contextual Experience of the Mobile Web
The Contextual Experience of the Mobile WebJeff Carouth
 
Creating Android Apps with PhoneGap
Creating Android Apps with PhoneGapCreating Android Apps with PhoneGap
Creating Android Apps with PhoneGapDean Peters
 
Html5 new sword for interactive app
Html5 new sword for interactive appHtml5 new sword for interactive app
Html5 new sword for interactive appYohan Totting
 
iOS vs android .pptx
iOS  vs android .pptxiOS  vs android .pptx
iOS vs android .pptxabid masood
 
The near future of real web applications
The near future of real web applicationsThe near future of real web applications
The near future of real web applicationsX.commerce
 
Mobile Apps - World Usability Day 2009
Mobile Apps - World Usability Day 2009Mobile Apps - World Usability Day 2009
Mobile Apps - World Usability Day 2009Rich Miller
 
Mobile Development with Icenium
Mobile Development with IceniumMobile Development with Icenium
Mobile Development with IceniumBill Condo
 
Educause - Building a Responsive Website for the Presidential Debate
Educause - Building a Responsive Website for the Presidential DebateEducause - Building a Responsive Website for the Presidential Debate
Educause - Building a Responsive Website for the Presidential DebateJon Liu
 
iOS Prototyping with Xcode Storyboards
iOS Prototyping with Xcode StoryboardsiOS Prototyping with Xcode Storyboards
iOS Prototyping with Xcode StoryboardsKyle Oba
 
DrupalCampNYC 10 - Native mobile apps with Drupal
DrupalCampNYC 10 - Native mobile apps with DrupalDrupalCampNYC 10 - Native mobile apps with Drupal
DrupalCampNYC 10 - Native mobile apps with Drupalzroger
 
BlackBerry WebWorks APIs
BlackBerry WebWorks APIsBlackBerry WebWorks APIs
BlackBerry WebWorks APIsSencha
 

Similar to Mobile Accessibility - Accessibility Camp Toronto (20)

Mobile Accessibility - iOS, Android, Mobile Web
Mobile Accessibility - iOS, Android, Mobile WebMobile Accessibility - iOS, Android, Mobile Web
Mobile Accessibility - iOS, Android, Mobile Web
 
Focus Management and Accessibility on iOS, Android, and HTML5
Focus Management and Accessibility on iOS, Android, and HTML5Focus Management and Accessibility on iOS, Android, and HTML5
Focus Management and Accessibility on iOS, Android, and HTML5
 
Multiplatform, Promises and HTML5
Multiplatform, Promises and HTML5Multiplatform, Promises and HTML5
Multiplatform, Promises and HTML5
 
Paranoid Android
Paranoid AndroidParanoid Android
Paranoid Android
 
The Contextual Experience of the Mobile Web
The Contextual Experience of the Mobile WebThe Contextual Experience of the Mobile Web
The Contextual Experience of the Mobile Web
 
Creating Android Apps with PhoneGap
Creating Android Apps with PhoneGapCreating Android Apps with PhoneGap
Creating Android Apps with PhoneGap
 
Mobile? WT... F?
Mobile? WT... F?Mobile? WT... F?
Mobile? WT... F?
 
Html5 new sword for interactive app
Html5 new sword for interactive appHtml5 new sword for interactive app
Html5 new sword for interactive app
 
Wp7 gapmeetup
Wp7 gapmeetupWp7 gapmeetup
Wp7 gapmeetup
 
iOS vs android .pptx
iOS  vs android .pptxiOS  vs android .pptx
iOS vs android .pptx
 
My dotJS Talk
My dotJS TalkMy dotJS Talk
My dotJS Talk
 
The near future of real web applications
The near future of real web applicationsThe near future of real web applications
The near future of real web applications
 
Iwb and ipad
Iwb and ipadIwb and ipad
Iwb and ipad
 
Then, Now, Next
Then, Now, NextThen, Now, Next
Then, Now, Next
 
Mobile Apps - World Usability Day 2009
Mobile Apps - World Usability Day 2009Mobile Apps - World Usability Day 2009
Mobile Apps - World Usability Day 2009
 
Mobile Development with Icenium
Mobile Development with IceniumMobile Development with Icenium
Mobile Development with Icenium
 
Educause - Building a Responsive Website for the Presidential Debate
Educause - Building a Responsive Website for the Presidential DebateEducause - Building a Responsive Website for the Presidential Debate
Educause - Building a Responsive Website for the Presidential Debate
 
iOS Prototyping with Xcode Storyboards
iOS Prototyping with Xcode StoryboardsiOS Prototyping with Xcode Storyboards
iOS Prototyping with Xcode Storyboards
 
DrupalCampNYC 10 - Native mobile apps with Drupal
DrupalCampNYC 10 - Native mobile apps with DrupalDrupalCampNYC 10 - Native mobile apps with Drupal
DrupalCampNYC 10 - Native mobile apps with Drupal
 
BlackBerry WebWorks APIs
BlackBerry WebWorks APIsBlackBerry WebWorks APIs
BlackBerry WebWorks APIs
 

More from Ted Drake

Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024Ted Drake
 
Transforming Accessibility one lunch at a tiime - CSUN 2023
Transforming Accessibility one lunch at a tiime - CSUN 2023Transforming Accessibility one lunch at a tiime - CSUN 2023
Transforming Accessibility one lunch at a tiime - CSUN 2023Ted Drake
 
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illness
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illnessInclusive Design for cognitive disabilities, neurodiversity, and chronic illness
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illnessTed Drake
 
Inclusive design for Long Covid
 Inclusive design for Long Covid  Inclusive design for Long Covid
Inclusive design for Long Covid Ted Drake
 
Covid 19, brain fog, and inclusive design
Covid 19, brain fog, and inclusive designCovid 19, brain fog, and inclusive design
Covid 19, brain fog, and inclusive designTed Drake
 
Customer obsession and accessibility
Customer obsession and accessibilityCustomer obsession and accessibility
Customer obsession and accessibilityTed Drake
 
The Saga of Accessible Colors
The Saga of Accessible ColorsThe Saga of Accessible Colors
The Saga of Accessible ColorsTed Drake
 
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11yArtificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11yTed Drake
 
Expand your outreach with an accessibility champions program
Expand your outreach with an accessibility champions program Expand your outreach with an accessibility champions program
Expand your outreach with an accessibility champions program Ted Drake
 
Intuit's Accessibility Champion Program - Coaching and Celebrating
Intuit's Accessibility Champion Program - Coaching and Celebrating Intuit's Accessibility Champion Program - Coaching and Celebrating
Intuit's Accessibility Champion Program - Coaching and Celebrating Ted Drake
 
Accessibility First Innovation
Accessibility First InnovationAccessibility First Innovation
Accessibility First InnovationTed Drake
 
Inclusive customer interviews make it your friday task
Inclusive customer interviews  make it your friday taskInclusive customer interviews  make it your friday task
Inclusive customer interviews make it your friday taskTed Drake
 
Coaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility ChampionsCoaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility ChampionsTed Drake
 
Accessibility statements and resource publishing best practices csun 2019
Accessibility statements and resource publishing best practices   csun 2019Accessibility statements and resource publishing best practices   csun 2019
Accessibility statements and resource publishing best practices csun 2019Ted Drake
 
Raising Accessibility Awareness at Intuit
Raising Accessibility Awareness at IntuitRaising Accessibility Awareness at Intuit
Raising Accessibility Awareness at IntuitTed Drake
 
Trickle Down Accessibility
Trickle Down AccessibilityTrickle Down Accessibility
Trickle Down AccessibilityTed Drake
 
Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018Ted Drake
 
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...Ted Drake
 
Mystery Meat 2.0 – Making hidden mobile interactions accessible
Mystery Meat 2.0 – Making hidden mobile interactions accessibleMystery Meat 2.0 – Making hidden mobile interactions accessible
Mystery Meat 2.0 – Making hidden mobile interactions accessibleTed Drake
 
React Native Accessibility - San Diego React and React Native Meetup
React Native Accessibility - San Diego React and React Native MeetupReact Native Accessibility - San Diego React and React Native Meetup
React Native Accessibility - San Diego React and React Native MeetupTed Drake
 

More from Ted Drake (20)

Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
 
Transforming Accessibility one lunch at a tiime - CSUN 2023
Transforming Accessibility one lunch at a tiime - CSUN 2023Transforming Accessibility one lunch at a tiime - CSUN 2023
Transforming Accessibility one lunch at a tiime - CSUN 2023
 
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illness
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illnessInclusive Design for cognitive disabilities, neurodiversity, and chronic illness
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illness
 
Inclusive design for Long Covid
 Inclusive design for Long Covid  Inclusive design for Long Covid
Inclusive design for Long Covid
 
Covid 19, brain fog, and inclusive design
Covid 19, brain fog, and inclusive designCovid 19, brain fog, and inclusive design
Covid 19, brain fog, and inclusive design
 
Customer obsession and accessibility
Customer obsession and accessibilityCustomer obsession and accessibility
Customer obsession and accessibility
 
The Saga of Accessible Colors
The Saga of Accessible ColorsThe Saga of Accessible Colors
The Saga of Accessible Colors
 
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11yArtificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
 
Expand your outreach with an accessibility champions program
Expand your outreach with an accessibility champions program Expand your outreach with an accessibility champions program
Expand your outreach with an accessibility champions program
 
Intuit's Accessibility Champion Program - Coaching and Celebrating
Intuit's Accessibility Champion Program - Coaching and Celebrating Intuit's Accessibility Champion Program - Coaching and Celebrating
Intuit's Accessibility Champion Program - Coaching and Celebrating
 
Accessibility First Innovation
Accessibility First InnovationAccessibility First Innovation
Accessibility First Innovation
 
Inclusive customer interviews make it your friday task
Inclusive customer interviews  make it your friday taskInclusive customer interviews  make it your friday task
Inclusive customer interviews make it your friday task
 
Coaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility ChampionsCoaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility Champions
 
Accessibility statements and resource publishing best practices csun 2019
Accessibility statements and resource publishing best practices   csun 2019Accessibility statements and resource publishing best practices   csun 2019
Accessibility statements and resource publishing best practices csun 2019
 
Raising Accessibility Awareness at Intuit
Raising Accessibility Awareness at IntuitRaising Accessibility Awareness at Intuit
Raising Accessibility Awareness at Intuit
 
Trickle Down Accessibility
Trickle Down AccessibilityTrickle Down Accessibility
Trickle Down Accessibility
 
Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018
 
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
 
Mystery Meat 2.0 – Making hidden mobile interactions accessible
Mystery Meat 2.0 – Making hidden mobile interactions accessibleMystery Meat 2.0 – Making hidden mobile interactions accessible
Mystery Meat 2.0 – Making hidden mobile interactions accessible
 
React Native Accessibility - San Diego React and React Native Meetup
React Native Accessibility - San Diego React and React Native MeetupReact Native Accessibility - San Diego React and React Native Meetup
React Native Accessibility - San Diego React and React Native Meetup
 

Recently uploaded

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Recently uploaded (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

Mobile Accessibility - Accessibility Camp Toronto

  • 1. Mobile Accessibility Accessibility Camp - Toronto, 2012 Ted Drake, Intuit Accessibility Saturday, November 17, 12 Hurdle race on snowshoes, Montreal, QC, 1892
  • 2. This presentation: Slideshare.net/7mary4 • Photos from Flickr Commons Saturday, November 17, 12 Wrestlers, McGill boxing, wrestling and fencing club, Montreal, 1925
  • 3. Screen Reader Saturday, November 17, 12 Screen readers are more than a text to speech engine. They analyze the page/screen and create their own version of the structure. which allows the user to navigate via headers, form inputs, landmarks, etc. Popular screen readers are Narrator for windows 8, VoiceOver for Mac, TalkBack and ChromeVox for Android. JAWS and NVDA are for windows desktop and should be available for Win8 mobile tablet. Plastic sneeuwstormbeschermer / Face protection from snowstorms
  • 4. Saturday, November 17, 12 Screen readers work like a tasty batch of Poutine. Poutine!
  • 5. Poutine Readers Gravy Curds Taters Saturday, November 17, 12 Screen readers, such as VoiceOver, TalkBack, and Narrator have three layers The application sits on the bottom. The screen reader sits on top of this, like the curds. The gravy is the user. The screen reader interprets the input from gravy and output of the taters. For automated testing, replace the gravy with software that recreates a user’s expectations.
  • 6. Braille Saturday, November 17, 12 Young woman and man braille reading on park bench http://www.flickr.com/photos/ center_for_jewish_history/4926954971/ Braille is a tactile alphabet for reading. Refreshable braille displays allow users to interact with their mobile devices via bluetooth. iOS and Android’s Jellybean support braille output.
  • 7. Cognitive Disabilities Saturday, November 17, 12 The direct interaction between finger and input has made mobile devices accessible to those with cognitive disabilities. Apps, such as schedule reminders, help those with memory loss due to traumatic brain injury. Guided Access for iOS6 allows the user to focus on using only one app at a time. Good for ADD and cognitive disabilities. Mobile apps in general are more focused and task oriented. "Old Woman in a Shoe", from the Mother Goose Nursery Rhymes, Montreal, 1866-67
  • 8. Low Vision Saturday, November 17, 12 Ice mask, C.T. Madigan, between 1911-1914 / photograph by Frank Hurley http://www.flickr.com/photos/statelibraryofnsw/ 2963668712/ The following slide is an interview with Karo Caran about using the iPad with low vision.
  • 11. Assistive Communication Saturday, November 17, 12 this child uses Proloque2Go to communicate with his parents. This app uses icons to build sentences and speak for the user. This replaces bulky, fragile equipment that can cost over $4,000 http://www.youtube.com/watch?v=Tp2ROyyyqjo Toddler with apraxia Asking for Cheese and Cracker on Ipad with Proloquo2Go and ASL
  • 12. Assistive Communication Saturday, November 17, 12 this child uses Proloque2Go to communicate with his parents. This app uses icons to build sentences and speak for the user. This replaces bulky, fragile equipment that can cost over $4,000 http://www.youtube.com/watch?v=Tp2ROyyyqjo Toddler with apraxia Asking for Cheese and Cracker on Ipad with Proloquo2Go and ASL
  • 13. Alternate Inputs Saturday, November 17, 12 Braille displays, single switches, and other alternative inputs can be enabled with mobile devices. Often times, the mobile device becomes the alternate input for other technology. iOS AssistiveTouch provides enhanced control of this functionality High skates, copied for Captain J. Miner, 1870
  • 14. iOS - Android - Win8 - HTML5 Saturday, November 17, 12 Gymnastic group, Trafalgar School, Montreal, QC, 1933-35
  • 15. iOS Saturday, November 17, 12 LSE Sports Day, Apple Bobbing, May 1932 http://www.flickr.com/photos/lselibrary/4166786914/ Accessibility features are baked into every Apple device. VoiceOver is the core engine for translating user interactions between the app and the assistive technology.
  • 16. VoiceOver Saturday, November 17, 12 VoiceOver is more than a screen reader. It’s a layer that acts as a middle layer between the user and app. It interprets gestures and content. It also can be used by automated testing to replace the user with scripts. Accessibility -> automated testing Erik Bye og Otto Nilsen i radio studio 13. mars 1958. - http://www.flickr.com/photos/national_archives_of_norway/5476890757/
  • 17. Hearing Saturday, November 17, 12 Apple is now certifying hearing aids to provide digital audio experience and minimal radio interference some apps are now using the phone to detect sound and act as “ears” for users. Skype, face to face and other apps allow people to communicate via sign language Royal Bank Branch, Notre Dame Street, Montreal, QC, 1911
  • 18. Guided Access Saturday, November 17, 12 Guided Access allows the user to close off certain parts of apps to minimize distractions. This is useful for autism, ADD, and classrooms to keep people focused on a single task and away from angry birds. Snowshoeing Indian file, Mount Royal, Montreal, QC, 1879
  • 19. Android Saturday, November 17, 12 Department Store Toy Display http://developer.android.com/guide/topics/ui/accessibility/apps.html
  • 20. Before Ice Cream Sandwich Saturday, November 17, 12 http://www.flickr.com/photos/field_museum_library/3405449492/in/photostream/ Girl dressed like a bee 74% of users are still on pre-ICS phones. Honeycomb and other pre-ICS versions have minimal accessibility support. DPad focus control is critical. Making your app accessible fortunately helps all versions.
  • 21. Ice Cream Sandwich Saturday, November 17, 12 Members of the Donald Dannheim Family Who Operate a Dairy and Ice Cream Store - http://www.flickr.com/photos/usnationalarchives/ 4727559500/ ICS introduced touch navigation, web view, voice input, and font resizing http://developer.android.com/about/versions/android-4.0-highlights.html
  • 22. Jelly Bean Saturday, November 17, 12 JB introduced gesture support and accessibility focus management, braille support, accessibility node APIs for custom views. Voice activated search is more powerful. http://developer.android.com/about/versions/jelly-bean.html JB 4.2.2 introduces ability to enable/disable Talkback without sighted assistance, read full screen, and three finger tap for zooming. Two ladies in swimming costumes in the "Greasy Pole" competition aboard the 'Empress of Canada'
  • 23. Saturday, November 17, 12 This short video shows the accessibility improvements for Jelly Bean 4.2. These include zooming and TalkBack shortcut. http://www.youtube.com/watch?v=LEQHyc3NMGc
  • 24. Windows 8 Saturday, November 17, 12 Narrator provides touch navigation and many gestures. Zooming is built in. Should be able to install NVDA or JAWS on tablets. Easy to enable/disable. Uses UI Automation as the accessibility layer http://windows.microsoft.com/en-US/windows-8/hear-text-read-aloud-with-narrator Gymnastic group, Montreal, QC, 1891
  • 25. Saturday, November 17, 12 This video shows how to enable Narrator with shortcut keys. It also shows how the basic gestures work. Unfortunately, it wasn’t as easy as you’d hope.
  • 26. Mobile Web Saturday, November 17, 12 Audio, Video, HTML5 form types, ARIA, HTML5 web sites generally work well with mobile devices. Don’t overload with -webkit prefixes. Remember there will be other browsers (firefox, ie10) Expo 67
  • 27. Get To Work Saturday, November 17, 12 Unloading S.S "Durham City", Montreal, QC, 1896
  • 28. Focus Control Saturday, November 17, 12 Every action item in your app must be focusable and clickable. Flickr photo app for iOS. Currently the rows are focusable, but not the individual thumbnails.
  • 29. iOS isAccessibilityElement // if a UIView implements the container protocol, it cannot be an accessible element - (BOOL)isAccessibilityElement {     return NO; } Saturday, November 17, 12 isAccessibility defines which elements are subject to focus. This is set by default for buttons and other actionable items. it needs to be configured with custom containers. Don’t set the parent to YES if there are actionable children. http://yaccessibilityblog.com/library/isaccessibility-ios-app.html
  • 30. Saturday, November 17, 12 This video shows the custom view used for a selector within Quickbooks Mobile. It’s the only thing that fails in this application.
  • 31. Saturday, November 17, 12 This video shows the custom view used for a selector within Quickbooks Mobile. It’s the only thing that fails in this application.
  • 32. Android setFocusable() | isFocusable() | requestFocus() <RelativeLayout android:id="@+id/row_type" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="2dp" android:focusable="true" > Saturday, November 17, 12 Test your app by using a bluetooth keyboard. Can you access everything? Use the focus functions or set focusable at the layout level.
  • 33. Unfocused Content Saturday, November 17, 12 This video shows an android app that has not set focusable on the elements. The entire container is read as a single string.
  • 34. HTML5 <a> & <button> Best: <button>Share This</button> Good: <a href=”#sharethis” role=”button”>Share This</a> Works, but avoid: <div role=”button” tabindex=”0”>Share This</div> Saturday, November 17, 12 Use the a for links. Use button for actions. use role=”button” if you need to use a link to trigger an action. use tabindex=”0” on non-links or buttons, such as a div. tabindex=”-1” allows an item to receive focus via JS, but is not in the normal tab flow. the javascript for div will still need to recognize the onclick event, not mouse events.
  • 35. HTML focus() <div id="cb" role="checkbox"> Spam</div> var checkbox = document.getElementById('cb'); checkbox.tabIndex = 0; // make the div focusable checkbox.focus(); Saturday, November 17, 12 set focus with JavaScript This is the same approach needed to let the user know a portion of the screen has changed. For instance, if a dropdown menu appears, place focus on the first link.
  • 36. Don’t Touch •touchstart •touchend •touchmove •touchcancel Saturday, November 17, 12 • Screen readers intercept the touch events. You cannot depend on these events. You must provide alternate buttons. • JellyBean theoretically works by letting two fingers be interpreted as a single touch • iOS provides a gesture event, but it is not supported on other devices. • Finger is placed on the screen • Finger is removed from the screen • Finger is moved across the screen • Touch is cancelled before the finger is actually removed from the screen • Kersthazen voor verkeersagent http://www.flickr.com/photos/nationaalarchief/3118323158/
  • 37. Labels and Descriptions Saturday, November 17, 12 Every non-standard button needs a label Make sure concatenated content includes all information and it is easily understood.
  • 38. Custom Buttons Saturday, November 17, 12 This short video shows how the buttons are not labeled on the Southwest Airlines app. Sadly, this video is almost two years old and the app is still missing labels. http://www.youtube.com/watch?v=StI0iIufJzk
  • 39. Custom Buttons Saturday, November 17, 12 This short video shows how the buttons are not labeled on the Southwest Airlines app. Sadly, this video is almost two years old and the app is still missing labels. http://www.youtube.com/watch?v=StI0iIufJzk
  • 40. iOS accessibilityLabel | accessibilityHint quantity.accessibilityLabel = @”Quantity”; quantity.accessibilityHint = @”Increase desired quantity.”; Saturday, November 17, 12 accessibilityLabel : A string that succinctly identifies the accessibility element. accessibilityHint: A string that briefly describes the result of performing an action on the accessibility element. These can be set in Interface builder as well. https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIAccessibilityElement_Class/Reference/Reference.html
  • 41. Android contentDescription <ImageView android:id="@+id/local_deals" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="16dp" android:contentDescription= "@string/local_deals" android:focusable="true" android:src="@drawable/ic_menu_local" /> Saturday, November 17, 12 use contentDescription to provide labels for Android devices. use android:contentDescription = “@null”; for images that should be ignored. For EditText fields, provide an android:hint attribute instead of a content description, to help users understand what content is expected when the text field is empty. When the field is filled, TalkBack reads the entered content to the user, instead of the hint text.
  • 42. HTML <img alt=”GoPayment” ...> <label for=”name”>Name</label> <input title=”Search”...> <input aria-label=”Area Code” aria-describedby=”phoneError” ...> Saturday, November 17, 12 Use basic, semantic HTML first. title attribute on input can work if you want to hide the label aria-label works well when breaking up the text inputs aria-describedby points to a text container that describes the input, such as an error message.
  • 43. Dynamic Values Saturday, November 17, 12 When the user changes the quantity on this invoice, we want the user to know the subtitle has also changed. This is a common pattern where there are dynamic changes to a screen and we need to notify the user. This could also be for a dialog window, expanded menu, etc.
  • 44. iOS UIAccessibilityPostNotification -(void)helpDidClose:(ZBEHelpView *)view {      [helpView removeFromSuperview];      helpView = nil;      [self unease];      UIAccessibilityPostNotification (           UIAccessibilityScreenChangedNotification,           statusView);           // statusView instead of nil tells this where to place the focus. } Saturday, November 17, 12 iOS6 allows you to notify a screen has changed, and place focus on that element. use UIAccessibilityLayoutChangedNotification for small changes See WWDC 2012 Accessibility for iOS for the demo of this code https://developer.apple.com/videos/wwdc/2012/ #210
  • 45. Android AccessibilityEvent private void announceForAccessibilityCompat(CharSequence text) { if (!mA11yManager.isEnabled()) { return; } final int eventType; if (Build.VERSION.SDK_INT < 16) { eventType = AccessibilityEvent.TYPE_VIEW_FOCUSED; } else { eventType = AccessibilityEventCompat.TYPE_ANNOUNCEMENT; } final AccessibilityEvent event = AccessibilityEvent.obtain(eventType); event.getText().add(text); event.setClassName(AccessibleCanvas.class.getName()); event.setPackageName(mContext.getPackageName()); mA11yManager.sendAccessibilityEvent(event); } Saturday, November 17, 12 an AccessibilityEvent is created whenever you select an item or change focus in your UI. more info: http://developer.android.com/training/accessibility/accessible-app.html#events use announceForAccessibilityCompat to get built in backwards compatibility Google has provided a great package of inaccessible/accessible code to learn more. https://code.google.com/p/eyes-­‐free/downloads/detail?name=accessibility_codelab_demos_v2_src.zip
  • 46. HTML aria-live <div aria-live=”polite”> Total is $5.10 </div> Saturday, November 17, 12 aria-live alerts the user when the content within the container’s value changes. Polite waits until the user pauses, assertive announces the change immediately. Fine tune with aria-atomic, aria-relevant, and aria-channel http://lists.w3.org/Archives/Public/www-archive/2008May/att-0031/WAI- ARIA_Best_Practices_StructNav.html#LiveRegions
  • 47. More Stuff Saturday, November 17, 12 Missie Harriet Frothingham and drum, Montreal, QC, 1867
  • 48. accessibilityViewIsModal (iOS5) A Boolean value indicating whether VoiceOver should ignore the elements within views that are siblings of the receiver. Saturday, November 17, 12 https://developer.apple.com/library/ios/#documentation/UIKit/Reference/ UIAccessibility_Protocol/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008786 Your only option in 4.3 is to iterate the entire sub-tree setting isAccessibilityElement = NO
  • 49. accessibilityPerformEscape Implement this method on an element or containing view that can be revealed modally or in a hierarchy. When a VoiceOver user performs a dismiss action, this method dismisses the view. the popover. Saturday, November 17, 12 https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIAccessibilityAction_Protocol/Introduction/Introduction.html override  accessibilityPerformEscape  on  custom  back  button The iPad does not use a standard back button in the top left of the screen. Allow the user to perform a scrub gesture to move back.
  • 50. Detect Screen Reader iOS UIAccessibilityIsVoiceOverRunning(); Android isScreenReaderActive() Saturday, November 17, 12 This information could be passed from the native app to webview if you need to provide alternate content. This is helpful for skipping annoying gesture introduction screens. This is NOT possible in desktop browsers. You can also test for closed captions are enabled or mono audio. http://code.google.com/p/eyes-free/source/browse/trunk/shell/src/com/google/marvin/ shell/HomeLauncher.java?spec=svn623&r=623 https://developer.apple.com/library/ios/#documentation/UIKit/Reference/ UIKitFunctionReference/Reference/reference.html#//apple_ref/c/func/ UIAccessibilityIsVoiceOverRunning
  • 51. Saturday, November 17, 12 This video shows how to use the Android Lint tool to find accessibility problems and fix them quickly. on YouTube: http://youtu.be/OtwCe-YlD5k
  • 52. Don’t Hide Your Fixes Saturday, November 17, 12 Tell users when you make an improvement to accessibility in your release notes. Preferably what part was fixed. They want to know when things are better and will tell their friends. Ice cased Adelie penguins after a blizzard at Cape Denison / photograph by Frank Hurley http:// www.flickr.com/photos/statelibraryofnsw/2960116125/
  • 53. Turn on the screen reader Saturday, November 17, 12 Woman reading http://www.flickr.com/photos/nationalmediamuseum/2780164461/ The following slides will show how to enable screen reader on iOS and Android
  • 54. Enable VoiceOver Saturday, November 17, 12 Open settings. Choose General Scroll down to Accessibility
  • 55. Enable VoiceOver Saturday, November 17, 12 Scroll down and select Triple-click Home Choose VoiceOver and go back to Accessibility Settings Explore the accessibility options Now you can triple click the home button to enable disable VoiceOver. Victor Tsaran provides a good intro to using VoiceOver http://www.youtube.com/watch? v=t60voPIY5xY
  • 56. Enable TalkBack Saturday, November 17, 12 Open Settings Select Accessibility Select TalkBack
  • 57. Enable TalkBack Saturday, November 17, 12 select the on/off switch and choose ok Go back to Accessibility and choose Install web scripts (ICS) or Enhance Web Accessibility (Jelly Bean)
  • 58. Ted Drake @ted_drake Last-Child.com Saturday, November 17, 12