SlideShare a Scribd company logo
1 of 111
Download to read offline
Beyond VoiceOver 
making iOS apps accessible 
Sally Shepard // @mostgood 
Wednesday, 3 September 14
What I’m going to cover 
★ Disability & Accessibility 
★ Accessibility on iOS 
★ Adding support 
★ Testing 
Wednesday, 3 September 14
Why your app isn’t 
accessible... 
Wednesday, 3 September 14
Myths 
• “It’s not that many people” 
• “It's time consuming” 
• “My app is too complicated to 
be accessible” 
• “I don't know how to test it” 
Wednesday, 3 September 14
What do I mean by 
‘accessible’? 
Wednesday, 3 September 14
Wednesday, 3 September 14
Wednesday, 3 September 14
Disability 
Wednesday, 3 September 14
More than 1 billion 
people live with some 
form of disability 
Wednesday, 3 September 14
That’s 1 in 7 people 
Wednesday, 3 September 14
Growing population 
Wednesday, 3 September 14
Disability can make life 
extremely difficult 
Wednesday, 3 September 14
We can use technology 
to overcome challenges 
Wednesday, 3 September 14
How can we use 
technologies in iOS to 
overcome disabilities? 
Wednesday, 3 September 14
Vision 
Wednesday, 3 September 14
Wednesday, 3 September 14
How is an iOS device 
used by someone 
with limited vision? 
Wednesday, 3 September 14
VoiceOver 
Wednesday, 3 September 14
VoiceOver replicates 
the UI for users who 
can’t see it. 
Wednesday, 3 September 14
Wednesday, 3 September 14
VoiceOver speaks 
36 languages 
Wednesday, 3 September 14
Available on 
iOS & OS X 
Wednesday, 3 September 14
To extend VoiceOver, 
users can also use braille. 
Wednesday, 3 September 14
Braille displays 
Wednesday, 3 September 14
Braille Keyboards 
Wednesday, 3 September 14
That’s pretty amazing! 
Wednesday, 3 September 14
Demo 
Wednesday, 3 September 14
Basics of the 
Accessibility APIs 
Wednesday, 3 September 14
isAccessibilityElement 
sendButton.isAccessibliltyElement = YES; 
Wednesday, 3 September 14
accessibilityLabel 
- Label that identifies the accessibility element 
- UIKit control: uses title 
- Image-based controls definitely need to 
specify this! 
- Don’t include the control type 
“Play” 
Wednesday, 3 September 14
accessibilityTraits 
- Combination of traits that best characterise 
the accessibility element 
- UIKit controls: defaults to standard traits 
- Combine traits with an OR operator 
- (UIAccessibilityTraits)accessibilityTraits 
{ 
return [super accessibilityTraits] | UIAccessibilityTraitButton; 
} 
Wednesday, 3 September 14
accessibilityValue 
- Used when a element 
has a dynamic value 
Wednesday, 3 September 14
accessibilityHint 
- Describes the outcome of performing an action 
- Don’t make it sound like a command 
- Start with verb describing result 
- Keep it brief 
Note: can be disabled by user 
“Plays the song” 
Wednesday, 3 September 14
accessibilityHint 
- Describes the outcome of performing an action 
- Don’t make it sound like a command 
- Start with verb describing result 
- Keep it brief 
Note: can be disabled by user 
Wednesday, 3 September 14
Adding support to a 
Xib or Storyboard 
Wednesday, 3 September 14
- Enable accessibility 
- Fill out Label and Hint 
- Add traits 
Wednesday, 3 September 14
Adding support 
programmatically 
Wednesday, 3 September 14
Simple example of 
adding support 
UIButton *sendButton = [UIButton buttonWithStyle...]; 
[sendButton setAccessibilityLabel:@”Send”]; 
[sendButton setAccessibilityHint:@”Sends message”]; 
UISwitch *visibleSwitch = [UISwitch new]; 
NSString *switchValue = [visibleSwitch isOn]?@”Visible”:@”Invisible”; 
[visibleSwitch setAccessibilityValue:switchValue]; 
MyCustomControl *myControl = [MyCustomControl new]; 
[myControl setAccessibilityTraits:[super accessibilityTraits] | 
UIAccessbilityTraitButton]; //Bitwise OR traits together 
Wednesday, 3 September 14
This is great if your 
app is really basic... 
Wednesday, 3 September 14
...but apps have 
moved beyond the 
basics. 
Wednesday, 3 September 14
Find out if user has 
VoiceOver on 
BOOL isVoiceOverOn = 
UIAccessiblityIsVoiceOverRunning(): 
Wednesday, 3 September 14
Moving VoiceOver focus 
UIAccessibilityPostNotification( 
UIAccessibilityScreenChangedNotification, self.goButton); 
Wednesday, 3 September 14
UIAccessibilityCustomAction 
You can add multiple actions to an element. 
UIAccessibilityCustomAction *trashAction = 
[[UIAccessibilityCustomAction alloc] initWithName:@"Trash" 
target:self selector:@selector(trashMessage)]; 
UIAccessibilityCustomAction *moreAction = 
[[UIAccessibilityCustomAction alloc] initWithName:@"More" 
target:self selector:@selector(moreOptions)]; 
UIAccessibilityCustomAction *activateAction = 
[[UIAccessibilityCustomAction alloc] initWithName:@"Activate" 
target:self selector:@selector(activate)]; 
cell.accessibilityCustomActions = @[trashAction, moreAction, 
activateAction]; 
Wednesday, 3 September 14
UIAccessibilityContainer 
Specify the order VoiceOver should go 
through the elements. 
@property (nonatomic, strong) NSArray *accessibilityElements; 
self.accessibilityElements = @[self.imageView, self.headlineLabel, 
self.summaryLabel, self.twitterButton, self.facebookButton, 
self.emailButton]; 
Wednesday, 3 September 14
- (BOOL)accessibilityActivate; 
-This gets called when a user double-taps. 
-Good for elements where a gesture is used 
to normally activate it. 
Return YES or NO depending on success. 
Wednesday, 3 September 14
Direct Interaction 
- (UIAccessibilityTraits)accessibilityTraits 
{ 
return UIAccessibilityTraitAllowsDirectInteraction; 
} 
Wednesday, 3 September 14
Accessibility notifications 
UIAccessibilityPostNotification(NAME, PARAMETER); 
(UIAccessibilityPageScrolledNotification, @”Top of list”) 
(UIAccessibilityAnnouncementNotification, @”New message”) 
(UIAccessbilityLayoutChangedNotification, NSString or UIView) 
etc... 
Wednesday, 3 September 14
Magic Tap 
Two-finger double-tap 
- (BOOL)accessibilityPerformMagicTap 
{ 
[self doAwesomeThing]; 
return YES; 
} 
Wednesday, 3 September 14
Getting back 
two-finger, scrub back and forth 
- (BOOL)accessibilityPerformEscape 
{ 
// Dismiss your view 
return YES; 
} 
Wednesday, 3 September 14
Not using UIKit? 
Wednesday, 3 September 14
It’s still possible! 
Wednesday, 3 September 14
Implement 
UIAccessibilityContainer 
protocol 
CustomContentAccessibility sample code 
from WWDC 2013 
Wednesday, 3 September 14
Testing VoiceOver 
Wednesday, 3 September 14
Have a plan 
Wednesday, 3 September 14
Test plans 
User Stories 
Use Cases 
Requirements 
Wednesday, 3 September 14
The simulator 
Wednesday, 3 September 14
Accessibility Inspector 
Wednesday, 3 September 14
On a device 
Wednesday, 3 September 14
Accessibility shortcut 
Triple-tap the home button 
Wednesday, 3 September 14
Siri - turn VoiceOver on 
Wednesday, 3 September 14
Screen curtain 
Three-finger triple-tap on the screen 
Wednesday, 3 September 14
User testing 
- @AppleVis (http://www.applevis.com) 
- WWDC labs 
- Charities and local councils 
- Support groups 
Wednesday, 3 September 14
Physical / Motor skills 
Wednesday, 3 September 14
Wednesday, 3 September 14
How does a person 
with limited physical/ 
motor skills use iOS? 
Wednesday, 3 September 14
Assistive Touch 
Wednesday, 3 September 14
Switch Control 
Wednesday, 3 September 14
Wednesday, 3 September 14
Setting up 
Switch Control 
Wednesday, 3 September 14
Wednesday, 3 September 14
Adding support 
Wednesday, 3 September 14
Switch Control finds 
elements that have 
actionable behaviour. 
Wednesday, 3 September 14
Basically, if you’ve added 
support through 
UIAccessibility APIs then it 
should work. 
Wednesday, 3 September 14
Testing Switch Control 
Wednesday, 3 September 14
On a device 
Wednesday, 3 September 14
User testing 
Wednesday, 3 September 14
Learning Difficulties 
Wednesday, 3 September 14
How does someone 
with learning 
difficulties use an 
iOS device? 
Wednesday, 3 September 14
Guided Access 
Wednesday, 3 September 14
How does Guided 
Access work? 
Wednesday, 3 September 14
Adding support 
UIGuidedAccessRestrictionDelegate 
Wednesday, 3 September 14
New in iOS 8 
Wednesday, 3 September 14
Visual Accommodations 
BOOL UIAccessibilityIsBoldTextEnabled(); 
BOOL UIAccessibilityIsReduceTransparencyEnabled(); 
BOOL UIAccessibilityDarkerSystemColorsEnabled(); 
BOOL UIAccessibilityIsReduceMotionEnabled(); 
Wednesday, 3 September 14
Why should you add 
accessibility 
support? 
Wednesday, 3 September 14
Wednesday, 3 September 14
"When we work on 
making our devices 
accessible by the blind, 
I don't consider the 
bloody ROI." 
- Tim Cook 
Wednesday, 3 September 14
More users. 
Wednesday, 3 September 14
Accessibility is 
for everyone. 
Wednesday, 3 September 14
Craftsmanship. 
Wednesday, 3 September 14
It’s it the most 
amazing thing 
you can do as a 
developer. 
Wednesday, 3 September 14
How many apps are 
accessible? 
Wednesday, 3 September 14
This slide 
intentionally left 
blank 
Wednesday, 3 September 14
How can we improve 
this? 
Wednesday, 3 September 14
Think about 
accessibility from the 
start. 
Wednesday, 3 September 14
Don’t put accessibility 
in the backlog. 
Wednesday, 3 September 14
If you have some 
open source code, 
add accessibility 
support. 
Wednesday, 3 September 14
If you use some 
open source code, 
add support and do 
a pull request. 
Wednesday, 3 September 14
Talk about it more. 
Wednesday, 3 September 14
Get involved with 
charities / councils / 
groups. 
Wednesday, 3 September 14
There’s still a lot to do. 
Wednesday, 3 September 14
What are some 
things you can do? 
Wednesday, 3 September 14
Spend a whole day 
with VoiceOver or 
Switch Control 
Wednesday, 3 September 14
Take one weekend 
and do something 
with accessibility 
Wednesday, 3 September 14
The Eyewriter 
Wednesday, 3 September 14
The Eyewriter 
Wednesday, 3 September 14
The Eyewriter 
Wednesday, 3 September 14
Work with a charity 
to run a hackathon or 
hack day 
Wednesday, 3 September 14
As a developer, 
it’s up to you to 
make your app 
accessible. 
Wednesday, 3 September 14
Facts 
✓ It’s a lot of people 
✓ It's simple 
✓ No app is too complicated to 
be accessible 
✓ Testing is straightforward 
Wednesday, 3 September 14
Resources 
Tessting Accessibility on iOS: 
developer.apple.com/library/ios/technotes/ 
TestingAccessibilityOfiOSApps 
Sample code for non-UIKit: 
developer.apple.com/library/ios/samplecode/ 
sc2216 
Accessibility programming guide for iOS: 
developer.apple.com/library/ios/documentation/ 
UserExperience/Conceptual/iPhoneAccessibility 
Impairment Simulator Software: 
www.inclusivedesigntoolkit.com 
Wednesday, 3 September 14
Thank you! 
Sally Shepard // @mostgood 
Wednesday, 3 September 14

More Related Content

Similar to Beyond VoiceOver: making iOS apps accessible

How to Stop Reinventing the Auth Wheel
How to Stop Reinventing the Auth WheelHow to Stop Reinventing the Auth Wheel
How to Stop Reinventing the Auth WheelRené Cacheaux
 
Design Patterns for Mobile Applications
Design Patterns for Mobile ApplicationsDesign Patterns for Mobile Applications
Design Patterns for Mobile ApplicationsC4Media
 
1 whats-new-in-ios7-m1-slides
1 whats-new-in-ios7-m1-slides1 whats-new-in-ios7-m1-slides
1 whats-new-in-ios7-m1-slidesMasterCode.vn
 
Lost in o auth? learn velruse and get your life back
Lost in o auth? learn velruse and get your life backLost in o auth? learn velruse and get your life back
Lost in o auth? learn velruse and get your life backAndrew Mleczko
 
3 whats-new-in-ios7-m3-uikit-slides
3 whats-new-in-ios7-m3-uikit-slides3 whats-new-in-ios7-m3-uikit-slides
3 whats-new-in-ios7-m3-uikit-slidesMasterCode.vn
 
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
 
Accessibility presentation at Drupal Government Days
Accessibility presentation at Drupal Government DaysAccessibility presentation at Drupal Government Days
Accessibility presentation at Drupal Government DaysPhase2
 
Integrating Ember.js into legacy applications
Integrating Ember.js into legacy applicationsIntegrating Ember.js into legacy applications
Integrating Ember.js into legacy applicationsLevelbossMike
 
Information Architecture: The Journey, The Destination, The Return Trip
Information Architecture: The Journey, The Destination, The Return TripInformation Architecture: The Journey, The Destination, The Return Trip
Information Architecture: The Journey, The Destination, The Return TripFrancis Zablocki
 

Similar to Beyond VoiceOver: making iOS apps accessible (10)

How to Stop Reinventing the Auth Wheel
How to Stop Reinventing the Auth WheelHow to Stop Reinventing the Auth Wheel
How to Stop Reinventing the Auth Wheel
 
Design Patterns for Mobile Applications
Design Patterns for Mobile ApplicationsDesign Patterns for Mobile Applications
Design Patterns for Mobile Applications
 
1 whats-new-in-ios7-m1-slides
1 whats-new-in-ios7-m1-slides1 whats-new-in-ios7-m1-slides
1 whats-new-in-ios7-m1-slides
 
Lost in o auth? learn velruse and get your life back
Lost in o auth? learn velruse and get your life backLost in o auth? learn velruse and get your life back
Lost in o auth? learn velruse and get your life back
 
Matt training-obj-v2
Matt training-obj-v2Matt training-obj-v2
Matt training-obj-v2
 
3 whats-new-in-ios7-m3-uikit-slides
3 whats-new-in-ios7-m3-uikit-slides3 whats-new-in-ios7-m3-uikit-slides
3 whats-new-in-ios7-m3-uikit-slides
 
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
 
Accessibility presentation at Drupal Government Days
Accessibility presentation at Drupal Government DaysAccessibility presentation at Drupal Government Days
Accessibility presentation at Drupal Government Days
 
Integrating Ember.js into legacy applications
Integrating Ember.js into legacy applicationsIntegrating Ember.js into legacy applications
Integrating Ember.js into legacy applications
 
Information Architecture: The Journey, The Destination, The Return Trip
Information Architecture: The Journey, The Destination, The Return TripInformation Architecture: The Journey, The Destination, The Return Trip
Information Architecture: The Journey, The Destination, The Return Trip
 

More from Sally Shepard

Swift on Raspberry Pi
Swift on Raspberry PiSwift on Raspberry Pi
Swift on Raspberry PiSally Shepard
 
Swift hardware hacking @ try! Swift
Swift hardware hacking @ try! SwiftSwift hardware hacking @ try! Swift
Swift hardware hacking @ try! SwiftSally Shepard
 
Porting iOS apps to tvOS
Porting iOS apps to tvOSPorting iOS apps to tvOS
Porting iOS apps to tvOSSally Shepard
 
Porting iOS apps to tvOS
Porting iOS apps to tvOSPorting iOS apps to tvOS
Porting iOS apps to tvOSSally Shepard
 
Helping Users Create Good Habits @ AltConf 2017
Helping Users Create Good Habits @ AltConf 2017Helping Users Create Good Habits @ AltConf 2017
Helping Users Create Good Habits @ AltConf 2017Sally Shepard
 
iOS Accessibility Testing Workshop
iOS Accessibility Testing WorkshopiOS Accessibility Testing Workshop
iOS Accessibility Testing WorkshopSally Shepard
 
Helping Users Create Good Habits @ MCE 2017
Helping Users Create Good Habits @ MCE 2017Helping Users Create Good Habits @ MCE 2017
Helping Users Create Good Habits @ MCE 2017Sally Shepard
 
Debugging Accessibility @ Craft Conf
Debugging Accessibility @ Craft ConfDebugging Accessibility @ Craft Conf
Debugging Accessibility @ Craft ConfSally Shepard
 
Debugging Accessibility
Debugging AccessibilityDebugging Accessibility
Debugging AccessibilitySally Shepard
 
Crafting Great Accessible Experiences
Crafting Great Accessible ExperiencesCrafting Great Accessible Experiences
Crafting Great Accessible ExperiencesSally Shepard
 
Developing for Apple TV
Developing for Apple TVDeveloping for Apple TV
Developing for Apple TVSally Shepard
 
Implementing Inclusive Interfaces
Implementing Inclusive InterfacesImplementing Inclusive Interfaces
Implementing Inclusive InterfacesSally Shepard
 
Building habits: keeping users engaged
Building habits: keeping users engagedBuilding habits: keeping users engaged
Building habits: keeping users engagedSally Shepard
 
Implementing inclusive interfaces in iOS
Implementing inclusive interfaces in iOSImplementing inclusive interfaces in iOS
Implementing inclusive interfaces in iOSSally Shepard
 
Extracurricular Swift
Extracurricular SwiftExtracurricular Swift
Extracurricular SwiftSally Shepard
 
Making an app like 'Clear' Accessible
Making an app like 'Clear' AccessibleMaking an app like 'Clear' Accessible
Making an app like 'Clear' AccessibleSally Shepard
 
Making apps for the Apple TV
Making apps for the Apple TVMaking apps for the Apple TV
Making apps for the Apple TVSally Shepard
 

More from Sally Shepard (19)

Swift on Raspberry Pi
Swift on Raspberry PiSwift on Raspberry Pi
Swift on Raspberry Pi
 
Swift hardware hacking @ try! Swift
Swift hardware hacking @ try! SwiftSwift hardware hacking @ try! Swift
Swift hardware hacking @ try! Swift
 
Porting iOS apps to tvOS
Porting iOS apps to tvOSPorting iOS apps to tvOS
Porting iOS apps to tvOS
 
Porting iOS apps to tvOS
Porting iOS apps to tvOSPorting iOS apps to tvOS
Porting iOS apps to tvOS
 
Helping Users Create Good Habits @ AltConf 2017
Helping Users Create Good Habits @ AltConf 2017Helping Users Create Good Habits @ AltConf 2017
Helping Users Create Good Habits @ AltConf 2017
 
iOS Accessibility Testing Workshop
iOS Accessibility Testing WorkshopiOS Accessibility Testing Workshop
iOS Accessibility Testing Workshop
 
Helping Users Create Good Habits @ MCE 2017
Helping Users Create Good Habits @ MCE 2017Helping Users Create Good Habits @ MCE 2017
Helping Users Create Good Habits @ MCE 2017
 
Debugging Accessibility @ Craft Conf
Debugging Accessibility @ Craft ConfDebugging Accessibility @ Craft Conf
Debugging Accessibility @ Craft Conf
 
Accessibility
AccessibilityAccessibility
Accessibility
 
Debugging Accessibility
Debugging AccessibilityDebugging Accessibility
Debugging Accessibility
 
Crafting Great Accessible Experiences
Crafting Great Accessible ExperiencesCrafting Great Accessible Experiences
Crafting Great Accessible Experiences
 
Developing for Apple TV
Developing for Apple TVDeveloping for Apple TV
Developing for Apple TV
 
Implementing Inclusive Interfaces
Implementing Inclusive InterfacesImplementing Inclusive Interfaces
Implementing Inclusive Interfaces
 
Building habits: keeping users engaged
Building habits: keeping users engagedBuilding habits: keeping users engaged
Building habits: keeping users engaged
 
Implementing inclusive interfaces in iOS
Implementing inclusive interfaces in iOSImplementing inclusive interfaces in iOS
Implementing inclusive interfaces in iOS
 
Extracurricular Swift
Extracurricular SwiftExtracurricular Swift
Extracurricular Swift
 
Inheriting iOS code
Inheriting iOS codeInheriting iOS code
Inheriting iOS code
 
Making an app like 'Clear' Accessible
Making an app like 'Clear' AccessibleMaking an app like 'Clear' Accessible
Making an app like 'Clear' Accessible
 
Making apps for the Apple TV
Making apps for the Apple TVMaking apps for the Apple TV
Making apps for the Apple TV
 

Recently uploaded

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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
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
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
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
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
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
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 

Recently uploaded (20)

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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
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
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
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!
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
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
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 

Beyond VoiceOver: making iOS apps accessible