Inscription aux options d’ergonomie des technologies d’assistance

Cet article explique comment inscrire une application d’accessibilité auprès du Centre d’ergonomie. Il explique également comment personnaliser votre application d’accessibilité pour qu’elle fonctionne correctement avec le bureau sécurisé.

Le Centre d’ergonomie est une application Panneau de configuration pour Microsoft Windows qui regroupe des fonctionnalités d’accessibilité et de facilité d’utilisation. À l’aide du Centre d’ergonomie, les utilisateurs peuvent configurer leurs ordinateurs en fonction de leurs besoins physiques et cognitifs.

L’une des fonctions du Centre d’ergonomie est d’aider les utilisateurs à lancer des applications d’accessibilité, notamment le Narrateur, le clavier visuel et la Loupe. Les applications tierces inscrites apparaissent également dans le Centre d’ergonomie et peuvent être lancées directement à partir de cet emplacement.

Les applications d’accessibilité doivent fonctionner sans problème avec le bureau sécurisé. Le bureau sécurisé est l’interface utilisateur qui s’affiche lorsque l’ordinateur est verrouillé (lors de la connexion ou lorsque l’utilisateur a verrouillé le bureau) et lorsque l’utilisateur est invité à autoriser une action potentiellement dangereuse. Pour des raisons de sécurité, Windows impose des limites aux logiciels tiers exécutés sur le bureau sécurisé. Si vous souhaitez que votre application d’accessibilité s’exécute sur le bureau sécurisé, vous devez inscrire l’application auprès du Centre d’ergonomie.

Inscription auprès du Centre d’ergonomie

Les applications d’accessibilité s’inscrivent auprès du Centre d’ergonomie en créant une ou plusieurs clés de Registre lors de l’installation de l’application. Le tableau suivant répertorie les informations contenues dans les clés de Registre.

Nom Description Obligatoire/facultatif Langue
Nom de l’application Nom de l’application, qui se trouve dans un fichier de ressources. Cette valeur de Registre contient une chaîne dans un format spécifié. Il peut s’agir d’une version localisée du nom de l’application, si l’application est localisée dans d’autres langues que l’anglais. Le nom apparaît dans le Centre d’ergonomie.
Obligatoire Localisée
ATExe Nom du fichier exécutable ou de l’image de l’application. Windows utilise cette valeur pour déterminer si l’application d’accessibilité est en cours d’exécution.
Obligatoire Non localisé
CopySettingsToLockedDesktop Valeur DWORD qui indique s’il faut copier les paramètres de l’application d’accessibilité sur le bureau verrouillé.
Si cette valeur est 1, l’application peut écrire des paramètres dans un emplacement dans le registre des utilisateurs, et Windows copie les paramètres au même emplacement dans le registre des utilisateurs pour le bureau verrouillé. Cela permet à l’application de conserver son état du bureau « normal » vers le bureau verrouillé.
Facultatif Non localisé
Description Brève description de l’application, à partir d’un fichier de ressources. Cette valeur de Registre contient une chaîne dans un format spécifié. Il peut s’agir d’une version localisée de la description, si l’application est localisée dans d’autres langues que l’anglais. La longueur de cette chaîne doit être inférieure à 512 caractères.
La description apparaît dans le Centre d’ergonomie pour fournir à l’utilisateur des informations supplémentaires sur l’application d’accessibilité.
Cette valeur peut également être utilisée pour informer l’utilisateur que l’application n’est pas utilisée sur le bureau sécurisé.
Obligatoire Localisée
Profil Bref élément XML qui spécifie les aménagements que l’application fournit. Il garantit que l’application apparaît sous la catégorie appropriée dans le Centre d’ergonomie.
Obligatoire Non localisé
PassiveAutoStartBehavior

Valeur DWORD qui indique si le comportement de démarrage automatique hérité est activé.

La valeur par défaut est 0, ce qui indique qu’un at nécessite un comportement de démarrage automatique hérité. Cela entraîne l’activation du paramètre « Démarrer après la connexion » pour ce paramètre AT dans l’expérience OOBE (Out Of Box Experience) et la Panneau de configuration (voir Panneau de configuration -> Facilité d’accès - Options d’ergonomie ->> Modifier les paramètres de connexion) et démarre automatiquement at après UAC et l’écran de verrouillage.

La valeur 1 indique que l’at doit utiliser le nouveau comportement de démarrage automatique où le paramètre « Démarrer après la connexion » pour cette at n’est pas activé dans l’expérience OOBE (Out Of Box Experience) et Panneau de configuration, et l’at est automatiquement démarré une fois par session utilisateur (à la connexion) uniquement si le paramètre « Démarrer après la connexion » est activé.

Facultatif Non localisé
SecureDesktopAccommodation Nom d’une autre application d’accessibilité à exécuter sur le bureau sécurisé à la place de cette application. L’autre peut être une autre application, une version différente de la même application, l’une des applications d’accessibilité incluses dans Windows, ou « aucune » si vous ne souhaitez exécuter aucune application d’accessibilité sur le bureau sécurisé.
Facultatif Non localisé
Profil simple Valeur qui décrit comment classifier l’application en un mot ou deux : Lecteur d’écran, Loupe ou Clavier visuel, par exemple.
Obligatoire Non localisé
StartExe Chemin d’accès complet de l’exécutable. Cette valeur est utilisée pour lancer l’application d’accessibilité.
Obligatoire Non localisé
StartParams Arguments de ligne de commande Ces valeurs sont utilisées avec StartExe pour démarrer l’application.
Facultatif Non localisé
TerminateOnDesktopSwitch Valeur DWORD qui spécifie la façon dont l’application d’accessibilité répond aux transitions vers ou depuis le bureau sécurisé.
Si cette valeur n’existe pas ou est 1, Windows arrête et redémarre l’application à chaque transition vers ou depuis le bureau sécurisé. Il s'agit du comportement par défaut.
Si cette valeur est 0, Windows n’arrête pas l’application d’accessibilité sur une transition de bureau. L’application continue à s’exécuter sur le bureau précédent, et Windows démarre une nouvelle instance sur le nouveau bureau si une instance ne s’exécute pas déjà ici.
Facultatif Non localisé

Localisation

Les valeurs de Registre nom et description de l’application doivent être localisables pour prendre en charge l’interface utilisateur multilingue (MUI).

Ces chaînes sont au format suivant, où les crochets d’angle signifient les éléments requis et les crochets signifient un élément facultatif.

@<ResDllPath\ResDLLFilename>,-<resID>[;< comment>]

<ResDllPath\ResDLLFilename> est le chemin d’accès à la DLL de ressource. Le chemin d’accès peut contenir des variables d’environnement.

<resID> est l’ID de ressource de la chaîne.

[comment] contient tous les commentaires facultatifs.

Voici un exemple :

@%SystemRoot%\system32\anyAT.dll,-5020

Pour plus d’informations sur muI, consultez Centre de connaissances Windows MUI.

Profil HCI

Le profil Human Computer Interaction (HCI) est un moyen de déterminer les aménagements à fournir en fonction des besoins de l’utilisateur. Les applications d’accessibilité doivent enregistrer des informations sur le type de handicap que l’application aide à prendre en charge.

La valeur du Registre profil contient du code XML qui décrit le type de handicap ciblé par l’application d’accessibilité. Ce code XML a le format suivant :

<HCIModel>
<Accommodation type="disability"/>
</HCIModel>

Les valeurs valides pour l’attribut de type Accommodation sont les suivantes :

  • vision légère
  • vision sévère
  • cognitive légère
  • cognitive grave
  • légère dextérité
  • dextérité grave
  • ouïe légère
  • ouïe grave
  • voix légère
  • voix grave

Notes

Ces valeurs respectent la casse.

Si une application d’accessibilité prend en charge plusieurs hébergements, la valeur du Registre profil doit inclure un attribut de type Accommodation pour chaque hébergement.

Détails du Registre de facilité d’accès

Pour inscrire votre application d’accessibilité, vous devez créer une clé pour votre application à l’emplacement de Registre suivant et la remplir avec des paires nom-valeur.

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\

Nommez la clé de Registre de votre application au format suivant :

« CompanyName_ProductName_v# »

Par exemple, « Contoso_Magnifier_v2.0 ».

Pour ajouter des valeurs de Registre, votre programme d’installation doit s’exécuter avec des privilèges élevés.

Hébergement sécurisé des postes de travail

La clé de Registre SecureDesktopAccommodation vous permet de spécifier la façon dont votre application d’accessibilité répond au bureau sécurisé. Par défaut, le Centre d’accès facile lance votre application sur le bureau sécurisé si elle s’exécute déjà sur le bureau normal ou si elle est configurée pour s’exécuter sur le bureau d’ouverture de session. À l’aide de la clé SecureDesktopAccommodation , vous pouvez :

  • Spécifiez une autre version de votre application à utiliser sur le bureau sécurisé. Par exemple, vous pouvez avoir une autre version qui désactive les fonctionnalités non sécurisées ou qui est optimisée pour utiliser moins de mémoire et lancer plus rapidement.

    Pour spécifier l’autre version, définissez la clé SecureDesktopAccommodation sur le nom de la version alternative. Par exemple, si vous avez inscrit votre application à la clé Contoso_Screen Reader_v1.0, vous pouvez inscrire l’autre version à Contoso_Screen ReaderSecure_v1.0. Ensuite, définissez la clé SecureDesktopAccommodation de Contoso_Screen Reader_v1.0 sur « Contoso_Screen ReaderSecure_v1.0 ».

  • Spécifiez une application d’accessibilité Microsoft à utiliser sur le bureau sécurisé à la place de votre application. Pour cette option, définissez SecureDesktopAccommodation sur le nom de l’application d’accessibilité Microsoft particulière : « osk », « loupepane » ou « Narrateur ».

  • Spécifiez que votre application ne doit pas s’exécuter sur le bureau sécurisé, ni aucune autre application. Pour cette option, définissez SecureDesktopAccommodation sur « none » (recommander) ou le nom d’une application inexistante.

Si la clé de Registre SecureDesktopAccommodation pour votre application d’accessibilité spécifie une application d’accessibilité Microsoft à exécuter sur le bureau sécurisé à la place de votre application, Windows en avertit l’utilisateur lors de la transition vers le bureau sécurisé. Pour informer l’utilisateur, Windows affiche la chaîne spécifiée dans la clé de Registre Description de votre application. Par exemple, si l’application ScreenReader Deluxe 1.0 utilise Microsoft Narrateur sur le bureau sécurisé, elle inclut une chaîne description telle que « Le Narrateur Microsoft sera utilisé dans les bureaux verrouillés, d’ouverture de session et d’autres bureaux sécurisés à la place de ScreenReader Deluxe 1.0 ».

Si la clé SecureDesktopAccommodation de votre application est définie sur « none », utilisez la clé Description pour indiquer à l’utilisateur que votre application n’est pas disponible sur le bureau sécurisé et qu’aucune alternative n’est fournie.

Windows affiche le texte Description dans les emplacements appropriés dans le Centre d’accessibilité.

Exécution lors de l’installation et sur le bureau d’ouverture de session

Si vous ajoutez le nom de clé inscrite de votre application d’accessibilité à la chaîne à l’emplacement de Registre suivant, Windows lance votre application immédiatement après son installation. En outre, Windows exécute automatiquement votre application chaque fois que le bureau d’ouverture de session est actif.

HKCU\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\Configuration

La clé configuration est une chaîne délimitée par des virgules. Pour ajouter votre application, ajoutez une chaîne identique à la clé de Registre de votre application dans HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\.

Exécution dans un travail

Si la clé de Registre TerminateOnDesktopSwitch n’est pas présente ou n’est pas définie sur zéro, Windows exécute l’application dans le contexte d’un travail, mettant fin et redémarrant l’application à chaque transition de bureau. L’exécution dans un travail garantit qu’un seul instance de l’application est en cours d’exécution à un moment donné et libère l’application d’avoir à surveiller l’état du bureau. Les inconvénients de l’exécution dans un travail sont les suivants :

  • L’application entraîne un coût de démarrage à chaque transition du bureau.
  • L’application ne peut être démarrée que via le Centre d’accès facile.
  • L’application doit enregistrer continuellement ses paramètres, car elle peut être arrêtée à tout moment par une transition de bureau.

Si la clé TerminateOnDesktopSwitch existe et est définie sur 0, Windows n’exécute pas l’application d’accessibilité dans un travail. Les avantages sont les suivants :

  • Aucun coût de démarrage n’est associé aux transitions de bureau.
  • L’application peut être démarrée en dehors du Centre de facilité d’accès.

Les inconvénients de ne pas s’exécuter dans un travail sont les suivants :

  • Étant donné que l’application n’est pas redémarrée lors des transitions de bureau, elle doit détecter quand le bureau actuel est inactif et y répondre de manière appropriée. Par exemple, l’application doit abandonner le contrôle du matériel afin que la version de bureau sécurisée de l’application puisse l’utiliser, et l’application doit passer en mode veille pour éviter d’utiliser les ressources du processeur.
  • Si l’application peut être démarrée via le menu Démarrer, Windows Explorer ou la ligne de commande, le Centre d’accès facile doit être informé. Pour plus d’informations, consultez Touche de logo Windows + U.
  • Étant donné que plusieurs copies de l’application peuvent s’exécuter simultanément sur différents bureaux, l’application doit être écrite pour prendre en charge plusieurs copies en cours d’exécution.

Touche de logo Windows + U

Si votre application d’accessibilité est configurée pour s’exécuter dans un travail, le code de démarrage de votre application doit inclure un appel à la fonction IsProcessInJob pour déterminer si l’application démarre dans un travail. Si c’est le cas, l’application doit démarrer le Centre d’accès, puis quitter. L’exemple suivant montre comment appeler IsProcessInJob.

BOOL fAlreadyInJob;
BOOL fSuccess = IsProcessInJob(GetCurrentProcess(), NULL, &fAlreadyInJob); 

Si l’application d’accessibilité est configurée pour s’exécuter en dehors d’un travail, elle doit informer le Centre d’accès que l’application démarre et continue normalement.

Quelle que soit la façon dont l’application est configurée, si elle permet de quitter l’application, par exemple un bouton Fermer, l’application doit informer le Centre d’accès facilité qu’elle quitte.

Une application avertit le Centre d’accès en définissant une clé de Registre temporaire, puis en injectant la combinaison touche de logo Windows + touche U dans le flux d’entrée.

L’application doit créer la clé temporaire à l’emplacement suivant.

HKCU\Software\Microsoft\Windows NT\CurrentVersion\AccessibilityTemp

La clé temporaire doit avoir le même nom que le nom de l’application inscrite, par exemple « Contoso_Screen Reader_v1.0 ». La valeur de la clé est un DWORD défini sur 0x0003 au démarrage ou 0x0002 lors de la sortie de l’application.

INPUT input[4] = {0};

input[0].type = INPUT_KEYBOARD;
input[0].ki.wVk = VK_LWIN;
input[0].ki.dwFlags = 0;

input[1].type = INPUT_KEYBOARD;
input[1].ki.wVk = 0x55; // U key
input[1].ki.dwFlags = 0;

input[2].type = INPUT_KEYBOARD;
input[2].ki.wVk = 0x55; // U key
input[2].ki.dwFlags = KEYEVENTF_KEYUP;

input[3].type = INPUT_KEYBOARD;
input[3].ki.wVk = VK_LWIN;
input[3].ki.dwFlags = KEYEVENTF_KEYUP;

SendInput(ARRAYSIZE(input), input, sizeof(input[0]));

Touche de logo Windows + Augmenter le volume

Lorsque l’utilisateur démarre votre application d’accessibilité en appuyant sur la combinaison touche de logo Windows + touche Augmenter le volume (par exemple, sur une tablette), le Centre d’accessibilité passe l’argument de ligne de commande suivant à l’application :

/hardwarebuttonlaunch

Votre application peut utiliser cet argument pour déterminer s’il faut démarrer normalement ou ajuster le comportement en conséquence.

Transfert des paramètres de bureau sécurisés

Si votre application d’accessibilité prend en charge le bureau sécurisé, vous pouvez utiliser le Registre pour copier les paramètres lors de la transition de l’application vers le bureau sécurisé. La copie des paramètres permet de rendre la transition vers le bureau sécurisé plus fluide pour l’utilisateur.

Pour copier les paramètres, définissez la clé de Registre CopySettingsToLockedDesktop de l’application sur 1 et stockez les paramètres à l’emplacement de Registre suivant.

HKCU\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\<AT Key Name>

Le Centre d’accès facile surveille cet emplacement du Registre pendant l’exécution de l’application. Lorsqu’une transition vers le bureau sécurisé se produit, le Centre d’ergonomie d’accès copie les paramètres au même emplacement dans la ruche HKCU du bureau sécurisé. L’application peut ensuite lire les paramètres et reprendre son état.

Votre application d’accessibilité doit écrire ses paramètres à intervalles réguliers ou chaque fois que les valeurs changent. L’écriture des paramètres sur la sortie de l’application ne fonctionnera pas. Si l’application s’exécute dans un travail, elle est arrêtée lors de la transition loin du bureau sécurisé, avant que le code de sortie ait la possibilité de s’exécuter. Si l’application ne s’exécute pas dans un travail, l’application n’est pas arrêtée lors de la transition loin du bureau sécurisé.

Attention

Étant donné que les clés de Registre décrites ici sont écrites en mode utilisateur, elles ne sont pas sécurisées. Si votre application d’accessibilité lit le contenu de ces clés, elle doit soigneusement case activée les données et les utiliser avec précaution. Plus précisément, votre application doit effectuer une case activée limites sur les valeurs DWORD, faire attention aux longueurs de chaînes, ne doit pas lire les noms de DLL de plug-in et ne doit pas exécuter les commandes trouvées dans les chaînes.

Exemples de Registre

L’exemple suivant montre les valeurs de Registre possibles pour un produit fictif appelé Contoso ScreenReader version 2.0, dont le nom localisé est stocké en tant que ressource.

Les valeurs de la table se trouvent sous la clé suivante :

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\Contoso_Screen Reader_v2.0

Nom Type Données
ApplicationName REG_SZ @%SystemRoot%\system32\ContosoRes.dll,-5020
Description REG_SZ @%SystemRoot%\system32\ContosoRes.dll,-5040
Profil REG_SZ
XML
<HCIModel>
   <Accommodation type="low vision">
   <Accommodation type="severe vision">
   <Accommodation type="mild cognitive">
</HCIModel>
SimpleProfile REG_SZ ScreenReader
StartExe REG_SZ C:\ContosoTools\Bin\ContosoSR.exe
StartParams REG_SZ
SecureDesktopAccommodation REG_SZ Narrateur

Si l’application fournit un lecteur d’écran et une loupe d’écran dans un seul exécutable, les valeurs du composant lecteur d’écran peuvent ressembler à ceci :

Nom Type Données
ApplicationName REG_SZ @C:\Program Files\Contoso\Contosores.dll,-30
Description REG_SZ @C:\Program Files\Contoso\Contosores.dll,-32
Profil REG_SZ
XML
<HCIModel>
   <Accommodation type="low vision">
   <Accommodation type="severe vision">
   <Accommodation type="mild cognitive">
</HCIModel>
SimpleProfile REG_SZ ScreenReader
StartExe REG_SZ C:\Program Files\Contoso\Bin\ContosoSR.exe
StartParams REG_SZ /r

Les valeurs du composant loupe se trouveraient dans la clé suivante :

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Contosoibility\ATs\Contoso_Magnifier_v2.0

Nom Type Données
ApplicationName REG_SZ @c:\Program Files\Contoso\Contosores.dll,-31
Description REG_SZ @c:\Program Files\Contoso\Contosores.dll,-42
Profil REG_SZ
XML
<HCIModel>
   <Accommodation type="mild vision">
</HCIModel>
SimpleProfile REG_SZ Grossissement
StartExe REG_SZ c:\Program Files\Contoso\Bin\ContosoSR.exe
StartParams REG_SZ /m