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

Cette rubrique compare la prise en charge des thèmes à contraste élevé dans Windows 8 à celle des versions précédentes de Windows, et explique comment prendre en charge les thèmes à contraste élevé dans une application Windows 8.

Il comprend les sections suivantes.

Vue d’ensemble de la prise en charge des thèmes à contraste élevé

Windows 7 et les versions antérieures prennent en charge deux modèles de thèmes, notamment le modèle classique Windows hérité et les styles visuels actuels. Le modèle classique Windows a été conservé via Windows 7 principalement pour prendre en charge les différents thèmes à contraste élevé. Toutefois, le modèle classique Windows présente un certain nombre d’inconvénients :

  • Aucune prise en charge des thèmes qui utilisent des styles visuels, tels que Windows Aero. Les utilisateurs de thèmes à contraste élevé doivent utiliser l’interface utilisateur windows classique.
  • Aucune prise en charge des fonctionnalités d’interface utilisateur qui s’appuient sur Desktop Window Manager (DWM) pour s’exécuter, telles que les aperçus de miniatures et la loupe plein écran introduite dans Windows 7.
  • Les développeurs doivent gérer deux chemins de code distincts pour prendre en charge les deux modèles de thèmes différents.

Dans Windows 8 et versions ultérieures, les modifications suivantes apportées au modèle de thème répondent aux inconvénients précédents :

  • Le modèle de thème classique Windows n’est plus pris en charge, ce qui permet aux développeurs de ne conserver qu’un seul chemin de code pour les applications qui ciblent uniquement Windows 8.
  • Étant donné que les styles visuels et DWM sont activés dans Windows 8, les utilisateurs à contraste élevé ont accès à des fonctionnalités telles que les aperçus de miniatures et la loupe plein écran.
  • Les styles visuels prennent en charge la définition des couleurs de différents éléments d’interface utilisateur, ce qui permet aux utilisateurs à contraste élevé de personnaliser l’interface utilisateur pour répondre aux besoins et préférences individuels.
  • Windows 8 inclut la prise en charge de la compatibilité pour les applications existantes conçues pour utiliser des thèmes à contraste élevé basées sur le modèle de thème classique Windows.

Prise en charge des thèmes à contraste élevé dans Windows 8 et versions ultérieures

Dans Windows 8, étant donné que les styles visuels sont activés en mode contraste élevé, la prise en charge des thèmes à contraste élevé est simple tant que vous respectez les instructions suivantes.

  • Tailles de police et de contrôle. Pour vous assurer que votre interface utilisateur est accessible aux utilisateurs handicapés, définissez des tailles de police en fonction des paramètres de thème actuels. Définissez la taille des contrôles sur au moins la taille par défaut.
  • Couleurs. Évitez d’utiliser des couleurs codées en dur. Utilisez plutôt les couleurs système, car elles sont basées sur le thème actuel. L’utilisation de couleurs personnalisées peut interférer avec et remplacer les couleurs des thèmes à contraste élevé.
  • Manifeste de l’application. Les applications conçues pour fonctionner avec les nouveaux thèmes à contraste élevé doivent avoir une section de compatibilité des applications définie dans leur manifeste qui contient les GUID de compatibilité Windows 8. Sinon, Windows suppose que l’application est conçue pour une version antérieure de Windows et restitue l’interface utilisateur de l’application en simulant le modèle de thème classique Windows.

Ajout d’une section de compatibilité à votre manifeste d’application

Un manifeste d’application est un fichier XML qui décrit les exigences d’une application. La section de compatibilité du manifeste identifie les versions de Windows prises en charge par l’application. Les GUID suivants sont utilisés dans la section compatibilité pour identifier les différentes versions de Windows.

Version GUID
Windows Vista {e2011457-1546-43c5-a5fe-008deee3d3f0}
Windows 7 {35138b9a-5d96-4fbd-8e2d-a2440225f93a}
Windows 8 {4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}

 

La section de compatibilité peut spécifier plusieurs versions de Windows, mais chacune doit être contenue dans sa propre <supportedOS/> balise. L’exemple suivant montre un manifeste d’application qui spécifie Windows 7 et Windows 8 dans la section compatibilité :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <!--The ID below indicates application support for Windows 8 -->
            <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>

            <!--The ID below indicates application support for Windows 7 -->
            <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
        </application>
    </compatibility>
</assembly>

Si une application n’a pas de manifeste de compatibilité, elle est supposée être une application Windows Vista et n’utilise pas de contrôles thématiques dans la zone cliente lorsqu’un thème à contraste élevé est actif. En outre, le comportement de certaines fonctions de styles visuels est affecté. Par exemple, IsThemeActive, IsCompositionActive et IsAppThemed retournent FALSE, tandis que OpenThemeData et OpenThemeDataEx retournent un handle NULL. Il s’agit de la prise en charge de la compatibilité, afin que les applications créées avant Windows 8 puissent toujours afficher leur interface utilisateur dans le même aspect que le mode de contraste élevé des versions précédentes de Windows où les styles visuels ne sont pas disponibles.

Sur Windows 8, l’application bénéficie toujours des avantages de la composition de bureau. Cela signifie, par exemple, que les applications de convivialité telles que la loupe plein écran ne dépendent pas de la status du manifeste d’une application individuelle. L’application de convivialité continue de fonctionner en mode contraste élevé avec une application qui ne s’identifie pas comme Windows 8 compatible dans son manifeste.

Les images suivantes montrent une boîte de dialogue simple à contraste élevé sur Windows 7.

Boîte de dialogue hig contrast

Cette image montre la même boîte de dialogue en contraste élevé sur Windows 8, mais avec la compatibilité Windows 7 spécifiée dans le manifeste de l’application :

Boîte de dialogue w8 à contraste élevé

Cette image montre la même boîte de dialogue avec un contraste élevé sur Windows 8, avec Windows 8 spécifiés dans le manifeste de l’application :

Boîte de dialogue à contraste élevé w8 avec manifeste

Détection du contraste élevé dans les versions précédentes de Windows

Les applications s’exécutant sur des versions antérieures de Windows n’ont pas accès aux nouveaux thèmes à contraste élevé. Si votre application doit s’exécuter sur des versions antérieures de , vous devez inclure la prise en charge du rendu de votre interface utilisateur en contraste élevé dans le modèle de thème classique Windows. Votre application peut déterminer si un thème à contraste élevé est actif en appelant la fonction SystemParametersInfo avec l’indicateur SPI_GETHIGHCONTRAST .

Activation des styles visuels

Styles visuels