SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
iOS Development (Part 2)
iOS Development (Part 2)iOS Development (Part 2)
iOS Development (Part 2)Asim Rais Siddiqui
 
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
 

Was ist angesagt? (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
 

Andere mochten auch

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
 
Random Hacks of Kindness
Random Hacks of KindnessRandom Hacks of Kindness
Random Hacks of Kindnessopengovpartnership
 
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
 

Andere mochten auch (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
 

Ă„hnlich wie 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
 
Introduction of Xcode
Introduction of XcodeIntroduction of Xcode
Introduction of XcodeDhaval Kaneria
 
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
 

Ă„hnlich wie 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...
 

KĂĽrzlich hochgeladen

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂşjo
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

KĂĽrzlich hochgeladen (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

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