1. To be accessible
or not accessible
Romain Vincens
@romainvincens
romain@nomadplanet.fr romain@linxo.com
2. To be accessible
or not accessible
This is no more a question!
Romain Vincens
@romainvincens
romain@nomadplanet.fr romain@linxo.com
3. Merci spécial
Tanguy Loheac
tanguy.loheac@free.fr
@TanguyLoheac
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
4. Accessibilité ?
• Accessibilité s’attaque aux handicaps
• La déficience visuelle touche 1.5 millions de
français
• L’iPhone n’offre qu’une surface plate ?
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
5. VoiceOver
• Apple est en pointe en matière
d’accessibilité pour la déficience visuelle
• VoiceOver en natif sur tous les appareils
iOS et tous les Mac
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
7. Pour les développeurs
• Protocole UIAccessibility
accessibilityFrame
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
8. Pour les développeurs
• Protocole UIAccessibility
isAccessibilityElement
accessibilityElementsHidden
accessibilityValue
accessibilityTraits
accessibilityHint
accessibilityLanguage
accessibilityViewIsModal
accessibilityFrame
accessibilityActivationPoint
accessibilityLabel
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
9. Pour les développeurs
• Protocole UIAccessibility
isAccessibilityElement
accessibilityElementsHidden
accessibilityValue
accessibilityTraits
accessibilityHint
accessibilityLanguage
accessibilityViewIsModal
accessibilityFrame
accessibilityActivationPoint
accessibilityLabel
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
10. Pour les développeurs
• Protocole UIAccessibility
isAccessibilityElement
accessibilityElementsHidden
accessibilityValue
accessibilityTraits
accessibilityHint
accessibilityLanguage
accessibilityViewIsModal
accessibilityFrame
accessibilityActivationPoint
accessibilityLabel
• Implémenté en standard dans UIKit
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
11. Label & Hint
• VoiceOver synthétise l’accessibilityLabel
• Gratuit pour tout ce qui contient du texte:
UILabel, UIButton, UIAlertView, UITableViewCell,
UINavigationItem etc...
• accessibilityLabel permet aussi d’overrider le texte lu
par défaut
• Puis dans un deuxième temps l’accessibilityHint
• «Indice visuel»
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
13. Les traits
• Définit la nature de l’élément
• Et son état ou sa fonction
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
14. Les traits
• Définit la nature de l’élément
UIAccessibilityTraitLink
UIAccessibilityTraitButton UIAccessibilityTraitStaticText
UIAccessibilityTraitSearchField UIAccessibilityTraitImage
• Et son état ou sa fonction UIAccessibilityTraitPlaysSound
UIAccessibilityTraitSelected
UIAccessibilityTraitCausesPageTurn
UIAccessibilityTraitUpdatesFrequently
UIAccessibilityTraitAdjustable
UIAccessibilityTraitUpdatesFrequently
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
16. Les notifications
• Prononcer n’importe quel texte
UIAccessibilityAnnouncementNotification
• Notifier VO d’un changement majeur sur l’écran
UIAccessibilityLayoutChangedNotification
UIAccessibilityScreenChangedNotification
• Helper
UIAccessibilityPostNotification(UIAccessibilityNotifications notification,
id argument);
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
17. Les notifications
• Connaître le statut VO et adapter son UI
UIAccessibilityVoiceOverStatusChanged
UIAccessibilityIsVoiceOverRunning()
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
19. Custom UIView
• Si la vue est dessinée dans drawRect: elle ne
bénéficie pas de l’implé VO par défaut
• Implémentation de UIAccessibilityProtocol
- (NSInteger)accessibilityElementCount;
- (id)accessibilityElementAtIndex:(NSInteger)index;
- (NSInteger)indexOfAccessibilityElement:(id)element;
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
21. Tips and tricks
• alpha = 0.0 : toujours visible par VoiceOver
• Internationalisation du projet
• Ordre des éléments disposés dans
InterfaceBuilder
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
22. Avantages
• En général très rapide à mettre en place
• Elargissement de l’audience
• Fierté du travail bien fait
• Coup de pouce marketing
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
23. Inconvénients
• Ne s’applique pas à tous les types d’applications
(ex : app photos, jeux etc...)
• VO se comporte parfois de manière très bizarre
• Peu de ressources disponibles sur le sujet
• Contraintes temps/argent vs nombre
d’utilisateurs concernés
• Mais à part ça ?
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012
24. Il est donc temps de
vous y mettre !
Questions ?
Accessibilité dans iOS - Romain Vincens - Cocoaheads - 14 juin 2012