L’auteur de cet article s’appelle Michael Bernstein. Michael est responsable de développement dans l’équipe de Plateforme d’Interface Utilisateur, où il travaille sur l’accessibilité de Windows. «Accessibilité » est un terme que nous utilisons pour décrire les APIs et fonctionnalités qui permettent à Windows d’être utilisé par le plus grand nombre de personnes, et de donner à chacun la possibilité d’accéder à ses fonctions, quelles que soient ses capacités physiques ou cognitives. Dans ce but, Windows comprend à la fois des logiciels d’accessibilité intégrés, et des APIs que les produits de technologie d’assistance et les développeurs d’applications peuvent utiliser pour rendre leurs logiciels accessibles à tout un chacun. L’accessibilité revêt une grande importance pour Microsoft, et c’est un des pivots clefs dans le développement de Windows 7. Au niveau corporatif, Microsoft dispose également d’une équipe chargée de s’assurer que les PC soient plus faciles à voir, entendre, et utiliser. Vous trouverez plus d’informations sur nos initiatives dans le domaine de l’accessibilité numérique sur nos sites français, ou anglais. – Steven.

Bonjour, je suis responsable de développement pour l’Accessibilité et la Reconnaissance Vocale dans Windows 7, et je me propose de décrire la façon dont nous avons conçu l’accessibilité de Windows 7.

Depuis le début du projet, notre intention était de développer le système d’exploitation le plus accessible que Microsoft ait jamais produit. Nous nous sommes cependant rapidement aperçus que la notion d’accessibilité n’est pas aussi simple qu’il n’y parait. Au début, il est tentant de penser à l’accessibilité en termes binaires, un peu comme on parle de la sécurité : votre système est soit accessible (ou sécurisé), ou il ne l’est pas. Cette approche trouve cependant rapidement ses limites. Elle ne tient par exemple pas compte du fait que les besoins de nos utilisateurs aveugles sont totalement différents de ceux de nos utilisateurs sourds, ou même différents des ceux des malvoyants : une loupe est inutile pour certains, et cruciale pour d’autres. De même, elle n’inclut pas les cas où une fonctionnalité est techniquement accessible, mais source de frustration dans la pratique, nécessitant par exemple 36 frappes sur le clavier pour exécuter. L’accessibilité n’est de fait pas un problème binaire, mais une étude de facilité d’utilisation pour un public spécifique ayant des besoins particuliers.

Ces questions difficiles générant des réponses tout aussi difficiles, nous avons choisi une stratégie en quatre volets afin d’améliorer l’Accessibilité de Windows 7.

I. Une base solide : UI Automation

Microsoft inclut dans Windows Vista une nouvelle infrastructure d’accessibilité appelée « UI Automation ». UI Automation permet aux technologies d’assistance usager (« AT ») de commander l’Interface Utilisateur (« UI ») de façon programmatique, et aux logiciels d’exposer leurs fonctionnalités accessibles de façon plus complète que cela n’était possible dans les versions antérieures de Windows – on peut obtenir plus d’informations, et l’UI peut être mieux manipulée. UI Automation introduit aussi la notion de modèles de contrôle, permettant à chaque contrôle de décider comment il peut être le mieux manipulé. Par exemple les boutons utilisent le modèle de contrôle Invoke, indiquant qu’ils peuvent être cliqués, tandis que les zones de liste déroulante utilisent ExpandCollapse, indiquant qu’elles peuvent être ouvertes ou fermées. Nous permettons ainsi à chaque contrôle d’être différent, au lieu de tous les forcer dans un même moule. Cette infrastructure a fait son apparition dans Windows Vista, et est toujours en cours d’adoption.

Pour Windows 7, nous avons investi dans l’amélioration de la performance de cette infrastructure, et créé pour elle une nouvelle API en code natif, afin de la rendre plus efficacement utilisable par un plus grand nombre de produits de technologie d’assistance. Dorénavant, les logiciels écrits en C++, tout comme ceux écrits sur le .NET Framework, peuvent utiliser UI Automation.

Nous avons également beaucoup travaillé pour nous assurer que l’infrastructure UI Automation s’intègre bien à l’ancien « Microsoft Active Accessibility (MSAA) », et avons développé de nouvelles techniques facilitant la transition de l’ancienne à la nouvelle infrastructure. Les clients d’UI Automation peuvent désormais lire l’information d’accessibilité des logiciels MSAA et vice versa, assurant ainsi une accessibilité maximum, quelle que soit l’infrastructure d’origine utilisée par le logiciel. Ces deux infrastructures (UI Automation et MSAA) collaborant ainsi étroitement, il nous a paru naturel d’appeler leur synthèse le « Windows Automation API ». Cette architecture est à la base de notre effort portant sur l’accessibilité, et nous sommes heureux de l’inclure dans Windows 7.

II. Améliorer nos fonctionnalités d’accessibilité

Nous avons également amélioré les programmes de technologie d’assistance inclus dans Windows. Afin de rendre Windows plus accessible à ses utilisateurs handicapés, Microsoft collabore étroitement avec de nombreuses sociétés de produits de technologie d’assistance, mais nous fournissons aussi dans le système d’exploitation plusieurs programmes nous assurant que ces utilisateurs ont bien accès à Windows, avant même d’installer d’autres logiciels. Pour Windows 7, nous avons décidé d’améliorer deux de ces logiciels : le Clavier Visuel et la Loupe.

Le changement le plus apparent du Clavier Visuel est bien-sûr son nouveau look, mais nous avons aussi inclus des améliorations plus subtiles. L’apparence de ce logiciel n’avait pas changé depuis Windows XP, et nos utilisateurs nous demandaient également de le rendre redimensionnable. Afin de répondre à ces deux requêtes, nous avons travaillé étroitement avec les développeurs du Tablet PC, et partageons maintenant avec eux une base de code commune pour le Clavier Visuel et le clavier d’écran tablette. Ces deux claviers ont désormais une apparence plus attrayante aux normes de Windows 7, et sont tous deux redimensionnables. Ils sont toujours cependant distincts, car nos utilisateurs les emploient différemment : les utilisateurs de Tablet PC peuvent par exemple avoir besoin de passer rapidement du clavier à l’écriture manuscrite, tandis que les utilisateurs du Clavier Visuel nécessitent des touches qu’ils puissent taper simplement en se positionnant au-dessus, si leur handicap les empêche de cliquer la souris. Dans la même veine, nous avons aussi ajouté la prédiction textuelle, qui permet à nos utilisateurs handicapés de taper du texte plus rapidement. Ceux d’entre vous qui auront déjà essayé d’utiliser un clavier visuel apprécieront à quel point la prédiction textuelle peut améliorer la vitesse de frappe.

La Loupe a subi par un remaniement plus substantiel. La Loupe de Windows Vista et Windows XP ne fournissait pas une expérience très intuitive : quand vous pointiez sur une région d’écran, les éléments agrandis apparaissaient dans une fenêtre distincte, généralement ancrée en haut de l’écran. Il vous fallait pointer sur une zone, et en regarder une autre. Pour résoudre ce problème, nous avons considéré deux solutions possibles : soit élargir tout l’écran, soit faire en sorte que la zone agrandie suive le pointeur de la souris, en laissant le reste de l’écran inchangé. Ces deux solutions sont devenues nos deux modes pour la Loupe de Windows 7 : le mode « plein-écran », et le mode Lentille.

Le mode « plein-écran » est conçu pour agrandir tous les éléments de l’écran en même temps. Si vous positionnez la souris ou le focus du clavier vers le centre de l’écran, la vue reste la même ; si vous vous déplacez vers les côtés, la Loupe défile la vue pour vous suivre. Un inconvénient de ce mode est que l’utilisateur risque de perdre la référence de son contexte. Pour pallier ce problème, nous avons ajouté une animation contextuelle qui permet de localiser votre zone de travail par rapport à l’écran par un zoom arrière, puis d’y revenir par un zoom avant.

Le mode Lentille, en comparaison, est utile pour agrandir un élément en particulier. Dans ce mode, la lentille est centrée sur le pointeur de la souris, donnant l’impression d’utiliser une loupe. Il est possible de redimensionner la lentille et de la rendre par exemple courte et très large, un format particulièrement utile pour lire un document ligne-par-ligne. Nous avons basé ce concept sur celui de la loupe de la souris Microsoft IntelliPoint, et l’avons rendu maintenant disponible pour n’importe quelle souris.

Nous avons aussi répondu aux demandes de nos utilisateurs concernant la trop grande place prise sur l’écran par la fenêtre de la Loupe. Nous avons commencé par repositionner les contrôles les plus utilisés (comme zoom avant et arrière) dans une petite barre d’outils qui disparait en filigrane semi-transparent quand elle n’est pas utilisée. Les autres options sont disponibles dans un dialogue d’options en cas de besoin. Nous avons aussi donné à toutes les fonctionnalités de la Loupe des raccourcis clavier, les rendant ainsi directement accessibles sans interface utilisateur. Win-+ permet d’utiliser le zoom à tout moment dans Windows 7.

Ces outils améliorent directement l’accessibilité de Windows pour nos utilisateurs malvoyants, ou ayant des handicaps de dextérité, mais il est évident que tout le monde pourra bénéficier d’un PC plus facile à voir ou à utiliser, et ces deux exemples démontrent bien l’intérêt global des outils « AT » - au PDC, nous avons montré le Clavier Visuel et la Loupe, et chacun a pu voir les avantages que présentent ces outils, quels que soient ses aptitudes ou ses handicaps.

III. Faciliter le développement de logiciels accessibles

En elles-mêmes, les APIs de Windows ne suffisent pas à rendre Windows accessible ; il est tout aussi essentiel que les logiciels développés pour Windows jouent leur rôle en fournissant des données accessibles aux programmes AT. Par exemple, un lecteur d’écran peut être un excellent outil, mais son intérêt sera limité s’il ne peut pas lire votre navigateur préféré. Les outils d’assistance usager comme les lecteurs d’écran ou les loupes sont les clients de l’infrastructure d’accessibilité, et les logiciels que vous souhaitez utiliser (comme les navigateurs ou les logiciels de traitement de texte) en sont les fournisseurs. L’utilisation de Windows ne sera accessible que si les deux fonctionnent main dans la main – il faut à la fois un client de qualité et un fournisseur bien programmé pour une bonne expérience d’accessibilité. Ceci dit, il y a énormément de fournisseurs dans l’écosystème informatique de Windows, et il nous est difficile de travailler avec chacun d’entre eux pour s’assurer qu’ils sont bien écrits.

Pour relever ce défi, notre équipe a développé deux outils : « UI Accessibility Checker » (Vérificateur d’Accessibilité d’Interface Utilisateur), aussi appelé AccChecker, et « UI Automation Verify » (Verificateur d’UI Automation), aussi appelé UIA Verify. Ensemble, ces deux outils peuvent analyser un logiciel (un fournisseur), et indiquer les problèmes courants d’accessibilité. Les développeurs de logiciels peuvent ainsi utiliser AccChecker et UIA Verify et détecter les erreurs dans le code de leur fournisseur avant que le produit ne soit sur le marché. Les ingénieurs d’assurance qualité peuvent les utiliser pour vérifier la qualité du travail de leur entreprise. Nous sommes tellement convaincus de l’importance de ces outils que nous diffusons AccChecker et UIA Verify en Open Source, afin de toucher le plus grand nombre possible d’utilisateurs. Si vous n’êtes pas un programmeur, vous n’utiliserez peut-être jamais ces outils, mais vous bénéficierez certainement de leur capacité d’élimination de bogues avant qu’ils ne vous atteignent.

IV. Planifier l’accessibilité dès le premier jour

Pour nous assurer que les fonctionnalités de Windows elles-mêmes étaient de bons fournisseurs, nous avons emprunté un concept au Cycle de Développement de Sécurité : l’estimation de risque. Avant qu’une seule ligne de code ne soit écrite, nous avons attribué à chaque fonctionnalité de Windows 7 en cours de planification un niveau de « risque d’accessibilité ». Les fonctionnalités qui utilisent les contrôles les plus courants sont généralement les plus accessibles, puisque Windows inclut des fournisseurs pour ses composants de base ; les fonctionnalités plus élaborées, ayant leurs propres routines de dessin d’écran, présentent plus de risques. Ceci a permis à chaque équipe de quantifier le niveau de « risque d’accessibilité » auquel elle faisait face, et de planifier en conséquence. Cela a aussi permis à notre équipe de travailler plus étroitement avec les équipes présentant un niveau de risque élevé, et de nous assurer qu’elles possédaient les ressources et les outils dont elles avaient besoin pour rendre leur fonctionnalité accessible. Nous nous sommes également assurés qu’elles bénéficiaient de plus de test et de validation. En fin de compte, la plupart des fonctionnalités de Windows 7 sont plus accessibles qu’elles ne l’étaient dans les versions précédentes, garantissant ainsi une meilleure expérience utilisateur.

En conclusion, nous avons mis l’accent sur l’accessibilité dans la conception de Windows 7. Nous avons fait des progrès considérables dans le renforcement de l’infrastructure d’accessibilité, et dans l’amélioration de logiciels inclus dans Windows, comme le Clavier Virtuel et la Loupe. Les outils AccChecker et UIA Verify ont grandement facilité la validation de logiciels, afin de les rendre non seulement compatibles avec les outils d’assistance usager actuels, mais aussi avec les futures générations d’outils basés sur les APIs de Windows Automation. Notre approche concernant l’accessibilité des fonctionnalités et composants de Windows s’est consolidée, et est devenue plus méthodique et plus intégrée, grâce au travail de centaines d’ingénieurs dans toute la compagnie. Nous sommes fiers de ce que nous avons accompli dans Windows 7, et espérons permettre à nos utilisateurs handicapés de décupler leur potentiel et de connaitre une expérience encore plus satisfaisante avec Windows.

-- Michael.