Vue d’ensemble de l’accessibilité

Cet article est une vue d’ensemble des concepts et technologies liés aux scénarios d’accessibilité pour les applications Windows.

Accessibilité et votre application

Il existe de nombreux handicaps ou déficiences possibles, y compris les limitations de mobilité, la vision, la perception de la couleur, l’audition, la parole, la cognition et l’alphabétisation. Toutefois, vous pouvez répondre à la plupart des exigences en suivant les instructions proposées ici. Cela signifie que vous fournissez les points suivants :

  • Prise en charge des interactions clavier et des lecteurs d’écran.
  • Prise en charge de la personnalisation de l’utilisateur, telle que la police, le paramètre de zoom (agrandissement), la couleur et les paramètres à contraste élevé.
  • Alternatives ou suppléments pour certaines parties de votre interface utilisateur.

Les contrôles XAML fournissent la prise en charge et la prise en charge intégrées du clavier pour les technologies d’assistance telles que les lecteurs d’écran, qui tirent parti des infrastructures d’accessibilité qui prennent déjà en charge les applications UWP, html et d’autres technologies d’interface utilisateur. Cette prise en charge intégrée permet un niveau d’accessibilité de base que vous pouvez personnaliser avec très peu de travail, en définissant seulement une poignée de propriétés. Si vous créez vos propres composants et contrôles XAML personnalisés, vous pouvez également ajouter une prise en charge similaire à ces contrôles à l’aide du concept d’un homologue Automation.

En outre, les fonctionnalités de liaison de données, de style et de modèle facilitent l’implémentation de la prise en charge des modifications dynamiques pour afficher les paramètres et le texte d’autres interfaces utilisateur.

Automatisation de l’interface utilisateur

La prise en charge de l’accessibilité provient principalement de la prise en charge intégrée de l’infrastructure Microsoft UI Automation. Cette prise en charge est fournie via des classes de base et le comportement intégré de l’implémentation de classe pour les types de contrôle et une représentation d’interface de l’API du fournisseur UI Automation. Chaque classe de contrôle utilise les concepts UI Automation des homologues d’automatisation et des modèles d’automatisation qui signalent le rôle et le contenu du contrôle aux clients UI Automation. L’application est traitée comme une fenêtre de niveau supérieur par UI Automation, et par le biais de l’infrastructure UI Automation, tout le contenu pertinent pour l’accessibilité dans cette fenêtre d’application est disponible pour un client UI Automation. Pour plus d’informations sur UI Automation, consultez Vue d’ensemble d’UI Automation.

Technologie d’assistance

De nombreux besoins en matière d’accessibilité des utilisateurs sont satisfaits par les produits technologiques d’assistance installés par l’utilisateur ou par les outils et les paramètres fournis par le système d’exploitation. Cela inclut des fonctionnalités telles que les lecteurs d’écran, l’agrandissement de l’écran et les paramètres à contraste élevé.

Les produits de technologie d’assistance incluent une grande variété de logiciels et de matériel. Ces produits fonctionnent via l’interface clavier standard et les infrastructures d’accessibilité qui signalent des informations sur le contenu et la structure d’une interface utilisateur aux lecteurs d’écran et à d’autres technologies d’assistance. Voici quelques exemples de produits technologiques d’assistance :

  • Clavier visuel, qui permet aux utilisateurs d’utiliser un pointeur à la place d’un clavier pour taper du texte.
  • Logiciel de reconnaissance vocale, qui convertit les mots prononcés en texte typé.
  • Lecteurs d’écran, qui convertissent du texte en mots parlés ou d’autres formes telles que le braille.
  • Lecteur d’écran du Narrateur, qui fait spécifiquement partie de Windows. Le Narrateur a un mode tactile, qui peut effectuer des tâches de lecture d’écran en traitant les mouvements tactiles, pour le cas où aucun clavier n’est disponible.
  • Programmes ou paramètres qui ajustent l’affichage ou les zones de celui-ci, par exemple les thèmes à contraste élevé, les points par pouce (ppp) paramètres de l’affichage ou l’outil Loupe.

Les applications qui disposent d’une bonne prise en charge du clavier et du lecteur d’écran fonctionnent généralement bien avec différents produits de technologie d’assistance. Dans de nombreux cas, une application UWP fonctionne avec ces produits sans modification supplémentaire des informations ou de la structure. Toutefois, vous pouvez modifier certains paramètres pour une expérience d’accessibilité optimale ou implémenter une prise en charge supplémentaire.

Certaines des options que vous pouvez utiliser pour tester des scénarios d’accessibilité de base avec des technologies d’assistance sont répertoriées dans les tests d’accessibilité.

Prise en charge du lecteur d’écran et informations d’accessibilité de base

Les lecteurs d’écran permettent d’accéder au texte d’une application en le rendant dans un autre format, tel que la langue parlée ou la sortie braille. Le comportement exact d’un lecteur d’écran dépend du logiciel et de la configuration de l’utilisateur.

Par exemple, certains lecteurs d’écran lisent l’ensemble de l’interface utilisateur de l’application lorsque l’utilisateur démarre ou bascule vers l’application en cours d’affichage, ce qui permet à l’utilisateur de recevoir tout le contenu d’information disponible avant de tenter de le parcourir. Certains lecteurs d’écran lisent également le texte associé à un contrôle individuel lorsqu’il reçoit le focus pendant la navigation par onglet. Cela permet aux utilisateurs de s’orienter au fur et à mesure qu’ils naviguent entre les contrôles d’entrée d’une application. Le Narrateur est un exemple de lecteur d’écran qui fournit les deux comportements, selon le choix de l’utilisateur.

Les informations les plus importantes dont a besoin un lecteur d’écran ou toute autre technologie d’assistance pour aider les utilisateurs à comprendre ou naviguer dans une application sont un nom accessible pour les parties d’élément de l’application. Dans de nombreux cas, un contrôle ou un élément a déjà un nom accessible calculé à partir d’autres valeurs de propriété que vous avez fournies. Le cas le plus courant dans lequel vous pouvez utiliser un nom déjà calculé est avec un élément qui prend en charge et affiche du texte interne. Pour d’autres éléments, vous devez parfois prendre en compte d’autres façons de fournir un nom accessible en suivant les meilleures pratiques pour la structure des éléments. Et parfois, vous devez fournir un nom explicitement conçu comme nom accessible pour l’accessibilité de l’application. Pour obtenir une liste du nombre de ces valeurs calculées qui fonctionnent dans des éléments d’interface utilisateur courants, et pour plus d’informations sur les noms accessibles en général, consultez Informations d’accessibilité de base.

Il existe plusieurs autres propriétés d’automatisation disponibles (y compris les propriétés du clavier décrites dans la section suivante). Toutefois, tous les lecteurs d’écran ne prennent pas en charge toutes les propriétés d’automatisation. En général, vous devez définir toutes les propriétés d’automatisation et les tests appropriés pour fournir la prise en charge la plus large possible pour les lecteurs d’écran.

Prise en charge du clavier

Pour fournir une bonne prise en charge du clavier, vous devez vous assurer que chaque partie de votre application peut être utilisée avec un clavier. Si votre application utilise principalement les contrôles standard et n’utilise pas de contrôles personnalisés, vous êtes la plupart du temps là-bas. Le modèle de contrôle XAML de base fournit la prise en charge du clavier intégré, notamment la navigation par onglet, l’entrée de texte et la prise en charge spécifique au contrôle. Les éléments qui servent de conteneurs de disposition (tels que les panneaux) utilisent l’ordre de disposition pour établir un ordre de tabulation par défaut. Cet ordre est souvent le bon ordre de tabulation à utiliser pour une représentation accessible de l’interface utilisateur. Si vous utilisez des contrôles ListBox et GridView pour afficher des données, ils fournissent une navigation intégrée par touches de direction. Ou si vous utilisez un contrôle Button , il gère déjà la barre d’espace ou les touches Entrée pour l’activation du bouton.

Pour plus d’informations sur tous les aspects de la prise en charge du clavier, notamment l’ordre de tabulation et l’activation ou la navigation basée sur les touches, consultez l’accessibilité du clavier.

Média et sous-titrage

Vous affichez généralement des médias audiovisuels par le biais d’un objet MediaElement . Vous pouvez utiliser les API MediaElement pour contrôler la lecture multimédia. À des fins d’accessibilité, fournissez des contrôles qui permettent aux utilisateurs de lire, de suspendre et d’arrêter le média en fonction des besoins. Parfois, les médias incluent des composants supplémentaires destinés à l’accessibilité, tels que le sous-titrage ou d’autres pistes audio qui incluent des descriptions narratives.

Texte accessible

Trois aspects principaux du texte sont pertinents pour l’accessibilité :

  • Les outils doivent déterminer si le texte doit être lu dans le cadre d’une traversée de séquences de tabulations ou uniquement dans le cadre d’une représentation globale du document. Vous pouvez contrôler cette détermination en choisissant l’élément approprié pour afficher le texte ou en ajustant les propriétés de ces éléments de texte. Chaque élément de texte a un objectif spécifique et cet objectif a souvent un rôle UI Automation correspondant. L’utilisation d’un élément incorrect peut entraîner la création d’un rôle incorrect à UI Automation et la création d’une expérience déroutante pour un utilisateur de technologie d’assistance.
  • De nombreux utilisateurs ont des limitations de vue qui rendent difficile la lecture du texte, sauf s’il a un contraste adéquat avec l’arrière-plan. L’impact sur l’utilisateur n’est pas intuitif pour les concepteurs d’applications qui n’ont pas cette limitation de vue. Par exemple, pour les utilisateurs aveugles en couleur, les choix de couleurs médiocres dans la conception peuvent empêcher certains utilisateurs de pouvoir lire le texte. Les recommandations d’accessibilité qui ont été créées à l’origine pour le contenu web définissent des normes de contraste qui peuvent également éviter ces problèmes dans les applications. Pour plus d’informations, consultez Exigences en matière de texte accessible.
  • De nombreux utilisateurs ont des difficultés à lire du texte qui est tout simplement trop petit. Vous pouvez empêcher ce problème en rendant le texte dans l’interface utilisateur de votre application raisonnablement volumineuse au premier endroit. Toutefois, cela est difficile pour les applications qui affichent de grandes quantités de texte ou de texte entrelacées avec d’autres éléments visuels. Dans ce cas, assurez-vous que l’application interagit correctement avec les fonctionnalités système qui peuvent monter en puissance l’affichage, afin que tout texte dans les applications s’adapte avec lui. (Certains utilisateurs modifient les valeurs ppp en tant qu’option d’accessibilité. Cette option est disponible à partir de Rendre les éléments sur l’écran plus volumineux dans La facilité d’accès, ce qui redirige vers une interface utilisateur du Panneau de configuration pour l’apparence et l’affichage de personnalisation / .)

Prise en charge des thèmes à contraste élevé

Les contrôles d’interface utilisateur utilisent une représentation visuelle définie dans le cadre d’un dictionnaire de ressources XAML de thèmes. Un ou plusieurs de ces thèmes sont spécifiquement utilisés lorsque le système est défini pour un contraste élevé. Lorsque l’utilisateur bascule vers un contraste élevé, en recherchant dynamiquement le thème approprié à partir d’un dictionnaire de ressources, tous vos contrôles d’interface utilisateur utilisent également un thème à contraste élevé approprié. Assurez-vous simplement que vous n’avez pas désactivé les thèmes en spécifiant un style explicite ou en utilisant une autre technique de style qui empêche le chargement et la substitution de vos modifications de style. Pour plus d’informations, consultez thèmes à contraste élevé.

Conception pour une autre interface utilisateur

Lorsque vous concevez vos applications, tenez compte de la façon dont elles peuvent être utilisées par des personnes ayant une mobilité limitée, une vision et une audition limitées. Étant donné que les produits de technologie d’assistance utilisent largement l’interface utilisateur standard, il est particulièrement important de fournir une bonne prise en charge du clavier et du lecteur d’écran, même si vous n’effectuez aucun autre ajustement pour l’accessibilité.

Dans de nombreux cas, vous pouvez transmettre des informations essentielles à l’aide de plusieurs techniques pour élargir votre public. Par exemple, vous pouvez mettre en surbrillance des informations à l’aide d’informations d’icône et de couleur pour aider les utilisateurs qui sont aveugles à la couleur, et vous pouvez afficher des alertes visuelles avec des effets sonores pour aider les utilisateurs sourds ou malentendants.

Si nécessaire, vous pouvez fournir d’autres éléments d’interface utilisateur accessibles qui suppriment complètement les éléments et animations nonessential, et fournissent d’autres simplifications pour simplifier l’expérience utilisateur. L’exemple de code suivant montre comment afficher une instance UserControl à la place d’une autre en fonction d’un paramètre utilisateur.

XAML

<StackPanel x:Name="LayoutRoot" Background="White">

  <CheckBox x:Name="ShowAccessibleUICheckBox" Click="ShowAccessibleUICheckBox_Click">
    Show Accessible UI
  </CheckBox>

  <UserControl x:Name="ContentBlock">
    <local:ContentPage/>
  </UserControl>

</StackPanel>

Visual Basic

Private Sub ShowAccessibleUICheckBox_Click(ByVal sender As Object,
    ByVal e As RoutedEventArgs)

    If (ShowAccessibleUICheckBox.IsChecked.Value) Then
        ContentBlock.Content = New AccessibleContentPage()
    Else
        ContentBlock.Content = New ContentPage()
    End If
End Sub

C#

private void ShowAccessibleUICheckBox_Click(object sender, RoutedEventArgs e)
{
    if ((sender as CheckBox).IsChecked.Value)
    {
        ContentBlock.Content = new AccessibleContentPage();
    }
    else
    {
        ContentBlock.Content = new ContentPage();
    }
}

Vérification et publication

Pour plus d’informations sur les déclarations d’accessibilité et la publication de votre application, consultez Accessibilité dans le Windows Store.

Remarque

La déclaration de l’application comme accessible n’est pertinente que pour le Microsoft Store.

Prise en charge des technologies d’assistance dans les contrôles personnalisés

Lorsque vous créez un contrôle personnalisé, nous vous recommandons également d’implémenter ou d’étendre une ou plusieurs sous-classes AutomationPeer pour fournir une prise en charge de l’accessibilité. Dans certains cas, tant que vous utilisez la même classe homologue que celle utilisée par la classe de contrôle de base, la prise en charge de l’automatisation de votre classe dérivée est suffisante au niveau de base. Toutefois, vous devez tester cela et implémenter un homologue est toujours recommandé comme bonne pratique pour que l’homologue puisse signaler correctement le nom de classe de votre nouvelle classe de contrôle. L’implémentation d’un homologue Automation personnalisé comporte quelques étapes. Pour plus d’informations, consultez Homologues Automation personnalisés.

Prise en charge des technologies d’assistance dans les applications qui prennent en charge XAML / Microsoft DirectX Interop

Le contenu Microsoft DirectX hébergé dans une interface utilisateur XAML (à l’aide de SwapChainPanel ou surfaceImageSource) n’est pas accessible par défaut. L’exemple d’interopérabilité XAML SwapChainPanel DirectX montre comment créer des homologues UI Automation pour le contenu DirectX hébergé. Cette technique rend le contenu hébergé accessible via UI Automation.

Exemples

Astuce

Ouvrez l’application galerie WinUI 3 et consultez les principes d’accessibilité suivants en action :

L’application WinUI 3 Gallery comprend des exemples interactifs de la plupart des contrôles et des fonctionnalités WinUI 3. Procurez-vous l’application sur le Microsoft Store ou le code source sur GitHub.