WWDC 2021 : Optimiser VoiceOver dans un contexte riche en données

Cette présentation visualisable sur le site développeur officiel d'Apple (session 121) explique comment présenter un ensemble complexe de données avec VoiceOver en utilisant la fonctionnalité fournisseur de contenu personnalisé disponible depuis iOS 14.




Les thèmes abordés ainsi que leur référence temporelle au sein de la vidéo sont décrits ci-dessous :



Introduction (00:20) #

L'utilisation de VoiceOver pour présenter un ensemble de données peut devenir rapidement très problématique si on veut absolument vocaliser chacun des éléments affichés sans que cela ne soit réellement le souhait de l'utilisateur.

Pour bien comprendre le fournisseur de contenu personnalisé, une application initialement sans cette fonctionnalité est exposée pour mettre en avant les manquements à combler et optimiser ainsi son utilisation future.

Pour implémenter cette fonctionnalité, il est impératif d'importer le framework Accessibility (disponible depuis iOS 14) qui va permettre d'utiliser le protocole AXCustomContentProvider ainsi que la classe AXCustomContent.

Accès à l'extrait de la vidéo mentionnant le protocole et la classe utilisées.


Fonctionnement (02:29) #

L'implémentation du fournisseur de contenu personnalisé est immédiatement mise en évidence par une vocalisation spécifique réalisée automatiquement par VoiceOver qui, par ce biais, suggère l'utilisation du rotor pour obtenir de plus amples informations si besoin.


L'utilisateur est ainsi averti que des informations complémentaires sont disponibles en sélectionnant l'item du rotor intitulé Plus de contenus.
Il suffit ensuite de faire glisser un doigt verticalement pour faire défiler successivement chacune des informations proposées ⟹ 🎬

La fonctionnalité fournisseur de contenu personnalisé doit être activée par l'utilisateur dans ses réglages pour être détectée par le lecteur d'écran ⟹ 🎬




Programmation avec UIKit (04:57) #

Pour implémenter le fournisseur de contenu personnalisé à l'exemple proposé, quelques étapes indispensables sont nécessaires :

  • importer le framework Accessibility,

  • spécifier l'adaptation au protocole AXCustomContentProvider pour le type d'élément auquel la fonctionnalité va être rattachée,

  • définir la propriété accessibilityCustomContent liée à ce protocole en spécifiant chacune des informations que le fournisseur de contenu personnalisé sera susceptible de mentionner,

  • regrouper l'ensemble de ces informations dans un tableau qui sera retourné par la propriété précédente.

Le résultat est très satisfaisant mais il peut-être encore optimisé si, lors de la sélection de l'élément impacté, on souhaite tout de même mettre en avant une des informations créées précédemment ⟹ 🎬

La section développement iOS de ce site propose un éventuel complément d'informations avec une description réalisée l'an dernier à l'issue de la WWDC20.



Programmation avec SwiftUI (07:43) #

La nouveauté iOS 15 de cette fonctionnalité introduite dans la version iOS précédente réside dans son adaptation à SwiftUI.

L'ensemble des informations à définir est beaucoup plus condensée qu'avec UIKit.