# Leitor de tela

Um leitor de tela ou leitor de ecrã é um aplicativo de software que converte um texto em um discurso sintetizado, permitindo o usuário ouvir em vez de visualizar o conteúdo da Internet. Em termos mais formais, o conteúdo mostrado na tela é enviado para uma saída independente da presença de um monitor de vídeo. Então, as interpretações são sintetizadas para os usuários por meio de um sistema texto-voz, ícones de áudio ou um dispositivo de saída Braille. Os leitores de tela são uma forma de tecnologia assistiva, que são essenciais para pessoas com deficiência visual, analfabetas ou com dificuldades de aprendizado.
Os sistemas operacionais Microsoft Windows incluíram o leitor de tela Microsoft Narrator desde o Windows 2000. Já os sistemas operacionais da Apple Inc. Mac OS X, iOS, e tvOS incluem o leitor de tela rico em recursos VoiceOver, enquanto o sistema operacional do Google Android inclui o Google Text-to-Speech . Os aparelhos Samsung que que possuem Android incluem o Samsung Text-to-Speech. Os consoles que possuem Oralux Linux incluem o Emacspeak o Yasr e o Speakup. Os dispositivos BlackBerry 10 como o BlackBerry Z30 também possuem um leitor de tela incorporado (há leitores de tela livres para dispositivos BlackBerry mais antigos e menos potentes como o BBOS7).
Também há leitores de tela livres e com código aberto como o Orca para sistemas Unix-like e o NonVisual Desktop Access (NVDA) para Windows. O NDVA está ganhando popularidade. Entretanto, os leitores de tela mais utilizados são produtos comerciais separados. Entre os exemplos nos mercados de língua inglesa como os Estados Unidos estão o JAWS, da Freedom Scientific, o Window-Eyes, da GW Micro, o Dolphin Supernova, da Dolphin, o System Access, da Serotek, e o ZoomText Magnifier/Reader, da AiSquared.
Entre os programas disponíveis para pessoas com deficiência visual no Brasil estão:
* DOSVOX - sistema de código aberto mais utilizado no Brasil, disponível para Windows ou para Linux.
* Orca - tecnologia assistiva livre, de código aberto, flexível e extensível, utilizada nas distribuições do GNU/Linux que se baseiam no ambiente gráfico gnome.
* Nitrous Voice Flux - controle de computador por voz gratuito.
* IBM Via Voice - controle de computador por voz.
* NVDA - software livre de leitura de tela para Microsoft Windows com suporte para vários idiomas.
* YeoSoft Text to MP3 Speaker - leitor de tela em inglês e português.
* JAWS para Microsoft Windows - leitor de tela com suporte para vários idiomas.
* Virtual Vision - leitor de telas em português do Brasil.
OBS.: O navegador da web Opera possui capacidade de leitura de tela.

## Tipos de leitores de tela
### Linha de comando (texto)

Nos primeiros sistemas operacionais como o MS-DOS, que empregava interfaces de linhas de comando (CLI, na sigla em Inglês), o display consistia do mapeamento de caracteres diretamente para um buffer de tela na memória e uma posição do cursor (a entrada era pelo teclado). Estas informações podiam ser obtidas hooking o fluxo de informação do sistema e lendo buffer de tela ou utilizando um soquete de saída de hardware e comunicando os resultados aos usuários. Nos anos 1980, o Research Centre for the Education of the Visually Handicapped (RCEVH), na Universidade de Birmingham, desenvolveu o leitor de tela para o BBC Micro e o NEC Portable.

### Gráfico
#### Modelos off–screen

Com a chegada da interface gráfica do usuário (GUI, na sigla em Inglês), a situação ficou mais complicada. Como a GUI tem caracteres e gráficos desenhados na tela em posições particulares, não há representação puramente textual dos conteúdos gráficos exibidos na tela. Então, os leitores de tela foram forçados a empregar novas técnicas de baixo nível usando as mensagens do sistema operacional para criar um modelo off–screen, uma representação dos display no qual o conteúdo escrito necessário é armazenado.
Por exemplo, o sistema operacional pode enviar mensagens para desenhar um botão de comando e sua legenda. Estas mensagens são interceptadas e utilizadas para construir o modelo off–screen. O usuário pode alternar entre controles (como os botões) disponíveis na tela e legendas e os conteúdos controlados são lidos em voz alta e / ou exibidos em um novo display Braille.
Os leitores de tela também podem comunicar informações de menus, controles e outras construções visuais para permitir que os usuários com deficiência visual interajam com estes conteúdos. Entretanto, manter um modelo off–screen é um desafio técnico (hooking as mensagem de baixo nível e manter um modelo preciso são tarefas difíceis).

#### API de acessibilidade

Os programadores de sistemas operacionais e aplicativos tem tentado resolver estes problemas por meio de caminhos para os leitores de tela acessarem os conteúdos do display sem manter o modelo off–screen. Isto envolve a criação de representações acessíveis e alternativas do que é exibido na tela, acessado por meio de uma interface de programação de aplicativos (API, na sigla em Inglês). As API incluem Apple Accessibility API, AT-SPI, IAccessible2, Microsoft Active Accessibility (MSAA), Microsoft UI Automation e Java Access Bridge.
Os leitores de tela podem consultar o sistema operacional ou o aplicativo para o que está sendo exibido no momento e receber atualizações quando o display muda. Por exemplo, um leitor de tela pode ser informado que o foco está em um botão e sua legenda ser comunicada ao usuário. Esta abordagem é consideravelmente fácil para os desenvolvedores de leitores de tela, mas falha quando os aplicativos não cumprem a API de acessibilidade. Por exemplo, como o Microsoft Word não cumpre a MSAA API, os leitores de tela devem manter um modelo off–screen para o Microsoft Word ou encontrar outra forma de acessar seus conteúdos.
Uma abordagem é usar mensagens de sistemas operacionais disponíveis e modelos de objetos de aplicativos para complementar as API de acessibilidade. O leitor de tela Thunder opera desta maneira sem um modelo off–screen (a última versão também incluir modelos off–screen).
Os leitores de tela podem ser assumidos como capazes de acessar todo o conteúdo exibido que não é intrinsecamente inacessível. Navegadores, processadores de texto, ícones e janelas e servidores de email são apenas algumas dos aplicativos usados com sucesso pelos usuários dos leitores de tela. Entretanto, de acordo com alguns usuários, utilizar um leitor de tela é consideravelmente mais difícil que utilizar uma GUI e muitos aplicativos têm problemas específicos que resultam da natureza do programa (por exemplo, animações em Macromedia Flash) ou falham em cumprir padrões de acessibilidade para a plataforma (por exemplo, Microsoft Word e Active Accessibility).

#### Programas self–voicing

Os programas que possuem tecnologia de voz incorporada em sua principal funcionalidade são chamados de self–voicing e podem ser uma forma de tecnologia assistiva desde que desenhados para tirar a necessidade de usar o leitor de tela.

#### Programas baseados na nuvem

Há alguns serviços telefônicos que permitem os usuários interagirem com a Internet remotamente. Por exemplo, o TeleTender pode ler páginas da web e não requer programas ou dispositivos especiais.

#### Aplicativos baseados na Internet

Um desenvolvimento relativamente novo no campo são os aplicativos baseados na Internet como o Spoken-Web que atuam como portais, gerenciando conteúdo como notícias, meteorologia, ciência e artigos econômicos para pessoas com deficiência visual. Entre outros exemplos estão o ReadSpeaker ou o BrowseAloud, que levam a funcionalidade do sistema texto–voz ao conteúdo da Internet.
O principal público destes aplicativos são as pessoas que têm dificuldade para ler devido a dificuldades de aprendizado ou a barreiras linguísticas. Embora a funcionalidade continue limitada em comparação aos aplicativos de desktop equivalentes, a principal vantagem é aumentar a acessibilidade dos websites quando acessados em máquinas públicas em que os usuários não têm permissão para instalar softwares customizados, dando às pessoas maior liberdade de navegação.
Com o desenvolvimento dos smartphones, a habilidade de ouvir a documentos escritos (conteúdo escrito da Internet, documentos em PDF, emails, entre outros) durante o trânsito ou durante outra atividade similar pode beneficiar um público mais amplo que as pessoas com deficiência visual. Entre os exemplos mais conhecidos estão a Siri para iOS e oGoogle Now e o Iris para Android. Com o lançamento do Galaxy S III, a Samsung também introduziu um assistente pessoal inteligente parecido chamado de S Voice. No sistema operacional BlackBerry 10, o smartphone Z30 também possui recursos de interação falada semelhantes.
Esta funcionalidade depende não apenas da qualidade do software, como também de uma estrutura lógica do texto. O uso de títulos, pontuação, atributos alternativos para imagens, entre outros, é crucial para uma boa vocalização. Um website também pode ter uma boa aparência devido ao uso de posicionamento bidimensional apropriado com CSS. No entanto, sua linearização padrão suprimindo qualquer CSS e Javascript no navegador pode não ser compreensível.

## Customização dos leitores de tela

A maioria dos leitores de tela permitem os usuários selecionarem se sinais de pontuação serão lidos ou ignorados. Alguns leitores de tela podem ser adaptados para um aplicativo particular por meio de scripts. Uma vantagem dos scripts é que eles possibilitam que as customizações sejam compartilhadas entre os usuários, aumentando a acessibilidade para todos. Por exemplo, o JAWS usufrui de uma comunidade de compartilhamento de scripts ativa.

### Verbosidade

A verbosidade é uma característica dos softwares leitores de tela que ajudam os usuários com deficiência visual. Os controles de verbosidade permitem os usuários escolherem a quantidade de feedback. Especificamente, as configurações de verbosidade possibilitam os usuários construírem um modelo mental das páginas da Internet exibidas nas telas dos seus computadores. Com base na configurações de verbosidade, um programa de leitura de tela informa o usuário sobre certas alterações formatação como quando um quadro ou uma tabela começa e termina, onde os gráficos foram inseridos no texto ou quando uma lista aparece no documento.

### Linguagem

Há leitores de tela que podem ler textos em mais de uma língua, desde que o idioma esteja codificado em seus metadados. Há programas de leitura de tela que também incluem a verbosidade, que automaticamente detecta as configurações de verbosidade relacionadas à língua de saída de voz. Por exemplo, o texto de um website inglês seria lido com sotaque britânico.