Vue d’ensemble de l’accessibilitéAccessibility overview

Cet article est une vue d’ensemble des concepts et technologies liés aux scénarios d’accessibilité des applications Windows.This article is an overview of the concepts and technologies related to accessibility scenarios for Windows apps.

Accessibilité et votre applicationAccessibility and your app

Il existe de nombreuses invalidités et handicaps, notamment des limitations relatives à la mobilité, la vision, la perception des couleurs, l’audition, la parole, la cognition et l’alphabétisation.There are many possible disabilities or impairments, including limitations in mobility, vision, color perception, hearing, speech, cognition, and literacy. Toutefois, vous pouvez répondre à la plupart des besoins en suivant les recommandations fournies dans cette rubrique.However, you can address most requirements by following the guidelines offered here. Vous devez notamment offrir :This means providing:

  • la prise en charge d’interactions au clavier et de lecteurs d’écran ;Support for keyboard interactions and screen readers.
  • la prise en charge de la personnalisation utilisateur, y compris les paramètres de police, de zoom (loupe), de couleur et de contraste élevé ;Support for user customization, such as font, zoom setting (magnification), color, and high-contrast settings.
  • des alternatives ou suppléments pour des parties de votre interface utilisateur.Alternatives or supplements for parts of your UI.

Les contrôles XAML fournissent une prise en charge intégrée du clavier et prennent en charge les lecteurs d’écran, qui tirent parti d’infrastructures d’accessibilité qui prennent déjà en charge les applications UWP, HTML et d’autres technologies d’interface utilisateur.Controls for XAML provide built-in keyboard support and support for assistive technologies such as screen readers, which take advantage of accessibility frameworks that already support UWP apps, HTML, and other UI technologies. Cette prise en charge intégrée offre un niveau d’accessibilité de base que vous pouvez personnaliser avec très peu de travail, en définissant uniquement quelques propriétés.This built-in support enables a basic level of accessibility that you can customize with very little work, by setting just a handful of properties. Si vous créez vos propres contrôles et composants XAML personnalisés, vous pouvez également ajouter une prise en charge similaire à ces contrôles en faisant appel au concept d’homologue d’automation.If you are creating your own custom XAML components and controls, you can also add similar support to those controls by using the concept of an automation peer.

De plus, les fonctionnalités de liaison de données, de style et de modèle simplifient l’implémentation de la prise en charge des modifications dynamiques des paramètres d’affichage et du texte pour d’autres interfaces utilisateur.In addition, data binding, style, and template features make it easy to implement support for dynamic changes to display settings and text for alternative UIs.

Automatisation de l’interface utilisateurUI Automation

La prise en charge de l’accessibilité provient principalement de la prise en charge intégrée de l’infrastructure Microsoft UI Automation.Accessibility support comes primarily from the integrated support for the Microsoft UI Automation framework. 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, ainsi que via une représentation d’interface de l’API du fournisseur UI Automation.That support is provided through base classes and the built-in behavior of the class implementation for control types, and an interface representation of the UI Automation provider API. Chaque classe de contrôle utilise les concepts UI Automation des homologues d’automation et des modèles d’automation pour signaler le rôle et le contenu des contrôles aux clients UI Automation.Each control class uses the UI Automation concepts of automation peers and automation patterns that report the control's role and content to UI Automation clients. L’application est traitée en tant que fenêtre de niveau supérieur par UI Automation. Via l’infrastructure UI Automation, tout le contenu relatif à l’accessibilité présent dans cette fenêtre d’application est disponible pour un client UI Automation.The app is treated as a top-level window by UI Automation, and through the UI Automation framework all the accessibility-relevant content within that app window is available to a UI Automation client. Pour plus d’informations sur UI Automation, voir Vue d’ensemble d’UI Automation.For more info about UI Automation, see UI Automation Overview.

Technologie d’assistanceAssistive technology

De nombreux besoins d’accessibilité des utilisateurs sont satisfaits par des produits de technologies d’assistance installés par l’utilisateur ou par des outils et paramètres fournis par le système d’exploitation.Many user accessibility needs are met by assistive technology products installed by the user or by tools and settings provided by the operating system. Parmi les fonctionnalités proposées, citons les lecteurs d’écran, le grossissement de l’écran et les paramètres de contraste élevé.This includes functionality such as screen readers, screen magnification, and high-contrast settings.

Les produits de technologie d’assistance englobent une large gamme de logiciels et de matériel.Assistive technology products include a wide variety of software and hardware. Ces produits fonctionnent par le biais des infrastructures d’accessibilité et d’interface de clavier standard qui signalent les informations relatives au contenu et à la structure d’une interface utilisateur aux lecteurs d’écran et autres technologies d’assistance.These products work through the standard keyboard interface and accessibility frameworks that report information about the content and structure of a UI to screen readers and other assistive technologies. Voici quelques exemples de produits de technologie d’assistance :Examples of assistive technology products include:

  • clavier visuel, qui permet d’utiliser un pointeur à la place d’un clavier pour la saisie d’un texte ;The On-Screen Keyboard, which enables people to use a pointer in place of a keyboard to type text.
  • logiciels de reconnaissance vocale, qui convertissent la parole en texte tapé ;Voice-recognition software, which converts spoken words into typed text.
  • lecteurs d’écran, qui convertissent le texte en parole ou autres formes telles que le Braille ;Screen readers, which convert text into spoken words or other forms such as Braille.
  • lecteur d’écran du Narrateur, qui fait spécifiquement partie de WindowsThe Narrator screen reader, which is specifically part of Windows. (le Narrateur dispose d’un mode tactile, qui permet de lire sur l’écran en exécutant des mouvements tactiles quand aucun clavier n’est disponible) ;Narrator has a touch mode, which can perform screen reading tasks by processing touch gestures, for when there is no keyboard available.
  • programmes ou paramètres qui ajustent l’affichage ou certaines de ses zones, par exemple les thèmes à contraste élevé, les valeurs ppp de l’affichage ou l’outil Loupe.Programs or settings that adjust the display or areas of it, for example high contrast themes, dots per inch (dpi) settings of the display, or the Magnifier tool.

Les applications qui disposent d’une bonne prise en charge des claviers et des lecteurs d’écran fonctionnent généralement bien avec différents produits de technologies d’assistance.Apps that have good keyboard and screen reader support usually work well with various assistive technology products. Dans de nombreux cas, une application UWP fonctionne avec ces produits sans modification supplémentaire d’informations ou de structure.In many cases, a UWP app works with these products without additional modification of information or structure. Toutefois, vous souhaiterez peut-être modifier certains paramètres pour une expérience d’accessibilité optimale ou une prise en charge supplémentaire.However, you may want to modify some settings for optimal accessibility experience or to implement additional support.

Certaines des options à votre disposition pour tester des scénarios d’accessibilité de base avec les technologies d’assistance sont répertoriées dans Test d’accessibilité.Some of the options that you can use for testing basic accessibility scenarios with assistive technologies are listed in Accessibility testing.

Prise en charge de lecteurs d’écran et informations d’accessibilité de baseScreen reader support and basic accessibility information

Les lecteurs d’écran permettent d’accéder au texte d’une application en effectuant un rendu de celui-ci sous une autre forme, telle qu’une sortie en langue parlée ou en Braille.Screen readers provide access to the text in an app by rendering it in some other format, such as spoken language or Braille output. Le comportement exact d’un lecteur d’écran dépend du logiciel et de la façon dont l’utilisateur l’a configuré.The exact behavior of a screen reader depends on the software and on the user's configuration of it.

Par exemple, certains lecteurs d’écran lisent la totalité de l’interface utilisateur de l’application quand l’utilisateur démarre ou bascule vers l’application affichée. L’utilisateur peut ainsi recevoir tout le contenu d’information disponible avant de commencer la navigation.For example, some screen readers read the entire app UI when the user starts or switches to the app being viewed, which enables the user to receive all of the available informational content before attempting to navigate it. Certains lecteurs d’écran lisent aussi le texte associé à un contrôle individuel lorsqu’il reçoit le focus pendant la navigation par onglets.Some screen readers also read the text associated with an individual control when it receives focus during tab navigation. Cela permet aux utilisateurs de s’orienter à mesure qu’ils naviguent parmi les contrôles d’entrée d’une application.This enables users to orient themselves as they navigate among the input controls of an application. Le Narrateur est un exemple de lecteur d’écran qui fournit ces deux comportements, en fonction du choix de l’utilisateur.Narrator is an example of a screen reader that provides both behaviors, depending on user choice.

L’information la plus importante dont un lecteur d’écran ou une autre technologie d’assistance a besoin pour aider les utilisateurs à comprendre une application ou à naviguer dans une application est un nom accessible pour les parties d’élément de l’application.The most important information that a screen reader or any other assistive technology needs in order to help users understand or navigate an app is an accessible name for the element parts of the app. Dans de nombreux cas, un contrôle ou élément possède déjà un nom accessible calculé à partir d’autres valeurs de propriété que vous avez fournies par un autre moyen.In many cases, a control or element already has an accessible name that is calculated from other property values that you have otherwise provided. Le cas le plus courant dans lequel vous pouvez utiliser un nom déjà calculé concerne un élément qui prend en charge et affiche du texte interne.The most common case in which you can use an already-calculated name is with an element that supports and displays inner text. Pour les autres éléments, vous devez parfois prendre en compte d’autres manières de fournir un nom accessible en appliquant les meilleures pratiques en matière de structure d’élément.For other elements, you sometimes need to account for other ways to provide an accessible name by following best practices for element structure. Parfois, vous devez fournir un nom spécifié de manière explicite comme nom accessible aux fins d’accessibilité de l’application.And sometimes you need to provide a name that is explicitly intended as the accessible name for app accessibility. Pour obtenir une liste des valeurs calculées qui fonctionnent dans les éléments d’interface utilisateur courants et pour plus d’informations sur les noms accessibles en général, voir Informations d’accessibilité de base.For a listing of how many of these calculated values work in common UI elements, and for more info about accessible names in general, see Basic accessibility information.

Plusieurs autres propriétés d’automation sont disponibles (notamment les propriétés de clavier décrites dans la section suivante).There are several other automation properties available (including the keyboard properties described in the next section). Toutefois, tous les lecteurs d’écran ne prennent pas en charge toutes les propriétés d’automation.However, not all screen readers support all automation properties. En général, vous devez définir toutes les propriétés d’automatisation appropriées et les tester pour fournir la prise en charge la plus large possible pour les lecteurs d’écran.In general, you should set all appropriate automation properties and test to provide the widest possible support for screen readers.

Prise en charge du clavierKeyboard support

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.To provide good keyboard support, you must ensure that every part of your application can be used with a keyboard. Si votre application utilise principalement les contrôles standard et n’utilise aucun contrôle personnalisé, vous n’aurez pas beaucoup de tâches supplémentaires à effectuer.If your app uses mostly the standard controls and doesn't use any custom controls, you are most of the way there already. Le modèle de contrôle de base XAML fournit une prise en charge intégrée du clavier incluant la navigation par tabulation, la saisie de texte et la prise en charge spécifique aux contrôles.The basic XAML control model provides built-in keyboard support including tab navigation, text input, and control-specific support. 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.The elements that serve as layout containers (such as panels) use the layout order to establish a default tab order. Cet ordre est souvent l’ordre de tabulation correct à utiliser pour une représentation accessible de l’interface utilisateur.That order is often the correct tab order to use for an accessible representation of the UI. Si vous utilisez les contrôles ListBox et GridView pour afficher des données, ils fournissent une navigation avec les touches de direction intégrée.If you use ListBox and GridView controls to display data, they provide built-in arrow-key navigation. 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.Or if you use a Button control, it already handles the Spacebar or Enter keys for button activation.

Pour plus d’informations sur tous les aspects de la prise en charge du clavier, y compris sur l’ordre de tabulation et la navigation ou l’activation basée sur les touches, voir Accessibilité du clavier.For more info about all the aspects of keyboard support, including tab order and key-based activation or navigation, see Keyboard accessibility.

Média et sous-titrageMedia and captioning

En général, vous affichez des médias audiovisuels via un objet MediaElement .You typically display audiovisual media through a MediaElement object. Vous pouvez utiliser les API MediaElement pour contrôler la lecture de média.You can use MediaElement APIs to control the media playback. À des fins d’accessibilité, fournissez des contrôles qui permettent aux utilisateurs de lire, de mettre en pause et d’arrêter le contenu multimédia selon leurs besoins.For accessibility purposes, provide controls that enable users to play, pause, and stop the media as needed. Parfois, le contenu multimédia inclut des composants supplémentaires destinés à l’accessibilité, tels que les sous-titres ou les pistes audio de substitution qui comportent des descriptions narratives.Sometimes, media includes additional components that are intended for accessibility, such as captioning or alternative audio tracks that include narrative descriptions.

Texte accessibleAccessible text

Trois principaux aspects du texte sont pertinents en ce qui concerne l’accessibilité :Three main aspects of text are relevant to accessibility:

  • Des outils doivent déterminer si le texte doit être lu dans le cadre d’une traversée de séquence de tabulation ou uniquement dans le cadre d’une représentation de document globale.Tools must determine whether the text is to be read as part of a tab-sequence traversal or only as part of an overall document representation. Vous pouvez aider à contrôler cette détermination en choisissant l’élément approprié pour l’affichage du texte ou en ajustant les propriétés de ces éléments de texte.You can help control this determination by choosing the appropriate element for displaying the text or by adjusting properties of those text elements. Chaque élément de texte disponible remplit une fonction donnée, souvent associée à un rôle UI Automation particulier.Each text element has a specific purpose, and that purpose often has a corresponding UI Automation role. L’utilisation de l’élément incorrect peut entraîner le signalement du rôle incorrect à UI Automation et la création d’une expérience confuse pour un utilisateur de technologie d’assistance.Using the wrong element can result in reporting the wrong role to UI Automation and creating a confusing experience for an assistive technology user.
  • De nombreux utilisateurs souffrent de limitations visuelles qui font que le texte est difficile à lire en cas d’insuffisance du contraste par rapport à l’arrière-plan.Many users have sight limitations that make it difficult for them to read text unless it has adequate contrast against the background. L’impact sur l’utilisateur est délicat à évaluer pour un concepteur d’application qui ne souffre pas de la même limitation visuelle.How this impacts the user is not intuitive for app designers who do not have that sight limitation. Par exemple, un choix des couleurs inapproprié lors de la conception peut empêcher certains utilisateurs daltoniens de pouvoir lire le texte.For example, for color-blind users, poor color choices in the design can prevent some users from being able to read the text. Les recommandations en matière d’accessibilité effectuées initialement pour le contenu Web définissent des normes de contraste qui peuvent éviter ces problèmes également dans les applications.Accessibility recommendations that were originally made for web content define standards for contrast that can avoid these problems in apps as well. Pour plus d’informations, consultez la rubrique Exigences de texte accessible.For more info, see Accessible text requirements.
  • De nombreux utilisateurs éprouvent des difficultés à lire du texte trop petit.Many users have difficulty reading text that is simply too small. Vous pouvez éviter que ce problème ne se produise en faisant en sorte que le texte de l’interface utilisateur de votre application soit suffisamment grand en premier lieu.You can prevent this issue by making the text in your app's UI reasonably large in the first place. Toutefois, ceci est difficile avec les applications qui affichent une grande quantité de texte ou du texte combiné à d’autres éléments visuels.However, that's challenging for apps that display large quantities of text, or text interspersed with other visual elements. Dans les cas de ce type, assurez-vous que l’application interagit correctement avec les fonctionnalités système qui peuvent agrandir l’affichage ainsi que le texte qu’elle contient.In such cases, make sure that the app correctly interacts with the system features that can scale up the display, so that any text in apps scales up along with it. (Certains utilisateurs modifient les valeurs ppp comme option d’accessibilité.)(Some users change dpi values as an accessibility option. (Cette option est disponible dans la zone Agrandir les éléments affichés à l’écran de la fenêtre Options d’ergonomie, qui redirige l’utilisateur vers une interface utilisateur du Panneau de configuration pour les options Apparence et personnalisation / Affichage.)That option is available from Make things on the screen larger in Ease of Access, which redirects to a Control Panel UI for Appearance and Personalization / Display.)

Prise en charge des thèmes à contraste élevéSupporting high-contrast themes

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.UI controls use a visual representation that is defined as part of a XAML resource dictionary of themes. Un ou plusieurs de ces thèmes sont spécifiquement utilisés lorsque le système est configuré en mode de contraste élevé.One or more of these themes is specifically used when the system is set for high contrast. Lorsque l’utilisateur passe en mode de contraste élevé en recherchant dynamiquement le thème approprié dans un dictionnaire de ressources, tous vos contrôles d’interface utilisateur utilisent aussi un thème à contraste élevé approprié.When the user switches to high contrast, by looking up the appropriate theme from a resource dictionary dynamically, all your UI controls will use an appropriate high-contrast theme too. Assurez-vous simplement de ne pas avoir désactivé les thèmes en spécifiant un style explicite ou en utilisant une autre technique de style qui empêche les thèmes à contraste élevé de se charger et de remplacer vos modifications de style.Just make sure that you haven't disabled the themes by specifying an explicit style or using another styling technique that prevents the high-contrast themes from loading and overriding your style changes. Pour plus d’informations, voir Thèmes à contraste élevé.For more info, see High-contrast themes.

Conception d’une autre interface utilisateurDesign for alternative UI

Quand vous concevez vos applications, demandez-vous comment elles peuvent être utilisées par les personnes à mobilité réduite, malvoyantes ou malentendantes.When you design your apps, consider how they may be used by people with limited mobility, vision, and hearing. Étant donné que les produits de technologies d’assistance utilisent fréquemment l’interface utilisateur standard, il est particulièrement important de fournir une bonne prise en charge des claviers et des lecteurs d’écran, même si vous n’effectuez aucun autre réglage relatif à l’accessibilité.Because assistive technology products make extensive use of standard UI, it is particularly important to provide good keyboard and screen-reader support even if you make no other adjustments for accessibility.

Dans de nombreux cas, plusieurs techniques permettent de transmettre les informations essentielles afin d’élargir votre audience.In many cases, you can convey essential information by using multiple techniques to widen your audience. Par exemple, vous pouvez mettre en surbrillance des informations à l’aide d’informations sur les icônes et sur les couleurs pour aider les utilisateurs qui ne distinguent pas les couleurs, et vous pouvez afficher des alertes visuelles avec des effets sonores pour aider les utilisateurs qui sont malentendants.For example, you can highlight information using both icon and color information to help users who are color blind, and you can display visual alerts along with sound effects to help users who are hearing impaired.

Si nécessaire, vous pouvez fournir d’autres éléments d’interface utilisateur accessibles qui suppriment totalement les éléments et les animations non essentiels, et fournir d’autres simplifications pour rationaliser l’expérience utilisateur.If necessary, you can provide alternative, accessible user interface elements that completely remove nonessential elements and animations, and provide other simplifications to streamline the user experience. L’exemple de code suivant montre comment afficher une instance de UserControl à la place d’une autre en fonction d’un paramètre utilisateur.The following code example demonstrates how to display one UserControl instance in place of another depending on a user setting.

XAMLXAML

<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 BasicVisual 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#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 publicationVerification and publishing

Pour plus d’informations sur les déclarations d’accessibilité et la publication de votre application, consultez la rubrique Accessibilité dans le Windows Store.For more info about accessibility declarations and publishing your app, see Accessibility in the Store.

Notes

La déclaration de l’application comme accessible n’est pertinente que pour le Microsoft Store.Declaring the app as accessible is only relevant to the Microsoft Store.

Prise en charge de la technologie d’assistance dans des contrôles personnalisésAssistive technology support in custom controls

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 assurer la prise en charge de l’accessibilité.When you create a custom control, we recommend that you also implement or extend one or more AutomationPeer subclasses to provide accessibility support. 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’automation pour votre classe dérivée est adéquate à un niveau de base.In some cases, so long as you use the same peer class as was used by the base control class, the automation support for your derived class is adequate at a basic level. Cependant, nous vous conseillons de tester cette configuration. L’implémentation d’un homologue est toujours recommandée comme meilleure pratique, l’homologue pouvant correctement signaler le nom de la classe de votre nouveau contrôle.However, you should test this, and implementing a peer is still recommended as a best practice so that the peer can correctly report the class name of your new control class. Plusieurs étapes sont nécessaires pour implémenter un homologue d’automatisation personnalisé.Implementing a custom automation peer has a few steps involved. Pour plus d’informations, voir Homologues d’automation personnalisés.For more info, see Custom automation peers.

Prise en charge de la technologie d’assistance dans les applications qui gèrent l’interopérabilité entre XAML et Microsoft DirectXAssistive technology support in apps that support XAML / Microsoft DirectX interop

Par défaut, le contenu Microsoft DirectX hébergé dans une interface utilisateur XAML (à l’aide de la classe SwapChainPanel ou SurfaceImageSource) n’est pas accessible.Microsoft DirectX content that's hosted in a XAML UI (using SwapChainPanel or SurfaceImageSource) is not accessible by default. L’exemple XAML SwapChainPanel DirectX interop montre comment créer des homologues UI Automation pour le contenu DirectX hébergé.The XAML SwapChainPanel DirectX interop sample shows how to create UI Automation peers for the hosted DirectX content. Cette technique permet de rendre le contenu hébergé accessible via UI Automation.This technique makes the hosted content accessible through UI Automation.