Partager via


Simplicité d’inscription de la technologie d’assistance à l’accès

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

La facilité d’accès center est une application du Panneau de configuration pour Microsoft Windows réunit des fonctionnalités pour l’accessibilité et la facilité d’utilisation. En utilisant le Centre d’implicité d’accès, les utilisateurs peuvent configurer leurs ordinateurs en fonction de leurs besoins physiques et cognitifs.

L’une des fonctions du Centre d’authentification 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’authentification facile d’accès et peuvent être lancées directement à partir de là.

Les applications d’accessibilité doivent fonctionner en douceur avec le bureau sécurisé. Le bureau sécurisé est l’interface utilisateur qui s’affiche lorsque l’ordinateur est verrouillé (lors de l’ouverture de session 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 place des limites sur les logiciels tiers s’exécutant 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’implicité d’accès.

Inscription auprès du Centre d’implicité d’accès

Les applications d’accessibilité s’inscrivent auprès du Centre d’accessibilité en créant une ou plusieurs clés de Registre lorsque l’application est installée. 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 des langues autres que l’anglais. Le nom apparaît dans le Centre d’implicité d’accès.
Obligatoire Localisée
ATExe Nom du fichier ou de l’image exécutable 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 utilisateur, et Windows copie les paramètres dans le même emplacement dans le Registre utilisateur pour le bureau verrouillé. Cela permet à l’application de conserver son état du bureau « normal » vers le bureau verrouillé.
Optionnel 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 des langues autres que l’anglais. La longueur de cette chaîne doit être inférieure à 512 caractères.
La description s’affiche dans le Centre d’implicité d’accès pour fournir des informations supplémentaires sur l’application d’accessibilité à l’utilisateur.
Cette valeur peut également être utilisée pour avertir l’utilisateur que l’application n’est pas utilisée sur le bureau sécurisé.
Obligatoire Localisée
Profil Élément XML court qui spécifie les hébergements que l’application fournit. Elle garantit que l’application apparaît sous la catégorie appropriée dans le Centre d’implicité d’accès.
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 que AT soit archivé dans le panneau OOBE (Out Of Box Experience) et le Panneau de configuration (voir Panneau de configuration -> Facilité d’accès -> Facilité d’accès -> 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 ce at n’est pas archivé dans le panneau OOBE (Out Of Box Experience) et le 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é.

Optionnel 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 autre version de la même application, l’une des applications d’accessibilité incluses dans Windows ou « aucune » si vous ne souhaitez pas exécuter d’application d’accessibilité sur le bureau sécurisé.
Optionnel Non localisé
Profil simple Valeur qui décrit comment classifier l’application dans 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.
Optionnel 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 se termine et redémarre l’application sur chaque transition vers ou depuis le bureau sécurisé. Il s’agit du comportement par défaut.
Si cette valeur est 0, Windows ne met pas fin à 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 n’est pas déjà en cours d’exécution.
Optionnel Non localisé

Localisation

Les valeurs de Registre du nom et de la 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 indiquent les éléments requis et les crochets signent un élément facultatif.

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

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

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

[commentaire] 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 HCI (Human Computer Interaction) est un moyen de déterminer les mesures d’adaptation à fournir en fonction des besoins de l’utilisateur. Les demandes d’accessibilité doivent inscrire des informations sur le type de handicap que l’application aide à prendre en charge.

La valeur du Registre de profils 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 Accommodation type sont les suivantes :

  • vision douce
  • vision grave
  • douce cognitive
  • cognitive sévère
  • dexterité légère
  • dexterité grave
  • audition légère
  • audition sévère
  • voix douce
  • voix grave

Note

Ces valeurs respectent la casse.

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

Détails de l’authentification simple du Registre 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.

Sécuriser l’hébergement de bureau

La SecureDesktopAccommodation clé de Registre 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’implicité d’accès lance votre application sur le bureau sécurisé s’il était déjà en cours d’exécution sur le bureau normal ou s’il est configuré 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 est optimisée pour utiliser moins de mémoire et lancer plus rapidement.

    Pour spécifier la version alternative, définissez la SecureDesktopAccommodation clé 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 la version alternative à 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 le nom de l’application d’accessibilité Microsoft particulière : « osk », « loupe » ou « Narrateur ».

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

Si l'SecureDesktopAccommodation clé de Registre 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 avertit l’utilisateur lors de la transition vers le bureau sécurisé. Pour avertir 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 le Narrateur Microsoft sur le bureau sécurisé, elle inclut une chaîne de description telle que « Le Narrateur Microsoft sera utilisé dans les bureaux verrouillés, connectés et autres postes de travail sécurisés à la place de ScreenReader Deluxe 1.0 ».

Si la clé SecureDesktopAccommodation de votre application est définie sur « none », utilisez la Description clé 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’implicité d’accès.

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

Si vous ajoutez le nom de clé inscrit de votre application d’accessibilité à la chaîne à l’emplacement de Registre suivant, Windows lance votre application immédiatement après son installation. De plus, 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é de 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 à HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\.

Exécution dans un travail

Si l'TerminateOnDesktopSwitch clé de Registre n’est pas présente ou est définie sur zéro, Windows exécute l’application dans le contexte d’un travail, termine et redémarre l’application avec chaque transition de bureau. L’exécution dans un travail garantit que seule une seule 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 avec chaque transition de bureau.
  • L’application ne peut être démarrée que par le biais du Centre d’implicité d’accès.
  • L’application doit continuellement enregistrer 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. Cela présente les avantages 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 d’implicité 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 sur les transitions de bureau, elle doit détecter quand le bureau actuel est inactif et répondre de manière appropriée. Par exemple, l’application doit renoncer au contrôle matériel afin que la version de bureau sécurisée de l’application puisse l’utiliser, et l’application doit entrer en mode veille pour éviter d’utiliser des ressources processeur.
  • Si l’application peut être démarrée par le biais du menu Démarrer, de l’Explorateur Windows ou de la ligne de commande, vous devez être informé de la facilité d’accès. 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’implicité 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 facile que l’application démarre et continue normalement.

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

Une application avertit la facilité d’accès center en définissant une clé de Registre temporaire, puis en injectant la combinaison de touches Logo Windows + 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 une DWORD définie 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 + Volume vers le haut

Lorsque l’utilisateur démarre votre application d’accessibilité en appuyant sur la touche Logo Windows + Combinaison de touches Haut de volume (par exemple, sur un appareil tablette), l’Option d’authentification du Centre d’accès transmet 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 lorsque l’application passe au 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\<nom de clé AT>

La facilité d’accès center surveille cet emplacement de Registre pendant l’exécution de l’application. Lorsqu’une transition vers le bureau sécurisé se produit, le centre d’authentification simple copie les paramètres dans le 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 à partir du bureau sécurisé, avant que le code de sortie ne s’exécute. Si l’application n’est pas en cours d’exécution dans un travail, l’application n’est pas arrêtée lors de la transition loin du bureau sécurisé.

Prudence

É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 vérifier attentivement les données et les utiliser avec précaution. Plus précisément, votre application doit effectuer une vérification des limites sur valeurs d' DWORD, soyez prudent avec les longueurs de chaîne, ne doit pas lire les noms de DLL de plug-in et ne doit pas exécuter de commandes trouvées dans des 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 sont 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 à la fois 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 de 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