Navigation pratique, une interface intuitive, passer une commande en quelques clics - chaque jour, nous simplifions la vie des clients de nos applications, en tenant compte de leurs souhaits et de leurs douleurs. En raison du manque d'analyses nécessaires dans ce processus, nous manquons les demandes d'une grande catégorie d'utilisateurs potentiels avec des restrictions de santé qui ne peuvent pas utiliser les services mobiles simplement parce que vous n'êtes pas destiné ou que vous vous concentrez sur les problèmes d'accessibilité. Comment rendre votre application confortable pour les personnes ayant une déficience visuelle, explique le personnel de Dodo Pizza lors du décodage de la nouvelle version d' AppsCast .
Alexei Kudryavtsev: Aujourd'hui, nous parlons de la disponibilité des applications mobiles avec deux invités de
Dodo Pizza à la fois - Mikhail Rubanov (
akaDuality ) et Armen Khatayan. Les gars, parlez-nous de vous.
Mikhail Rubanov: Je suis le programmeur iOS de notre principale application de commande de pizza. Mon objectif est de développer la partie front-end du service, d'atteindre l'excellence technique, ce qui est impossible sans le support VoiceOver et la mise en œuvre de la disponibilité des applications.
Armen Khatayan: Pour moi, le sujet de l'accessibilité est particulièrement proche, car j'ai perdu la vue pendant mes études dans une université technique.
À un moment donné, j'ai réalisé que si les gens n'essaient pas d'améliorer la situation avec la disponibilité des applications, vous devez vulgariser ce problème vous-même et aider à le résoudre.
J'ai commencé à me familiariser avec diverses applications, à les tester et à envoyer les défauts trouvés à l'entreprise.
Une histoire intéressante est sortie avec Dodo Pizza. Les gars ont sorti le jeu
CMAN , disponible dans un télégramme, selon les résultats duquel j'ai réussi à venir au bureau de la société pour parler avec les développeurs, et après avoir été invité pour une interview. Maintenant, je m'occupe des problèmes d'accessibilité, de tester l'accès universel, d'élaborer des plans de test, de collecter les lacunes, ainsi que du support technique pour les utilisateurs.
Introduction à l'accessibilité
Alexei Kudryavtsev: Déterminons d'abord ce qu'est l'accessibilité.
Mikhail Rubanov: Il existe différents types d'accessibilité. Nous devons jouer à de nombreux jeux à deux mains, et si vous vous blessez la main, le jeu n'est plus disponible. Un cas extrême est une perte d'audition, de vision et de mobilité. Pour de telles situations, l'adaptation de l'application est possible.
Alexei Kudryavtsev: En quoi cela diffère-t-il de la convivialité?
Armen Khatayan: La convivialité est la convivialité de l'interface. Accessibilité - la possibilité d'utiliser l'interface en cas de restrictions. L'accessibilité intérieure peut être l'utilisabilité.
Mikhail Rubanov: Il y a plusieurs étapes d'adaptation de l'application. La première étape suppose que l'application est cassée partout et vous ne pouvez qu'entrer et relancer le script. Après une petite adaptation, vous pouvez passer de l'application à l'action cible, tandis que l'exécution de l'action est possible, mais le processus lui-même n'est pas pratique. La dernière étape est l'adaptation de l'action la plus ciblée, en tenant compte du confort et de la rapidité d'utilisation.
Alexei Kudryavtsev: Pour les personnes avec quelles limitations avez-vous besoin d'adapter les applications?
Armen Khatayan: Les contraintes sont divisées en fonctionnelles et mentales. Déficience fonctionnelle de la vision, de l'ouïe, de la mobilité. Les mentaux impliquent une violation de la psyché, la capacité de percevoir adéquatement le monde. Les solutions à ces deux catégories de restrictions sont complètement différentes.
Mikhail Rubanov: Je vais donner quelques exemples. VoiceOver peut convenir à la fois aux aveugles et aux personnes ayant des troubles moteurs, comme par exemple
Stalingulag ou Stephen Hawking. Dans ce cas, VoiceOver vous aide à vous concentrer sur des éléments spécifiques, à les activer et à interagir avec l'ensemble de l'application à l'aide d'un appareil spécial.
Un autre exemple. L'une de nos pizzerias à Tcheliabinsk emploie des personnes malentendantes. Dans notre workflow, l'assistant vocal exprime la réception d'une nouvelle pizza sur le tracker, mais ce signal sonore n'est pas disponible pour ces employés et, pour ne pas manquer la commande, ils doivent passer plus de temps sur la tablette. Pour eux, une excellente solution au problème est une ampoule qui s'allume lorsque la commande apparaît.
À propos des problèmes cognitifs. Lors de la sortie d'iOS 7, l'arrière-plan du bureau a commencé à bouger selon l'accéléromètre et beaucoup ont écrit qu'ils étaient malades du mouvement. Ensuite, il y avait un réglage de mouvement, qui vous permet de réduire le mouvement de l'écran, y compris le nombre d'animations. Ceci est utile, par exemple, pour les personnes souffrant d'épilepsie.
Problèmes de disponibilité des applications
Alexei Kudryavtsev: Quels problèmes les gens rencontrent-ils avec les applications?
Armen Khatayan: Il y a beaucoup de problèmes. Souvent, les boutons d'application ne sont pas signés et vous devez piquer au hasard, vérifiez de quoi il s'agit. La situation est simplifiée si le bouton a une image d'arrière-plan, puis VoiceOver hérite de son nom et, connaissant l'anglais, vous pouvez deviner le but de l'élément.
Le bouton n'est peut-être pas disponible du tout. Si un développeur attrape un clic sur une vue, par exemple une image, et traite le clic, je ne peux pas cliquer dessus avec mon VoiceOver.
Mikhail Rubanov: Lorsque vous essayez de créer un messager et de positionner le début du dialogue au bas de l'écran, les collections et les tableaux sont souvent renversés, puis les cellules sont retournées. Il semblerait que tout fonctionne, mais avec une telle opération dans VoiceOver, le geste de défilement est inversé.
Il arrive que pour afficher un nouvel écran, au lieu d'implémenter la transition à l'aide de contrôleurs, ils ajoutent une vue, mais ils n'y accrochent pas firstResponder. Par conséquent, View est complètement inaccessible et, comme il est impossible de se concentrer dessus, le script entier se ferme.
Alexei Kudryavtsev: La situation de la disponibilité des applications sur le marché s'améliore-t-elle? Y en a-t-il plus?
Armen Khatayan: Je pense que oui.
Afin de rendre les applications disponibles plus nombreuses, vous avez besoin soit d'utilisateurs qui en font la demande, soit de développeurs dont la culture comprend déjà qu'une partie du temps de développement devrait être consacrée à l'accessibilité.
Aux États-Unis, par exemple, il existe
la loi américaine sur les personnes handicapées (ADA) , selon laquelle toutes les entreprises, en particulier les sociétés géantes comme Google et Facebook, sont obligées de créer des produits en tenant compte de l'accessibilité pour toutes les catégories. Le non-respect de cette loi permet aux Américains de poursuivre les entreprises.
Alexei Kudryavtsev: Comment cette question est-elle réglementée dans d'autres pays et en Russie?
Armen Khatayan: Dans la même Amérique, il existe
des directives d'accessibilité du contenu Web , qui aident à développer des produits accessibles. En Russie, cela est encore de nature consultative, mais il est estimé que la société et l'État tentent de rendre la vie des personnes handicapées plus accessible. Par exemple, récemment, nous avons appris que nous avions un paddock pour les personnes en fauteuil roulant équipé d'un ascenseur.
Prérequis pour l'adaptation des applications
Alexei Kudryavtsev: Comment a commencé le travail sur l'accessibilité dans Dodo Pizza?
Mikhail Rubanov: Il y a un an, la Sberbank a adapté son application et a commencé à promouvoir cette idée auprès des masses. Ils ont reçu la visite d'Anatoly Popko, un aveugle qui popularise l'idée qu'il n'y a pas de meilleur moment pour être aveugle que maintenant, car un smartphone est devenu une meilleure source d'aide. J'ai regardé la vidéo avec sa participation et j'ai réalisé que même si je peux faire de bonnes interfaces, mes décisions ne fonctionnent pas pour un certain nombre de personnes.
Quand nous voyons un taux de crash de 98%, les gens qui ne peuvent pas passer une commande commencent à nous inquiéter beaucoup. Dans le même temps, il y a des gens qui ne peuvent pas du tout utiliser notre application, mais personne ne donne d'analyse à ce sujet.
L'estime de soi a été blessée, et je suis allé comprendre le cadre. Il s'est avéré qu'il y avait peu de documents sur le sujet et ils ont été écrits superficiellement. Je me suis enterré, le vendredi soir pendant quelques heures, j'ai contourné l'application, j'ai essayé de réparer quelque chose. Commencé avec des choses simples - sous-titré des boutons avec des images, fini avec des écrans qui n'étaient pas disponibles. Après un mois d'immersion, j'ai préparé une présentation sur l'accessibilité, que nos produits ont vue, réalisé le problème et donné le feu vert au libre développement de la technologie, adaptation du cadre. Il y a trois mois, Armen est apparu dans notre équipe et cela a grandement aidé à améliorer l'application.
Daniil Popov: Une analogie sympa avec le taux d'accident. Lorsque nous avons un demi-pour cent d'utilisateurs souffrant de plantages, nous nous en occupons, et quand un demi pour cent ne peut pas utiliser l'application du tout, nous ne le savons même pas.
La conclusion est logique: pensez à toutes les catégories de personnes susceptibles d'utiliser votre application.
Alexei Kudryavtsev: Avez-vous des analyses sur le nombre de ces utilisateurs?
Mikhail Rubanov: Il y a un problème d'analyse générale, car il n'y a pas de statistiques claires sur le nombre d'aveugles en général en Russie et dans la CEI. Vous pouvez calculer indépendamment le nombre d'utilisateurs pour lesquels VoiceOver est activé sur les appareils. Il existe une méthode isVoiceOverRunning dans la classe UIAccessibility, qui peut être définie pour exécuter l'application.
Alexei Kudryavtsev: Dans quelle mesure avez-vous adapté l'application avant de réussir à vendre l'idée à la direction?
Mikhail Rubanov: Cela a aidé à ce que le thème de l'accessibilité coïncide avec les valeurs de l'entreprise: "La pizza est une fête", "La pizza pour tout le monde". L'idée a impressionné les développeurs, le produit et n'a pas pris beaucoup de temps et d'argent.
Le plan de mise en œuvre peut être assez simple: obtenez le scénario principal et voyez quelle sera la réaction. Les aveugles ont une forte communauté, il y a des groupes où ils discutent des applications et des interactions avec eux. Nous n'avons pas annoncé notre adaptation par le biais des notes de version, les gens des réseaux sociaux ont eux-mêmes commencé à écrire sur l'application, les informations ont été diffusées par le bouche à oreille. C'est l'argent.
Armen Khatayan: Au départ, l'accessibilité est perçue comme de la charité. Il est nécessaire d'allouer du temps et des ressources et il n'est pas clair quel avantage cela apportera. Puis vient la compréhension que l'argent des utilisateurs aveugles est exactement le même que celui des voyants.
Peu importe qui achète la pizza, il est important de lui en donner l'occasion.
Interaction avec VoiceOver
Daniil Popov: Parlons du volet technique. Qu'est-ce que VoiceOver et comment ça marche?
Armen Khatayan: VoiceOver fournit des informations visuelles au format audio. Il exprime les méta-informations qui se trouvent sur les éléments d'interface et, éventuellement, même graphiquement inaccessibles.
Il existe plusieurs façons d'activer VoiceOver. La façon la plus simple est de demander à Siri à ce sujet avec la phrase «Siri, allumez VoiceOver». Vous pouvez l'activer via le paramètre de l'élément d'accessibilité et en triple cliquant sur le bouton Accueil ou le bouton de verrouillage (sur les appareils plus anciens où le bouton Accueil n'est pas), VoiceOver s'activera ou se désactivera. Après la mise sous tension, la façon de contrôler l'appareil change: avec une seule touche de l'écran, ce qui se trouve sur cette partie de l'écran est exprimé; en double-cliquant sur un élément est activé (en cliquant sur un bouton ou une autre action cible); Pour faire défiler, vous devez utiliser trois doigts.
Daniil Popov: Utilisez-vous l'accessibilité dans la version Android de l'application? Et combien de fonctionnalités correspondent entre les plates-formes?
Armen Khatayan: Android a ses propres services d'accessibilité. TalkBack est responsable de la vision. La fonctionnalité est identique à VoiceOver, bien qu'il arrive que dans Android, certaines fonctionnalités fonctionnent mieux que dans iOS. Jusqu'à présent, il n'y a pas assez de temps pour notre application Android, mais nous commencerons bientôt à nous adapter.
Daniil Popov: Il y a souvent une situation dans une application où certains éléments d'interface sont bloqués parce que les valeurs ne sont pas entrées dans les champs de saisie. Comment VoiceOver fait-il savoir à l'utilisateur malvoyant que le bouton est verrouillé et qu'une autre action doit être entreprise pour le déverrouiller?
Mikhail Rubanov: Il existe une collection de traits d'accessibilité dans iOS - plusieurs paramètres qui vous permettent de changer la façon dont vous interagissez avec un élément. Vous pouvez signer chaque élément avec son nom, sa valeur et déposer l'une des propriétés. Il existe une valeur
sélectionnée pour gérer les listes ou
désactivée pour indiquer un élément inaccessible. Il y a un trait
réglable intéressant qui s'applique à divers curseurs, steppers, lorsque vous pouvez changer la valeur d'un élément avec des balayages haut / bas et il parlera à nouveau.
Il existe une option pour activer directement l'interaction, par exemple, un panneau sur lequel vous pouvez dessiner afin de laisser une signature sur un chèque dans un restaurant. Il existe plusieurs paramètres pour le multimédia: après avoir appuyé sur le bouton, le son ou le film démarre immédiatement, et VoiceOver doit se désactiver jusqu'à ce qu'il recommence à interagir avec l'écran.
Pas besoin de clôturer les béquilles: définissez le réglage et le système lui-même dira tout avec la bonne intonation.
Fonctionnalités de travail avec VoiceOver
Alexei Kudryavtsev: Vous avez dit que travailler avec l'accessibilité change la conscience et n'est pas aussi simple qu'on pourrait le croire à première vue. À quoi le développeur doit-il faire face lorsqu'il s'immerge dans le processus?
Mikhail Rubanov: Si nous parlons des difficultés de travailler avec VoiceOver, nous avons constaté que nous devons prononcer certains éléments. Par exemple, l'apparence d'un message contextuel dans l'application (pas un push standard, mais un message de panneau sur la passation d'une commande) doit être discutée via une notification d'accessibilité postérieure. Nous sommes confrontés au fait que lorsque vous appuyez sur le bouton, VoiceOver interrompt notre texte et prononce le nom du bouton. Nous avons résolu le problème: envelopper tout dans la répartition après, le déplacer pendant 100 millisecondes et tuer VoiceOver de manière indépendante.
La principale difficulté est qu'en essayant de trouver une solution, vous essayez de la trouver sur Internet, mais les méthodes que d'autres proposent ne fonctionnent presque pas toujours.
Nous avons nettoyé l'application elle-même des béquilles. Lorsque vous travaillez avec l'accessibilité, il est important d'afficher correctement les contrôleurs. Comme je l'ai mentionné plus tôt, dans certains projets, lors de la création d'un nouvel écran, ils ont simplement ajouté une nouvelle vue à la hiérarchie, sans s'assurer que firstResponder fonctionnait correctement. En conséquence, VoiceOver ne l'a pas vue. Nous l'avons refait à un contrôleur normal et tout a été réparé immédiatement.
Notre système de conception a des contrôles pour changer la taille, la quantité et avant qu'ils ne soient divisés en plusieurs boutons. Par exemple, la quantité pas à pas a été émise avec les boutons «moins», «plus», la quantité et le prix total des marchandises. Nous avons tout combiné en un seul contrôle. Maintenant, vous pouvez augmenter la quantité avec un balayage vertical, et immédiatement un nouveau prix sera révélé. Ce contrôle est utilisé à plusieurs endroits de l'application, donc une solution a pu améliorer plusieurs écrans à la fois.
Daniil Popov: Sur Instagram, la plupart des applications sont liées aux images. Comment VoiceOver fonctionne-t-il avec ce contenu?
Mikhail Rubanov: Instagram suggère de télécharger une photo pour faire une signature pour les aveugles. De plus, le service a déjà évolué de la simple présentation de photos dans l'histoire, accompagnées de photos. De plus, vous pouvez désormais utiliser la vidéo avec le son. L'iPhone essaie également de reconnaître les photos et les visages, rapporte ce qui est sur l'image, sa netteté.
La technologie évolue. Sur Netflix, par exemple, vous pouvez regarder des films avec des sous-titres spéciaux qui indiquent également ce qui se passe à l'écran.
Daniil Popov: Comment maintenir l'équilibre? Pour les utilisateurs ordinaires, je veux montrer un maximum de belles animations avec des transitions fluides, des effets 3D, mais je veux aussi que les personnes malvoyantes puissent utiliser pleinement l'application.
Mikhail Rubanov: Si nous parlons d'optimisation des ressources, de nombreuses méthodes dans iOS passent le paramètre
animé. Vous pouvez vous y fier ou la définir vous-même, par exemple, désactiver l'animation via isVoiceOverRunning. Dans ce cas, vous pouvez entailler la fonctionnalité, tester, trouver une solution de contournement. VoiceOver possède de nombreuses technologies différentes qui vous permettent d'adapter le contenu. Il y a même la possibilité de contrôler l'intonation de la voix agissant sur la voix. Vous avez juste besoin d'apprendre le cadre.
Daniil Popov: Je n'aime pas vraiment l'option de pousser sur chaque bouton de l'écran. Facebook a des dizaines de ces boutons, et le processus se transforme en moquerie. Existe-t-il des mécanismes plus pratiques?
Armen Khatayan: L'interface pour l'utilisateur aveugle est radicalement différente de l'interface graphique. VoiceOver a la possibilité d'apprendre l'interface de deux manières: séquentiellement et au hasard. S'il est étudié séquentiellement, le curseur se déplace à travers chaque élément tel qu'il est spécifié dans la hiérarchie. Glisser vers la droite se déplace vers l'élément suivant, vers la gauche - vers le précédent. Avec un glissement vers la droite, vous pouvez entièrement parcourir toute l'interface et comprendre où quelque chose n'est pas disponible.
Alternativement, vous pouvez simplement faire le tour de l'écran et voir où se trouve ce qui se trouve. D'après mon expérience, la plupart des aveugles utilisent la navigation séquentielle, car c'est plus pratique.
Sur Facebook, par exemple, il y a un fil d'actualité avec des publications, chacune ayant des boutons comme, partager, photos, liens. Facebook a fait de chaque publication un élément distinct. Tout ce qui concerne les actions avec cette publication est fait dans l'action personnalisée. Glisser vers la droite supprime une cellule ou un message, un glissement vertical peut sélectionner cette action. Dans les publications, les balayages verticaux vous aident à naviguer à travers toutes les actions: mettre une réaction, partager, voir des informations détaillées.
Mikhail Rubanov: Côté technique, VoiceOver ne passe pas en revue les fonctionnalités de l'entreprise, mais aide même à comprendre comment les réaliser. Par exemple, beaucoup passent à un système de conception où tous les contrôles sont réduits au minimum et seuls ils sont utilisés. Travailler sur les commandes de base vous permet de garantir la disponibilité de la plupart des écrans. Scier des béquilles en cas de transitions et montrer correctement les contrôleurs fournit un support VoiceOver et rend l'application plus propre.
Tester l'application est simple. Choisissez un scénario réussi et essayez de marcher dessus. Vous verrez un grand nombre de problèmes. En adaptant un scénario complet réussi, vous résoudrez la plupart des problèmes. Les scénarios d'erreurs et de comportements non standard resteront et la consultation d'une personne spécialisée dans ce domaine est déjà nécessaire.
Armen nous a aidés dans ce domaine et, bien que nous soyons sûrs que notre candidature était bien adaptée, il nous a convaincus.
Armen Khatayan: Oui, une personne confrontée à des restrictions dans sa vie quotidienne en dira beaucoup plus à ce sujet.
VoiceOver possède des fonctionnalités qui vous aideront à vous rapprocher des aveugles. Vous devez appuyer trois fois sur l'écran et il s'éteindra. D'une manière si simple, vous pouvez plus facilement comprendre les aveugles.
Lors de l'adaptation, il est important de respecter certaines règles lors de la nomination des signatures. S'il s'agit d'un bouton, il n'est pas nécessaire de répéter encore une fois qu'il s'agit d'un bouton. Il ne doit y avoir qu'une action que le bouton effectue. Par exemple, «créer une note» au lieu de «créer une nouvelle note». Avant d'ajouter une étiquette, déterminez si elle reflète vraiment son essence.
Mikhail Rubanov: Un rédacteur technique, s'il y en a un, peut facilement traiter ce problème dans l'entreprise.
Soit dit en passant, Apple à la WWDC a montré une puce dans MacOS lorsque vous pouvez travailler avec le système d'exploitation en utilisant la voix: demandez-lui de montrer toutes les signatures à l'écran, de numéroter et de dire laquelle doit être adaptée. Si votre application fonctionne déjà avec VoiceOver, l'innovation démarre automatiquement après la recompilation. Malheureusement, jusqu'à présent, cela ne fonctionne qu'en Amérique et en anglais.
Alexei Kudryavtsev: Quels outils en plus de VoiceOver aident les personnes ayant d'autres restrictions de santé à utiliser des applications?
Mikhail Rubanov: Il existe DymanicType qui vous permet de définir la taille de la police. Cela développe la compétence du développeur iOS en matière d'écriture de contrôles, car lorsqu'ils ont dit au contrôle qu'il peut augmenter de 3 à 4 fois, d'autres solutions doivent être inventées et au lieu de faire défiler les cellules horizontalement, faites une liste déroulante et adaptez-la.
Il existe des options telles que la réduction de la transparence ou la réduction des adaptations de mouvement pour les personnes ayant une déficience visuelle ou celles qui sont bercées, mais nous ne les avons pas encore atteintes. Dans la direction d'autres technologies, nous n'avons pas encore creusé.
Alexei Kudryavtsev: Quelle est la qualité de l'API d'accessibilité d'Apple? Y a-t-il des défauts?
Mikhail Rubanov: Elle est plutôt cool et m'a fait pomper dans l'écriture des contrôles et des transitions. Il y a un débogage assez compliqué, car si vos boutons ne sont pas disponibles ou que leur ordre est devenu différent, vous ne pouvez le corriger qu'en devinant comment cela fonctionne. Cela m'a aidé à imaginer comment j'écrivais moi-même une telle technologie si j'avais une hiérarchie de vues avec des vues et la possibilité d'en extraire une étiquette.
Alexei Kudryavtsev: Les développeurs ont souvent du mal à construire la bonne hiérarchie. Comment gérez-vous cela?
: . , , , , Facebook .
action, , , actions VoiceOver.
, , , «» — , . , accessibility value — . . , , .
. accessibility elements . , . — , isAccessibilityElement == false ., isAccessibilityElement == true, VoiceOver . .
Accessibility?
: , , ?
: , , , . , . .
, , , .
. . : Android , , , .
, , . «button», «button», «button». , - , , . «button» .
: , flow accessibility. , flow ? ?
: , , VoiceOver .
: VoiceOver ?
: , UI-, . VoiceOver, UI-. , accessibility value, accessibility label unit-. . , UI- #if UITEST .
: ?
: , , . , VoiceOver , . , «, , …» . .
: . , VoiceOver, . «» , . , .
Best practices
: accessibility?
: UIAccessibility.h . , . Apple : , , . , .
: WWDC ?
: , accessibility. ,
.
: , ?
: Applevis : ,
.
- , , . , , «
» — .
. , : Accessibility Inspector Xcode, , .
-, .
-, accessibility, .
: Accessibility — - , . , iOS . , .
. . , . , . , , .
, , 21-22 - AppsConf. iOS- accessibility Juno.
AppsCast , , SoundCloud , .