SlideShare a Scribd company logo
1 of 22
people
Learnings for Accessibility
Tasneem Sayeed
June 6, 2013
Agenda
• Accessibility
– What it means for an iOS developer
– How do I make my app accessible
• Accessibility Attributes & Traits
• Adding Accessibility
– via Interface Builder
– In Code
• Accessibility Notifications
• VoiceOver specific API
• Scrollable Elements
• Accessibility Containers
• Best Practices for Accessibility
• Summary
• Making Your App Accessible
– The iOS Human Interface Guidelines provide detailed instructions
on how to create an intuitive interface that enables users with
disabilities to accomplish tasks quickly and efficiently, while
maintaining the consistency and ease of learning that
characterizes successful iOS apps.
– Developers that use standard controls and their subclasses will
find that support for accessibility is built-in. Apple’s Accessibility
APIs define how iOS apps can make their user interface available
to an external assistive app or service.
Accessibility in iOS
• How it Works
– VoiceOver interacts with objects in your app to allow people with
disabilities to drive the user interface in an alternative manner. For
example, a VoiceOver user relies solely on an alternative set of
gestures for control, and on speech synthesis or braille for
feedback.
– VoiceOver intercepts all the gestures on the screen
- Settings => General =>Accessibility=>VoiceOver=>On
- One Click or Touch => Focus
- Double-Click => Activates
- Three Fingers => Replaces one finger swipe
- One Finger Swipe => Replaces Tab Key
- Triple Click Home => Quick way to turn on/off VoiceOver
Accessibility in iOS
Accessibility
• Accessibility API introduced in iOS 3.0
• An accessibility interface
– Allows another process to
• Access individual items in the UI
• Query for status and description
• Perform actions and events
• The remote process is an Assistive Technology
(i.e. VoiceOver)
Accessibility Attributes
Common Accessibility Attributes
Accessibility Traits
• Accessibility Traits
– Tell an assistive application how an accessibility element behaves
or should be treated.
• UIAccessibilityTraits
– A mask that contains the OR combination of the accessibility traits
that best characterize an accessibility element.
Other Accessibility Attributes
Adding Accessibility with Interface Builder
• Changing Simple Accessibility values
– accessibilityLabel
– isAccessibilityElement
– accessibilityHint
– accessibilityTraits
Adding Accessibility in Code
• If Accessibility values change
Accessibility Notifications
• Notifications
– Tell VoiceOver something has happened
• 2 types of Accessibility Notifications
– Those which your app can post.
• You post accessibility notifications with UIAccessibilityPostNotification
and observe with the default notification center.
– And those which your app can observe.
• The observable accessibility notifications are posted by UIKit when
something in the app’s environment changes, such as when an
accessibility setting is toggled, or when the layout of a screen changes.
Accessibility Notifications
• Screen changes: when your UI changes dramatically.
– Usually when a user moves into a different part of your app
(navigates to a different screen).
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,
nil);
• Layout changes: if some part of your UI changes, but the user
hasn’t necessarily jumped to an entirely different part of your
app.
– This notification tells VoiceOver to re-read the current state of all
accessible items that are on-screen, and by doing this it figures out
what has changed and informs the user of those changes.
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,
nil);
• Dynamic changes: if a part of your user interface is dealing
with some dynamically changing information (state changes,
data changes, etc.). This notification tells VoiceOver to read it
out to the user.
• UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,
@”Loading complete.”);
VoiceOver-specific API
• VoiceOver-specific API
– Sometimes it is useful to determine whether or not VoiceOver is running,
and to do different things depending on whether it is or not.
– A program can, at any time, test to see whether VoiceOver is
enabled or not.
VoiceOver-specific API
• VoiceOver-specific API
– Track where focus is
Accessibility Actions for
Scrollable Elements
• Scrollable Elements
– Implement this method if a view in the view hierarchy supports a scroll by page action.
Accessibility Containers
• Used for custom views with multiple containers
• Returns Accessibility “sub-elements”
– Ex. MonthView: UIView
• Creating an Accessibility Sub-element (fake element)
– Make a UIAccessibilityElement
• Wraps all important data about an object and sends it over to VoiceOver
Accessibility Containers
• Make the Contents of Custom Container Views Accessible
– If your application displays a custom view that contains other elements with
which users interact, you need to make the contained elements separately
accessible.
– Need to make sure that the container view itself is not accessible. The reason is
that users interact with the contents of the container, not with the container
itself.
– Custom container view should implement the UIAccessibilityContainer
protocol.
• This protocol defines methods that make the contained elements available in
an array.
– The following container view creates the array of accessible elements
only when methods of the UIAccessibilityContainer protocol are called.
As a result, if iPhone accessibility is not currently active, the array is not
created.
Accessibility Containers
Accessibility Containers
Best Practices for Accessibility
• Use short concise labels
– Good: “Add city”
– Bad: “Add a city to the list of cities”
• Don’t include the type information in the label
– Good: “Remove City”
– Bad: “Remove City button”
• Use localized strings for labels and hints
– Good: VoiceOver works in over 30 languages
– Localize number and localize dates
• Use NSNumberFormatter
• With custom table view cells
– Only need to add accessibilityLabel
– If there are multiple strings, concatenate with commas
Summary
• What is Accessibility?
– What it means for an iOS developer
– How do I make my apps accessible?
• Common Accessibility Attributes & Traits
• Adding Accessibility
– Interface Builder
– In Code
• Accessibility Notifications
• VoiceOver specific API
• Scrollable Elements
• Accessibility Containers
• Best Practices for Accessibility
Resources
– Accessibility Programming Guide for iOS
http://developer.apple.com/library/ios/#documentation/UserExperience/
Conceptual/iPhoneAccessibility/Introduction/Introduction.html
– UIAccessibility Protocol Reference
http://developer.application.com for UIAccessibility
– VoiceOver User Manual
http://support.apple.com/manuals/iPhone/
– The Librarian: Accessibility on iOS: Make an App for Everyone
http://yaccessibilityblog.com/wp/librarian-accessibility-ios.html
– Mobile Accessiblity (posted on Oct 8, 2012 by Ted)
http://www.last-child.com/mobile-accessibility

More Related Content

What's hot

iOS app dev Training - Session1
iOS app dev Training - Session1iOS app dev Training - Session1
iOS app dev Training - Session1Hussain Behestee
 
SwiftUI - Performance and Memory Management
SwiftUI - Performance and Memory ManagementSwiftUI - Performance and Memory Management
SwiftUI - Performance and Memory ManagementWannitaTolaema
 
Building a TV show with Angular, Bootstrap, and Web Services
Building a TV show with Angular, Bootstrap, and Web ServicesBuilding a TV show with Angular, Bootstrap, and Web Services
Building a TV show with Angular, Bootstrap, and Web ServicesDavid Giard
 
How native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App DevelopmentHow native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App DevelopmentDevathon
 
UI Testing with Earl Grey
UI Testing with Earl GreyUI Testing with Earl Grey
UI Testing with Earl GreyShyam Bhat
 
Api application programming interface
Api application programming interfaceApi application programming interface
Api application programming interfaceMohit Bishnoi
 
AI: Mobile Apps That Understands Your Intention When You Typed
AI: Mobile Apps That Understands Your Intention When You TypedAI: Mobile Apps That Understands Your Intention When You Typed
AI: Mobile Apps That Understands Your Intention When You TypedMarvin Heng
 
Training Session 2 - Day 2
Training Session 2 - Day 2Training Session 2 - Day 2
Training Session 2 - Day 2Vivek Bhusal
 

What's hot (9)

iOS app dev Training - Session1
iOS app dev Training - Session1iOS app dev Training - Session1
iOS app dev Training - Session1
 
SwiftUI - Performance and Memory Management
SwiftUI - Performance and Memory ManagementSwiftUI - Performance and Memory Management
SwiftUI - Performance and Memory Management
 
Building a TV show with Angular, Bootstrap, and Web Services
Building a TV show with Angular, Bootstrap, and Web ServicesBuilding a TV show with Angular, Bootstrap, and Web Services
Building a TV show with Angular, Bootstrap, and Web Services
 
iOS Development (Part 2)
iOS Development (Part 2)iOS Development (Part 2)
iOS Development (Part 2)
 
How native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App DevelopmentHow native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App Development
 
UI Testing with Earl Grey
UI Testing with Earl GreyUI Testing with Earl Grey
UI Testing with Earl Grey
 
Api application programming interface
Api application programming interfaceApi application programming interface
Api application programming interface
 
AI: Mobile Apps That Understands Your Intention When You Typed
AI: Mobile Apps That Understands Your Intention When You TypedAI: Mobile Apps That Understands Your Intention When You Typed
AI: Mobile Apps That Understands Your Intention When You Typed
 
Training Session 2 - Day 2
Training Session 2 - Day 2Training Session 2 - Day 2
Training Session 2 - Day 2
 

Viewers also liked

Improving 3rd Party Script Performance With IFrames
Improving 3rd Party Script Performance With IFramesImproving 3rd Party Script Performance With IFrames
Improving 3rd Party Script Performance With IFramesPhilip Tellis
 
Dynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIADynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIAAccess iQ
 
Introduction to mobile accessibility - AccessU 2013
Introduction to mobile accessibility - AccessU 2013Introduction to mobile accessibility - AccessU 2013
Introduction to mobile accessibility - AccessU 2013Henny Swan
 
The Yahoo Social Accessibility Lab
The Yahoo Social Accessibility LabThe Yahoo Social Accessibility Lab
The Yahoo Social Accessibility LabNate Ebrahimoon
 
Ubiquitous Transactions - Financial Future and Accessibility
Ubiquitous Transactions - Financial Future and AccessibilityUbiquitous Transactions - Financial Future and Accessibility
Ubiquitous Transactions - Financial Future and AccessibilityTed Drake
 
Create Accessible Infographics
Create Accessible Infographics Create Accessible Infographics
Create Accessible Infographics Ted Drake
 
Designing for cognitive disabilities
Designing for cognitive disabilitiesDesigning for cognitive disabilities
Designing for cognitive disabilitiesRuth Ellison
 
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
 
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
 
Session 210 _accessibility_for_ios
Session 210 _accessibility_for_iosSession 210 _accessibility_for_ios
Session 210 _accessibility_for_ioscheinyeanlim
 
Assistive Technology
Assistive TechnologyAssistive Technology
Assistive TechnologyAmy G.
 
iOS Accessibility
iOS AccessibilityiOS Accessibility
iOS AccessibilityLuis Abreu
 
Android accessibility for developers and QA
Android accessibility for developers and QAAndroid accessibility for developers and QA
Android accessibility for developers and QATed Drake
 
CSUN 2017 Success Criteria: Dependencies and Prioritization
CSUN 2017 Success Criteria: Dependencies and PrioritizationCSUN 2017 Success Criteria: Dependencies and Prioritization
CSUN 2017 Success Criteria: Dependencies and PrioritizationSean Kelly
 
The 7 minute accessibility assessment and app rating system
The 7 minute accessibility assessment and app rating systemThe 7 minute accessibility assessment and app rating system
The 7 minute accessibility assessment and app rating systemAidan Tierney
 
Mind your lang (for role=drinks at CSUN 2017)
Mind your lang (for role=drinks at CSUN 2017)Mind your lang (for role=drinks at CSUN 2017)
Mind your lang (for role=drinks at CSUN 2017)Adrian Roselli
 
Rethinking Accessibility: Role-Based Analysis of WCAG 2.0 - CSUN 2017
Rethinking Accessibility: Role-Based Analysis of WCAG 2.0 - CSUN 2017Rethinking Accessibility: Role-Based Analysis of WCAG 2.0 - CSUN 2017
Rethinking Accessibility: Role-Based Analysis of WCAG 2.0 - CSUN 2017Bill Tyler
 

Viewers also liked (20)

Improving 3rd Party Script Performance With IFrames
Improving 3rd Party Script Performance With IFramesImproving 3rd Party Script Performance With IFrames
Improving 3rd Party Script Performance With IFrames
 
Random Hacks of Kindness
Random Hacks of KindnessRandom Hacks of Kindness
Random Hacks of Kindness
 
Dynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIADynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIA
 
Introduction to mobile accessibility - AccessU 2013
Introduction to mobile accessibility - AccessU 2013Introduction to mobile accessibility - AccessU 2013
Introduction to mobile accessibility - AccessU 2013
 
The Yahoo Social Accessibility Lab
The Yahoo Social Accessibility LabThe Yahoo Social Accessibility Lab
The Yahoo Social Accessibility Lab
 
Ubiquitous Transactions - Financial Future and Accessibility
Ubiquitous Transactions - Financial Future and AccessibilityUbiquitous Transactions - Financial Future and Accessibility
Ubiquitous Transactions - Financial Future and Accessibility
 
Create Accessible Infographics
Create Accessible Infographics Create Accessible Infographics
Create Accessible Infographics
 
Designing for cognitive disabilities
Designing for cognitive disabilitiesDesigning for cognitive disabilities
Designing for cognitive disabilities
 
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
 
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...
 
Session 210 _accessibility_for_ios
Session 210 _accessibility_for_iosSession 210 _accessibility_for_ios
Session 210 _accessibility_for_ios
 
iOS Accessibility
iOS AccessibilityiOS Accessibility
iOS Accessibility
 
Assistive Technology
Assistive TechnologyAssistive Technology
Assistive Technology
 
iOS Accessibility
iOS AccessibilityiOS Accessibility
iOS Accessibility
 
Android accessibility for developers and QA
Android accessibility for developers and QAAndroid accessibility for developers and QA
Android accessibility for developers and QA
 
ATIA Workshop - iOS Accessibility
ATIA Workshop - iOS AccessibilityATIA Workshop - iOS Accessibility
ATIA Workshop - iOS Accessibility
 
CSUN 2017 Success Criteria: Dependencies and Prioritization
CSUN 2017 Success Criteria: Dependencies and PrioritizationCSUN 2017 Success Criteria: Dependencies and Prioritization
CSUN 2017 Success Criteria: Dependencies and Prioritization
 
The 7 minute accessibility assessment and app rating system
The 7 minute accessibility assessment and app rating systemThe 7 minute accessibility assessment and app rating system
The 7 minute accessibility assessment and app rating system
 
Mind your lang (for role=drinks at CSUN 2017)
Mind your lang (for role=drinks at CSUN 2017)Mind your lang (for role=drinks at CSUN 2017)
Mind your lang (for role=drinks at CSUN 2017)
 
Rethinking Accessibility: Role-Based Analysis of WCAG 2.0 - CSUN 2017
Rethinking Accessibility: Role-Based Analysis of WCAG 2.0 - CSUN 2017Rethinking Accessibility: Role-Based Analysis of WCAG 2.0 - CSUN 2017
Rethinking Accessibility: Role-Based Analysis of WCAG 2.0 - CSUN 2017
 

Similar to Learnings for Accessibility for iOS Platform

Automating Mobile Applications
Automating Mobile ApplicationsAutomating Mobile Applications
Automating Mobile ApplicationsApril Luk
 
Android Development Tutorial
Android Development TutorialAndroid Development Tutorial
Android Development TutorialGermán Bringas
 
A11Y Camp - Lessons learnt from building accessible native mobile apps
A11Y Camp - Lessons learnt from building accessible native mobile appsA11Y Camp - Lessons learnt from building accessible native mobile apps
A11Y Camp - Lessons learnt from building accessible native mobile appsAshton Williams
 
Dreamforce 2017 - Up close and personal with Lightning Experience as Platform
Dreamforce 2017 - Up close and personal with Lightning Experience as PlatformDreamforce 2017 - Up close and personal with Lightning Experience as Platform
Dreamforce 2017 - Up close and personal with Lightning Experience as Platformandyinthecloud
 
DF14: Drive Salesforce User Productivity with the Pebble SmartWatch
DF14: Drive Salesforce User Productivity with the Pebble SmartWatchDF14: Drive Salesforce User Productivity with the Pebble SmartWatch
DF14: Drive Salesforce User Productivity with the Pebble SmartWatchjayvinarora
 
Embedded Systems.pdf
Embedded Systems.pdfEmbedded Systems.pdf
Embedded Systems.pdfruvabebe
 
Mobile Accessibility - How To Become Socially Responsible Mobile Developer
Mobile Accessibility - How To Become Socially Responsible Mobile Developer Mobile Accessibility - How To Become Socially Responsible Mobile Developer
Mobile Accessibility - How To Become Socially Responsible Mobile Developer Konstantin Loginov
 
2. the aegis story building an accessible application
2. the aegis story   building an accessible application2. the aegis story   building an accessible application
2. the aegis story building an accessible applicationAEGIS-ACCESSIBLE Projects
 
Accessibility in android And Add accessibility hooks to a custom view
Accessibility in android And Add accessibility hooks to a custom viewAccessibility in android And Add accessibility hooks to a custom view
Accessibility in android And Add accessibility hooks to a custom viewAly Arman
 
Accessibility Standards and the Mobile Web
Accessibility Standards and the Mobile WebAccessibility Standards and the Mobile Web
Accessibility Standards and the Mobile Webmmaertens
 
Nonintrusive semantic html5
Nonintrusive semantic html5Nonintrusive semantic html5
Nonintrusive semantic html5Muhamad Arief
 
IBM Inclusive Social Learning - Educause 2015
IBM Inclusive Social Learning - Educause 2015IBM Inclusive Social Learning - Educause 2015
IBM Inclusive Social Learning - Educause 2015IBM Research
 
iOS and Android accessibility APIs (AccessU 2017)
iOS and Android accessibility APIs (AccessU 2017)iOS and Android accessibility APIs (AccessU 2017)
iOS and Android accessibility APIs (AccessU 2017)Jon Gibbins
 
MAST Portal: drivers and recommendations
MAST Portal: drivers and recommendations  MAST Portal: drivers and recommendations
MAST Portal: drivers and recommendations Alberto Conti
 
Web accessibility is everyone's job
Web accessibility is everyone's jobWeb accessibility is everyone's job
Web accessibility is everyone's jobRemya Ramesh
 
Usable ARIA: the Fluid Infusion component set and the relationship between AR...
Usable ARIA: the Fluid Infusion component set and the relationship between AR...Usable ARIA: the Fluid Infusion component set and the relationship between AR...
Usable ARIA: the Fluid Infusion component set and the relationship between AR...AEGIS-ACCESSIBLE Projects
 

Similar to Learnings for Accessibility for iOS Platform (20)

Automating Mobile Applications
Automating Mobile ApplicationsAutomating Mobile Applications
Automating Mobile Applications
 
Android Development Tutorial
Android Development TutorialAndroid Development Tutorial
Android Development Tutorial
 
A11Y Camp - Lessons learnt from building accessible native mobile apps
A11Y Camp - Lessons learnt from building accessible native mobile appsA11Y Camp - Lessons learnt from building accessible native mobile apps
A11Y Camp - Lessons learnt from building accessible native mobile apps
 
Dreamforce 2017 - Up close and personal with Lightning Experience as Platform
Dreamforce 2017 - Up close and personal with Lightning Experience as PlatformDreamforce 2017 - Up close and personal with Lightning Experience as Platform
Dreamforce 2017 - Up close and personal with Lightning Experience as Platform
 
DF14: Drive Salesforce User Productivity with the Pebble SmartWatch
DF14: Drive Salesforce User Productivity with the Pebble SmartWatchDF14: Drive Salesforce User Productivity with the Pebble SmartWatch
DF14: Drive Salesforce User Productivity with the Pebble SmartWatch
 
Embedded Systems.pdf
Embedded Systems.pdfEmbedded Systems.pdf
Embedded Systems.pdf
 
Mobile Accessibility - How To Become Socially Responsible Mobile Developer
Mobile Accessibility - How To Become Socially Responsible Mobile Developer Mobile Accessibility - How To Become Socially Responsible Mobile Developer
Mobile Accessibility - How To Become Socially Responsible Mobile Developer
 
2. the aegis story building an accessible application
2. the aegis story   building an accessible application2. the aegis story   building an accessible application
2. the aegis story building an accessible application
 
Accessibility in android And Add accessibility hooks to a custom view
Accessibility in android And Add accessibility hooks to a custom viewAccessibility in android And Add accessibility hooks to a custom view
Accessibility in android And Add accessibility hooks to a custom view
 
Accessibility Standards and the Mobile Web
Accessibility Standards and the Mobile WebAccessibility Standards and the Mobile Web
Accessibility Standards and the Mobile Web
 
Nonintrusive semantic html5
Nonintrusive semantic html5Nonintrusive semantic html5
Nonintrusive semantic html5
 
Basics 4
Basics   4Basics   4
Basics 4
 
IBM Inclusive Social Learning - Educause 2015
IBM Inclusive Social Learning - Educause 2015IBM Inclusive Social Learning - Educause 2015
IBM Inclusive Social Learning - Educause 2015
 
iOS and Android accessibility APIs (AccessU 2017)
iOS and Android accessibility APIs (AccessU 2017)iOS and Android accessibility APIs (AccessU 2017)
iOS and Android accessibility APIs (AccessU 2017)
 
Accessibilitytesting public
Accessibilitytesting publicAccessibilitytesting public
Accessibilitytesting public
 
MAST Portal: drivers and recommendations
MAST Portal: drivers and recommendations  MAST Portal: drivers and recommendations
MAST Portal: drivers and recommendations
 
Web accessibility is everyone's job
Web accessibility is everyone's jobWeb accessibility is everyone's job
Web accessibility is everyone's job
 
Introduction of Xcode
Introduction of XcodeIntroduction of Xcode
Introduction of Xcode
 
EU policies in e-inclusion
EU policies in e-inclusionEU policies in e-inclusion
EU policies in e-inclusion
 
Usable ARIA: the Fluid Infusion component set and the relationship between AR...
Usable ARIA: the Fluid Infusion component set and the relationship between AR...Usable ARIA: the Fluid Infusion component set and the relationship between AR...
Usable ARIA: the Fluid Infusion component set and the relationship between AR...
 

Recently uploaded

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
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
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
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 

Recently uploaded (20)

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
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
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
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
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
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 

Learnings for Accessibility for iOS Platform

  • 2. Agenda • Accessibility – What it means for an iOS developer – How do I make my app accessible • Accessibility Attributes & Traits • Adding Accessibility – via Interface Builder – In Code • Accessibility Notifications • VoiceOver specific API • Scrollable Elements • Accessibility Containers • Best Practices for Accessibility • Summary
  • 3. • Making Your App Accessible – The iOS Human Interface Guidelines provide detailed instructions on how to create an intuitive interface that enables users with disabilities to accomplish tasks quickly and efficiently, while maintaining the consistency and ease of learning that characterizes successful iOS apps. – Developers that use standard controls and their subclasses will find that support for accessibility is built-in. Apple’s Accessibility APIs define how iOS apps can make their user interface available to an external assistive app or service. Accessibility in iOS
  • 4. • How it Works – VoiceOver interacts with objects in your app to allow people with disabilities to drive the user interface in an alternative manner. For example, a VoiceOver user relies solely on an alternative set of gestures for control, and on speech synthesis or braille for feedback. – VoiceOver intercepts all the gestures on the screen - Settings => General =>Accessibility=>VoiceOver=>On - One Click or Touch => Focus - Double-Click => Activates - Three Fingers => Replaces one finger swipe - One Finger Swipe => Replaces Tab Key - Triple Click Home => Quick way to turn on/off VoiceOver Accessibility in iOS
  • 5. Accessibility • Accessibility API introduced in iOS 3.0 • An accessibility interface – Allows another process to • Access individual items in the UI • Query for status and description • Perform actions and events • The remote process is an Assistive Technology (i.e. VoiceOver)
  • 7. Accessibility Traits • Accessibility Traits – Tell an assistive application how an accessibility element behaves or should be treated. • UIAccessibilityTraits – A mask that contains the OR combination of the accessibility traits that best characterize an accessibility element.
  • 9. Adding Accessibility with Interface Builder • Changing Simple Accessibility values – accessibilityLabel – isAccessibilityElement – accessibilityHint – accessibilityTraits
  • 10. Adding Accessibility in Code • If Accessibility values change
  • 11. Accessibility Notifications • Notifications – Tell VoiceOver something has happened • 2 types of Accessibility Notifications – Those which your app can post. • You post accessibility notifications with UIAccessibilityPostNotification and observe with the default notification center. – And those which your app can observe. • The observable accessibility notifications are posted by UIKit when something in the app’s environment changes, such as when an accessibility setting is toggled, or when the layout of a screen changes.
  • 12. Accessibility Notifications • Screen changes: when your UI changes dramatically. – Usually when a user moves into a different part of your app (navigates to a different screen). UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, nil); • Layout changes: if some part of your UI changes, but the user hasn’t necessarily jumped to an entirely different part of your app. – This notification tells VoiceOver to re-read the current state of all accessible items that are on-screen, and by doing this it figures out what has changed and informs the user of those changes. UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil); • Dynamic changes: if a part of your user interface is dealing with some dynamically changing information (state changes, data changes, etc.). This notification tells VoiceOver to read it out to the user. • UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, @”Loading complete.”);
  • 13. VoiceOver-specific API • VoiceOver-specific API – Sometimes it is useful to determine whether or not VoiceOver is running, and to do different things depending on whether it is or not. – A program can, at any time, test to see whether VoiceOver is enabled or not.
  • 14. VoiceOver-specific API • VoiceOver-specific API – Track where focus is
  • 15. Accessibility Actions for Scrollable Elements • Scrollable Elements – Implement this method if a view in the view hierarchy supports a scroll by page action.
  • 16. Accessibility Containers • Used for custom views with multiple containers • Returns Accessibility “sub-elements” – Ex. MonthView: UIView • Creating an Accessibility Sub-element (fake element) – Make a UIAccessibilityElement • Wraps all important data about an object and sends it over to VoiceOver
  • 17. Accessibility Containers • Make the Contents of Custom Container Views Accessible – If your application displays a custom view that contains other elements with which users interact, you need to make the contained elements separately accessible. – Need to make sure that the container view itself is not accessible. The reason is that users interact with the contents of the container, not with the container itself. – Custom container view should implement the UIAccessibilityContainer protocol. • This protocol defines methods that make the contained elements available in an array. – The following container view creates the array of accessible elements only when methods of the UIAccessibilityContainer protocol are called. As a result, if iPhone accessibility is not currently active, the array is not created.
  • 20. Best Practices for Accessibility • Use short concise labels – Good: “Add city” – Bad: “Add a city to the list of cities” • Don’t include the type information in the label – Good: “Remove City” – Bad: “Remove City button” • Use localized strings for labels and hints – Good: VoiceOver works in over 30 languages – Localize number and localize dates • Use NSNumberFormatter • With custom table view cells – Only need to add accessibilityLabel – If there are multiple strings, concatenate with commas
  • 21. Summary • What is Accessibility? – What it means for an iOS developer – How do I make my apps accessible? • Common Accessibility Attributes & Traits • Adding Accessibility – Interface Builder – In Code • Accessibility Notifications • VoiceOver specific API • Scrollable Elements • Accessibility Containers • Best Practices for Accessibility
  • 22. Resources – Accessibility Programming Guide for iOS http://developer.apple.com/library/ios/#documentation/UserExperience/ Conceptual/iPhoneAccessibility/Introduction/Introduction.html – UIAccessibility Protocol Reference http://developer.application.com for UIAccessibility – VoiceOver User Manual http://support.apple.com/manuals/iPhone/ – The Librarian: Accessibility on iOS: Make an App for Everyone http://yaccessibilityblog.com/wp/librarian-accessibility-ios.html – Mobile Accessiblity (posted on Oct 8, 2012 by Ted) http://www.last-child.com/mobile-accessibility