Un lecteur d'écran est une technologie d'assistance ( TA ) qui restitue le contenu textuel et visuel sous forme de parole ou de braille. Les lecteurs d'écran sont essentiels aux personnes aveugles et sont également utiles aux personnes malvoyantes [ analphabètes ou présentant des troubles d'apprentissage . Les lecteurs d'écran sont des applications logicielles qui tentent de transmettre à leurs utilisateurs, par des moyens non visuels tels que la synthèse vocale , les earcons ou un dispositif braille , ce que les personnes voyantes voient à l' écran . Ils y parviennent en appliquant diverses techniques, notamment l'interaction avec des API d'accessibilité dédiées , l'utilisation de différentes fonctionnalités du système d'exploitation (comme la communication interprocessus et l'interrogation des propriétés de l'interface utilisateur ) et le recours à des techniques d'interception .
Les systèmes d'exploitation Microsoft Windows intègrent le lecteur d'écran Microsoft Narrator depuis Windows 2000. Toutefois, des produits distincts tels que le lecteur d'écran commercial JAWS de Freedom Scientific , la loupe d'écran ZoomText et le lecteur d'écran libre et gratuit NVDA de NV Access sont plus répandus sur ce système d'exploitation. macOS , iOS et tvOS d' Apple Inc. intègrent VoiceOver comme lecteur d'écran, tandis qu'Android de Google propose TalkBack et ChromeOS peut utiliser ChromeVox. De même, les appareils Android d'Amazon offrent le lecteur d'écran VoiceView. Il existe également des lecteurs d'écran libres et gratuits pour Linux et les systèmes de type Unix , tels que Speakup et Orca .
Histoire
Vers 1978, Al Overby, d'IBM Raleigh, développa un prototype de terminal vocal, baptisé SAID (pour Synthetic Audio Interface Driver), pour le terminal IBM 3270. [ lisait les valeurs ASCII de l'écran sous forme de flux et les restituait vocalement grâce à un synthétiseur vocal de la taille d'une valise. Son coût s'élevait à environ 10 000 $. Le Dr Jesse Wright, mathématicien chercheur aveugle, et Jim Thatcher , son ancien étudiant de l'Université du Michigan, tous deux mathématiciens chez IBM, adaptèrent ce prototype en un outil interne destiné aux personnes aveugles. Après la sortie du premier ordinateur personnel IBM (PC) en 1981, Thatcher et Wright développèrent un logiciel équivalent à SAID, appelé PC-SAID ( Personal Computer Synthetic Audio Interface Driver ). Ce logiciel fut renommé et commercialisé en 1984 sous le nom d'IBM Screen Reader, qui devint l' éponyme de cette catégorie de technologies d'assistance.
Types
Ligne de commande (texte)
Dans les premiers systèmes d'exploitation , tels que MS-DOS , qui utilisaient des interfaces en ligne de commande ( CLI ), l'affichage à l'écran consistait en une correspondance directe entre les caractères et une mémoire tampon d'écran , ainsi qu'en la position du curseur . La saisie se faisait au clavier. Toutes ces informations pouvaient donc être obtenues du système soit en interceptant le flux d'informations et en lisant la mémoire tampon d'écran, soit en utilisant une sortie matérielle standard et en communiquant les résultats à l'utilisateur.
Dans les années 1980, le Centre de recherche pour l'éducation des personnes malvoyantes ( RCEVH ) de l' Université de Birmingham a développé un lecteur d'écran pour le BBC Micro et le NEC Portable.
Graphique
Modèles hors écran
Avec l’avènement des interfaces graphiques ( GUI ), la situation s’est complexifiée. Une GUI comporte des caractères et des éléments graphiques dessinés à l’écran à des positions spécifiques ; il n’existe donc pas de représentation purement textuelle du contenu graphique affiché. Les lecteurs d’écran ont par conséquent dû recourir à de nouvelles techniques de bas niveau, en collectant des messages du système d’exploitation et en les utilisant pour construire un « modèle hors écran », une représentation de l’affichage dans laquelle est stocké le contenu textuel requis.
Par exemple, le système d'exploitation peut envoyer des messages pour afficher un bouton de commande et sa légende. Ces messages sont interceptés et utilisés pour construire le modèle hors écran. L'utilisateur peut alors basculer entre les commandes (comme les boutons) disponibles à l'écran ; les légendes et le contenu des commandes sont lus à voix haute et/ou affichés sur un afficheur braille rafraîchissable .
Les lecteurs d'écran peuvent également communiquer des informations sur les menus, les commandes et autres éléments visuels afin de permettre aux utilisateurs aveugles d'interagir avec ces éléments. Cependant, la maintenance d'un modèle hors écran représente un défi technique majeur ; l'interprétation des messages de bas niveau et le maintien d'un modèle précis sont deux tâches complexes.
API d'accessibilité
Les concepteurs de systèmes d'exploitation et d'applications ont tenté de résoudre ces problèmes en fournissant aux lecteurs d'écran des moyens d'accéder au contenu affiché sans avoir à maintenir un modèle hors écran. Ces moyens consistent à fournir des représentations alternatives et accessibles de ce qui est affiché à l'écran, accessibles via une API . Parmi les API existantes , on peut citer :
- Cadre d'accessibilité Android
- API d’accessibilité d’Apple
- AT-SPI
- IAccessible2
- Accessibilité active Microsoft ( MSAA )
- Automatisation de l'interface utilisateur Microsoft
- Pont d'accès Java
Les lecteurs d'écran peuvent interroger le système d'exploitation ou l'application pour connaître le contenu affiché et recevoir des mises à jour lorsque celui-ci change. Par exemple, un lecteur d'écran peut être informé que le focus est actuellement positionné sur un bouton et que son texte doit être communiqué à l'utilisateur. Cette approche est beaucoup plus simple pour les développeurs de lecteurs d'écran, mais elle échoue lorsque les applications ne sont pas conformes à l' API d'accessibilité . Une solution, lorsque l' API d'accessibilité est insuffisante, consiste à utiliser les messages du système d'exploitation et les modèles d'objets d'application disponibles pour la compléter .
On peut supposer que les lecteurs d'écran sont capables d'accéder à tout contenu affiché qui n'est pas intrinsèquement inaccessible. Les navigateurs web, les traitements de texte, les icônes, les fenêtres et les programmes de messagerie ne sont que quelques exemples d'applications utilisées avec succès par les utilisateurs de lecteurs d'écran. Cependant, selon certains utilisateurs, l'utilisation d'un lecteur d'écran est considérablement plus difficile que celle d'une interface graphique, et de nombreuses applications présentent des problèmes spécifiques liés à leur nature (par exemple, les animations) ou à leur non-conformité aux normes d'accessibilité de la plateforme.
Personnalisation
La plupart des lecteurs d'écran permettent à l'utilisateur de choisir si la plupart des signes de ponctuation sont annoncés ou ignorés. Certains lecteurs d'écran peuvent être adaptés à une application particulière grâce à des scripts . L'un des avantages des scripts est qu'ils permettent le partage des personnalisations entre les utilisateurs, améliorant ainsi l'accessibilité pour tous. JAWS bénéficie par exemple d'une communauté active de partage de scripts.
Verbosité
La verbosité est une fonctionnalité des logiciels de lecture d'écran qui aide les utilisateurs d'ordinateurs malvoyants. Les commandes de verbosité vocale permettent aux utilisateurs de choisir le niveau de détail des commentaires vocaux qu'ils souhaitent entendre. Plus précisément, les paramètres de verbosité permettent aux utilisateurs de se représenter mentalement les pages web affichées sur leur écran. En fonction de ces paramètres, un programme de lecture d'écran informe les utilisateurs de certains changements de mise en forme, comme le début et la fin d'un cadre ou d'un tableau, l'insertion d'images dans le texte ou l'apparition d'une liste dans le document. Les paramètres de verbosité peuvent également contrôler le niveau de description des éléments, tels que les listes, les tableaux et les zones. Par exemple, JAWS propose trois niveaux de verbosité web prédéfinis : faible, moyen et élevé. Le niveau élevé fournit davantage de détails sur le contenu d'une page web.
Langue
Certains lecteurs d’écran peuvent lire du texte dans plus d’une langue , à condition que la langue du matériel soit encodée dans ses métadonnées .