Et si l'initiation à la programmation était accessible au plus grand nombre ? Notre ambition est de rendre SPY le plus accessible possible, il reste encore beaucoup de choses à faire mais nous y travaillons...
Voici la liste des fonctionnalités d'accessibilité actuellement intégrées dans SPY qui favorisent son accessibilité :
SPY exploite la synthèse vocale du navigateur web pour vocaliser son contenu. Pour utiliser la synthèse vocale du navigateur vous devez l'activer à l'aide du bouton "Synthèse vocale" situé au-dessus du canevas du jeu (pensez à sortir du mode plein écran pour pouvoir accéder à ce bouton).
Une fois la synthèse vocale activée vous pouvez indiquer si vous souhaitez que toute l'interface du jeu soit vocalisée ou seulement les consignes. Vous pouvez également contrôler la vitesse d'élocution de la synthèse vocale.
Une fois la synthèse vocale activée, déplacez-vous dans l'interface du jeu à l'aide de la navigation clavier ou de la souris pour que les textes soient automatiquement lus. Si vous avez coché la case "Consignes" (par défaut) seuls les textes d'introduction au début des missions seront lus. Si vous avez coché la case "Tout", n'importe quel élément d'interface (Menus, boutons, listes déroulantes, etc.) sera lu par la synthèse vocale.
Pour les utilisateurs utilisant un lecteur d'écran contenant leur propre synthèse vocale, il n'est pas utile d'activer cette option (voir section Détail lecteur d'écran).
Pour résoudre les différentes missions du jeu, les joueurs manipulent un langage de programmation à base de blocs. SPY offre trois méthodes pour manipuler ces blocs et saisir les programmes :
Ce mode d'interaction permet aux joueurs d'utiliser le pointeur de la souris (ou le doigt pour les dispositifs tactiles) pour glisser les blocs de l'inventaire dans les zones de programmation. Il est également possible avec cette méthode de modifier l'ordre des blocs à l'intérieur d'une zone de programmation pour modifier le programme.
Une fois un premier bloc ajouté dans une zone de programmation, vous pouvez utiliser le double-clic (ou double-tap) sur un bloc de l'inventaire pour l'ajouter automatiquement à la suite du dernier bloc ajouté.
Pour supprimer un bloc, le joueur peut glisser un bloc depuis une zone de programmation à l'extérieur de celle-ci, une alternative à cette méthode est d'effectuer un clic-droit sur le bloc à supprimer.
Cette option permet aux joueurs de se déplacer dans l'interface à l'aide des flèches directionnelles du clavier afin de se positionner sur le bloc à déplacer. Une fois positionné sur un bloc de programmation (qu'il soit dans l'inventaire ou déjà placé dans une zone de programme), appuyez sur la touche "Entrée" pour attraper le bloc. Utilisez les touches directionnelles du clavier pour déplacer le bloc dans l'interface puis appuyez à nouveau sur "Entrée" pour relâcher le bloc. Si le bloc est relâché dans une zone de programmation valide il sera ajouté au programme, sinon il sera supprimé.
Contrairement aux deux modes précédents, ici le joueur doit d'abord se positionner dans une zone de programmation à l'endroit où il souhaite insérer un nouveau bloc. Il appuie alors sur la touche "i" du clavier pour "insérer" un nouveau bloc. Automatiquement le focus est positionné sur le premier bloc disponible dans l'inventaire, le joueur peut alors parcourir les blocs disponibles et valider son choix avec la touche "Entrée". Le bloc sélectionné sera automatiquement ajouté au programme à l'endroit où la touche "i" avait été pressée.
Cette méthode permet également de modifier l'ordre des blocs dans un programme. Le joueur doit se positionner à l'endroit où il souhaite déplacer un bloc, appuyer sur "i", se positionner sur le bloc à déplacer dans le programme et appuyer sur "Entrée". Le bloc sélectionné sera automatiquement déplacé à l'endroit où la touche "i" avait été pressée.
À noter que si la touche "i" est pressée sur un bloc déjà intégré dans une zone de programmation, le nouveau bloc inséré sera ajouté juste avant le bloc sélectionné.
Pour accéder au canevas du jeu, naviguez dans la page jusqu'à arriver à l'objet "Application" ou "Zone interactive du jeu". Appuyez sur "Entrée" pour entrer dans le jeu. Une fois dans le jeu vous pouvez à tout moment appuyer sur : Appuyez sur la touche "Home" pour automatiquement sélectionner l'élément interactif le plus prioritaire ; "Shift + Entrée" pour sortir du canevas du jeu et revenir dans le contexte de la page web.
Un peu de technique : Lorsqu'un objet du jeu obtient le focus, sa description textuelle est automatiquement envoyée vers la balise HTML "ScreenReaderSpan" avec le rôle "status". Cette balise est définie avec les propriétés aria-live="assertive" et aria-atomic=true afin que le lecteur d'écran puisse être informé immédiatement des changements de son contenu et les rendre accessibles au joueur via la synthèse vocale ou une plage braille (testé avec une Brailliant Bi 40X et NVDA).
L'objectif du jeu est de déplacer un robot dans un labyrinthe, il est donc nécessaire de pouvoir accéder à une description de la scène de jeu et de suivre son évolution au cours de la simulation. Une description textuelle de la scène est en permanence synchronisée avec la balise HTML "DescMapSpan". Pour consulter l'état de la scène à un instant t, sortez du canevas du jeu avec "Shift + Entrée", le focus devrait automatiquement être positionné sur l'élément "Continuer la navigation" dans la page web. La description textuelle de la carte se trouve juste en dessous. Pour revenir dans le jeu, remontez jusqu'à retrouver la "Zone interactive du jeu" et appuyez sur "Entrée".