a tecnologia assistiva xlupa -...

10
A TECNOLOGIA ASSISTIVA XLUPA – UM SOFTWARE LIVRE AMPLIADOR E LEITOR DE TELA PARA PESSOAS COM BAIXA VISÃO Odair Moreira de Souza 1 Jorge Bidarra 2 Diego Rodrigo Hachmann 3 Cleiton Fiatkoski Balansin 4 Resumo De acordo com a ONU, estima-se que cerca de 500 milhões de pessoas no mundo apresenta algum tipo de deficiência, física ou mental. Na tentativa de se encontrarem caminhos alternativos, porém eficazes, surgem as Tecnologias Assistivas (TAs), um marco importante no processo inclusivo dessas pessoas na sociedade. Via programas computacionais desenvolvidos para ampliação de telas, pessoas com baixa visão, por exemplo, conseguem ter acesso a um universo de informações que são exibidas em computadores. Nesse trabalho, apresentamos o xLupa, um software livre ampliador de telas, resultado de um projeto de pesquisa desenvolvido no interior do Grupo de pesquisa em Inteligência Aplicada da UNIOESTE (GIA/UNIOESTE). Ao longo do texto, serão abordados não apenas questões técnicas, mas também algumas de suas principais características inovadoras de funcionamento. Palavras-chave: Tecnologia Assistiva, Ampliador e leitor de tela, Acessibilidade/Usabilidade. 1 Estudante de Bacharelado em Ciência da Computação - Universidade Estadual do Oeste do Paraná - Grupo de pesquisa em Inteligência Aplicada – [email protected]. 2 Professor Associado da UNIOESTE (cursos de graduação em Ciência da Computação e Mestrado de Letras - mecanismos e processamento da linguagem natural). Coordenador Geral do Núcleo de Inovações Tecnológicas. Líder do Grupo de Inteligência Aplicada – GIA/CNPq/UNIOESTE. Coordenador do Projeto xLupa. [email protected]. 3 Estudante de Bacharelado em Ciência da Computação - Universidade Estadual do Oeste do Paraná - Grupo de pesquisa em Inteligência Aplicada – [email protected]. 4 Estudante de Bacharelado em Ciência da Computação - Universidade Estadual do Oeste do Paraná - Grupo de pesquisa em Inteligência Aplicada – [email protected].

Upload: vuongtuyen

Post on 10-Nov-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

A TECNOLOGIA ASSISTIVA XLUPA – UM SOFTWARE LIVRE

AMPLIADOR E LEITOR DE TELA PARA PESSOAS COM BAIXA VISÃO

Odair Moreira de Souza1

Jorge Bidarra2

Diego Rodrigo Hachmann3

Cleiton Fiatkoski Balansin4

Resumo

De acordo com a ONU, estima-se que cerca de 500 milhões de pessoas no

mundo apresenta algum tipo de deficiência, física ou mental. Na tentativa de

se encontrarem caminhos alternativos, porém eficazes, surgem as

Tecnologias Assistivas (TAs), um marco importante no processo inclusivo

dessas pessoas na sociedade. Via programas computacionais

desenvolvidos para ampliação de telas, pessoas com baixa visão, por

exemplo, conseguem ter acesso a um universo de informações que são

exibidas em computadores. Nesse trabalho, apresentamos o xLupa, um

software livre ampliador de telas, resultado de um projeto de pesquisa

desenvolvido no interior do Grupo de pesquisa em Inteligência Aplicada da

UNIOESTE (GIA/UNIOESTE). Ao longo do texto, serão abordados não

apenas questões técnicas, mas também algumas de suas principais

características inovadoras de funcionamento.

Palavras-chave: Tecnologia Assistiva, Ampliador e leitor de tela,

Acessibilidade/Usabilidade.

1 Estudante de Bacharelado em Ciência da Computação - Universidade Estadual do Oeste

do Paraná - Grupo de pesquisa em Inteligência Aplicada – [email protected]. 2 Professor Associado da UNIOESTE (cursos de graduação em Ciência da Computação e

Mestrado de Letras - mecanismos e processamento da linguagem natural). Coordenador Geral do Núcleo de Inovações Tecnológicas. Líder do Grupo de Inteligência Aplicada – GIA/CNPq/UNIOESTE. Coordenador do Projeto xLupa. [email protected].

3 Estudante de Bacharelado em Ciência da Computação - Universidade Estadual do Oeste do Paraná - Grupo de pesquisa em Inteligência Aplicada – [email protected].

4 Estudante de Bacharelado em Ciência da Computação - Universidade Estadual do Oeste do Paraná - Grupo de pesquisa em Inteligência Aplicada – [email protected].

Introdução

Segundo a Organização das Nações Unidas (ONU), cerca de 500 milhões de

pessoas no mundo tem algum tipo de deficiência, física e/ou mental. Desses,

estima-se que em torno de 80% se concentra em países pobres ou em

desenvolvimento. De acordo com a Organização Mundial de Saúde (OMS),

somente no Brasil, há 16 milhões de pessoas com deficiência, representando

10% da população brasileira (ACESSIBILIDADE, 2010) e (DATASUS, 2010).

Dados do Censo de 2000 do IBGE, no entanto, aponta para um número mais

expressivo, na ordem de 24,5 milhões (IBGE, 2010). Esses dados chamam a

atenção não apenas das autoridades governamentais, mas também de toda a

sociedade, colocando para ambos urgentes desafios, com vistas a combater o

histórico quadro de exclusão a que essas pessoas estão expostas.

Apesar do impacto causado por esses dados, à discussão sobre a deficiência

não deve ser reduzida a questões quantitativas. Mais do que números, o

Brasil precisa pensar em políticas públicas inclusivas e eficazes. Diante disso,

uma das primeiras providências é garantir a esses indivíduos acessibilidade,

seja aos espaços públicos ou ao conhecimento.

Apesar não ser um conceito novo, o termo acessibilidade é somente

retomado a partir dos anos 80, com destaque para 1981, quando da

celebração do Ano Internacional das Pessoas Deficientes (CARVALHO,

1997)5. É nesse novo cenário que surgem as Tecnologias Assistivas (TAs),

atualmente consideradas como um dos principais instrumentos para a

efetivação e consolidação dos muitos programas de inclusão existentes, tanto

no Brasil como em outros países.

5 Ano Internacional dos Deficientes: evento instituído pelas Nações Unidas, tendo como principal finalidade chamar a atenção do mundo para a criação de planos de ação, na tentativa de dar ênfase à igualdade de oportunidades, reabilitação e prevenção de deficiências. Participação e Igualdade Plenas foi o lema desse evento, definido como um direito das pessoas com deficiência, reconhecendo-lhes o direito de terem uma vida ativa, digna e de qualidade, como qualquer outro cidadão. Uma das maiores contribuições do evento foi à criação do Programa Mundial de Ação para pessoas com deficiência, formulado em dezembro de 1982 pela Assembléia Geral das Nações Unidas. [Carvalho, 1997]

A despeito de suas vantagens, sabe-se que o simples desenvolvimento de

tecnologias de um modo geral e em particular as assistivas, sem a devida

atenção às condições de uso e aplicabilidade, não garante os resultados

esperados, notadamente junto às pessoas com necessidades especiais. Os

diferentes tipos e níveis de deficiência física, motora e/ou mental requerem

tanto a especificação quanto a implementação de recursos tecnológicos muito

mais elaborados do que aqueles voltados para um público mais geral. No que

diz respeito ao desenvolvimento de soluções computacionais para um público

tão específico, são inúmeros os requisitos de software e hardware

demandados. Um deles, entretanto, assume naturalmente uma posição de

destaque: acessibilidade.

Partindo desse ponto, apresentamos o xLupa como uma proposta tecnológica

inovadora, não exatamente com relação a sua função básica que é ampliar,

mas com referência aos recursos que suporta, uma vez que, juntos, oferecem

ao usuário baixa visão, além de acessibilidade já mencionada, conforto e

sobretudo autonomia de trabalho com e através do computador.

Desenvolvimento do xLupa: uma visão geral

Embora atualmente existam muitos ampliadores de tela, em grande parte

para execução em plataforma windows (p.ex., zoomtext, magic e magnifier), o

xLupa, além de ser um software livre executável Linux, reúne um conjunto de

funcionalidades que o tornam uma solução diferenciada dos outros. Resultado

de uma longa pesquisa trata-se de uma solução desenvolvida com base na

aplicação de técnicas e métodos computacionais atuais, exploradas com o

objetivo de garantir um funcionamento que seja, ao mesmo tempo, acessível,

confortável e com capacidade para adaptar ao perfil ou às necessidades

específicas de seus potenciais usuários, as pessoas com baixa visão.

Para atingir esses objetivos, o projeto vem sendo desenvolvido por etapas,

sendo a primeira delas o desenvolvimento de um estudo minucioso de

viabilidade de especificação e execução. Nessa etapa, foram desenvolvidas

duas ações, uma delas a análise do problema, seguida pela licitação das

expectativas pretendidas. Desse processo resultou a delimitação das

principais características do ampliador, as quais, a passo e passo, foram

sendo agregados outros recursos importantes. Dentre as diversas decisões

de projeto, concluiu-se, por exemplo, que um importante recurso para o

indivíduo com baixa visão seria dotar o xLupa de capacidade para se adaptar

ao seu perfil. Para tanto, foram estudas diferentes técnicas de inteligência

artificial, sendo a técnica escolhida o Raciocínio Baseado em Casos ou

simplesmente RBC, tópico retomado mais adiante.

Embora não sendo exatamente a finalidade dos ampliadores fazer leitura de

telas, com o intuito de melhorar as condições de trabalho do usuário da

ferramenta, concluiu-se que outro recurso importante seria a implementação

de um modulo para leitura de tela. Com referência à ampliação, propriamente

dita, a ferramenta, que nas suas três primeiras versões apenas permitia

ampliações em áreas parciais da tela do computador (a 20, 30, 50 a 60 por

cento da área total do monitor), em sua versão mais recente (4.0) avança,

permitindo agora ampliações em tela cheia. Nas seções que se seguem,

abordaremos com mais detalhes cada um desses itens.

Aspectos técnicos relacionados à implementação

Da ampliação em tela cheia

Nas primeiras versões do xLupa, a ampliação das imagens e textos apenas

era possível em partes da tela. Com a evolução do trabalho, vários

investimentos foram feitos no sentido de que as ampliações acontecessem

em tela cheia. Esse tipo de ampliação, apesar de ser mais atraente e de fácil

visualização para o usuário final, requereu por parte da programação um

trabalho computacional mais elaborado. Para tanto, foram aplicadas diversas

técnicas e algoritmos, em grande parte, disponíveis no X Windows, com

alguns de seus detalhes aqui resumidos.

O X Windows System (O’ REILLY E ASSOCIATES, 1992), também chamado

de X11, é um protocolo que possibilita o emprego de uma interface gráfica,

explorando assim o conceito de janelas. O X11 opera em conformidade com o

modelo cliente-servidor. Ao local onde é exibida a tela dá-se o nome de

servidor X. É esse servidor o responsável pelo gerenciamento das telas em

processamento, bem como do teclado e mouse. O Cliente X, por seu turno, é

a aplicação responsável pela exibição de informações no servidor X. É ele,

por exemplo, que recebe os eventos capturados pelo servido dos teclados e

mouse, enviando os comandos para, por exemplo, desenhar uma imagem na

tela.

A implementação em C (linguagem usada na programação do xLupa) do

protocolo X11 é feita por meio de rotinas da biblioteca Xlib (O’ REILLY E

ASSOCIATES, 1992). Na verdade, poucas aplicações usam de fato a Xlib

diretamente. Na maioria das vezes, o mais comum é usar outras bibliotecas

de mais alto nível, tais como GTK+ e Qt, ambas implementadas sobre a Xlib.

De qualquer forma, via os recursos presentes na Xlib, torna-se possível a

obtenção das estruturas que compõem as janelas (dentre as informações

manipuláveis estão a posição da janela e as suas dimensões), por meio de

uma chamada a XQueryTree. Para o mapeamento de cada tela, utiliza-se a

extensão xComposite (PACKRD & JOHNSON, 2010). Através dela,

consegue-se a manipulação dos pixels de qualquer janela, permitindo que as

ampliações desejadas sejam feitas. É também a xComposite que dá suporte a

um tipo especial de janela, chamada de overlay. Trata-se de uma área

invisível para o cliente X, mas é nessa janela que as ampliações são

mostradas.

Durante o processamento, muitas vezes, é necessário ignorar a ocorrência de

determinados eventos numa janela, com a sua propagação para as janelas

que esteja abaixo. Isso é feito com base na extensão XShape (PACKARD &

KEITH, 2010). Essa extensão é normalmente usada em janelas

transparentes, como é o caso da janela especial de ampliação, citada

anteriormente. Uma chamada ao método XShapeCombineRectangles

permite, por exemplo, combinar essa transição dos eventos. No caso

específico do xLupa, os eventos ocorridos na janela de ampliação precisam

ser propagados para a janela root, ou seja a janela do usuário que ocupa toda

a tela e que contém todas as outras janelas. Eventos que denotem mudança

de tela são tratadas pela extensão xDamage (PACKARD & ANHOLT, 2010).

É através dela que o sistema é notificado que houve uma alteração numa

determinada janela e a posição da janela em que essa alteração ocorreu.

Xdamage é útil para reduzir o tempo de processamento; uma vez que a

atualização da tela ou refresh somente precisa ser feita na parte de janela

onde a alteração de fato aconteceu.

Em relação à ampliação em tela cheia, o funcionamento é resumidamente o

seguinte. Iniciado o processamento, cabe ao cliente, da componente cliente-

servidor, copiar as estruturas de todas as janelas na área do servidor (exceto

a janela Overlay) e montar uma imagem com estas janelas. A partir daí,

sempre que detectado um evento de mudança, o cliente dá início à alteração

das estruturas das janelas, remontando as imagens para exibição.

Da leitura de tela

O leitor de tela é um recurso alternativo para aos usuários com baixa visão.

Por meio dele, o usuário pode acessar com mais facilidade os conteúdos que,

embora ampliados na tela, não consegue ler. Para a sua implementação,

foram utilizadas as linguagens de programação C e Python. A escolha do

Python se deveu à necessidade da implementação dos recursos da interface

de acessibilidade AT-SPI (AT-SPI, 2010) presentes na biblioteca pyatspi

(ACCERCISER, 2010). Combinando esses recursos com o accerciser

(PYTHON, 2010), foi possível explorar a interatividade da linguagem e assim

suportar o processamento requerido para a leitura de tela. Assim, uma vez

capturado o evento, isola-se a frase ou a palavra a ser lida que, em seguida, é

entregue ao sintetizador de voz, módulo responsável pela transformação dos

caracteres em sinais de áudio. Para o xLupa, adotou-se o Espeak

(http://espeak.sourceforge.net/), um software livre e de código aberto.

Contribuíram para essa decisão o fato de permitir produções orais em

diferentes línguas, cujas características podem ser facilmente alteradas; baixa

demanda de área de memória, possibilidade de programação híbrida e código

ser portável.

Acessibilidade, Usabilidade e Adaptabilidade do xLupa

Assim como qualquer sistema computacional, o desenvolvimento de TAs

exige a implementação de requisitos funcionais e não funcionais da

Engenharia de Software, com destaque para a acessibilidade e usabilidade.

Define-se acessibilidade como sendo um conjunto de condições necessárias

num software, capazes de torná-lo um instrumento ao alcance de todos e de

fácil uso. Usabilidade (NIELSEN, 1993) é um termo associado a muitos

aspectos, dentre eles a facilidade de os comandos serem aprendidos pelo

usuário, a capacidade de o seu funcionamento ser recuperado após a

ocorrência de erros e a flexibilidade assegurada por ela no momento do uso.

Com o objetivo de tornar a ferramenta adaptável ao perfil do usuário, dentre

outras técnicas estudadas, foi implementado o Raciocínio Baseado em Casos

– RBC (Wangenheim & Wangenheim, 2003). Trata-se de uma abordagem

computacional que explora a solução de problemas e o aprendizado do

sistema por meio do rastreamento das experiências adquiridas com

processamentos já realizados: problemas passados.

O método se desenvolve por etapas, a saber: (i) Recuperação de dados –

Dado um novo problema, o sistema inicia o processo de recuperação de

casos que já estejam registrados na base de conhecimento do sistema e que

mais se aproximam da solução para o problema em processamento; (ii)

Revisão dos casos – A idéia básica desse procedimento é descobrir o

máximo de semelhanças existentes entre o problema a ser resolvido e

aqueles já processados anteriormente; (iii) Reutilização do Caso – Ao

encontrar o caso que mais se aproxima da solução desejada, o que é obtido

mediante o cálculo de similaridade, o sistema efetiva a sua execução e (iv)

Retenção do Caso – etapa que corresponde ao armazenamento de um novo

caso na base, para o caso de se ele ainda não estar registrado na base. A

capacidade de aprender e de se adaptar ao usuário é obtida através da

implementação dessa técnica.

O xLupa em funcionamento

Uma vez ativado, é apresentada para o usuário uma tela contendo uma

mesma imagem repetida em linha, a qual é aplicada um fator de ampliação

(Figura 1-a). Uma vez selecionado a imagem desejada, abre-se uma nova

tela (Figura 1-b), contendo diferentes cores de fundo. Partindo desse ponto,

inicia-se a busca de um caso armazenado na base que possa resolver o

problema em questão. As configurações do usuário podem ser salvas, para

uso futuro. Para tanto, o sistema pede ao usuário um login e uma senha

pessoa que servirão de índice para recuperação das configurações numa

nova execução do xLupa.

Figura 1-a Tela para captura fator de ampliação. 1- b Tela para ajuste da cor do fundo

Resultados, Discussão e Considerações Finais

Os testes com o xLupa, tanto em laboratório quanto com os usuários,

demonstram que a ferramenta atende os requisitos. Tendo em vista que um

dos objetivos é tornar o xLupa adaptável ao perfil do usuário, um dos

principais desafios tem sido definir, adequadamente, os atributos necessários

para esse desenvolvimento. A análise do projeto e os retornos obtidos

apontam para a necessidade de alguns ajustes. Problemas já detectados

estão em fase de análise e ajustes. No estágio atual, ao sistema foi agregada

a utilização de abas, o que melhorou a interface do sistema com o usuário.

Além disso, dois são os avanços na implementação. De um lado, a ampliação

em tela cheia, conforme comparação ilustrada na figura 2. De outro, o suporte

à leitura de tela.

Figura 2 – (à esquerda) Ampliação em tela parcial – (à direita) Ampliação em tela cheia

Apresentamos aqui o xLupa. Mostramos que, por meio de configurações

individuais, os usuários adquirem independência em suas atividades. Os

testes têm sido possíveis graças ao voluntariado de professores, escolas e

alunos, bem como de usuários avulsos, uma vez que o código executável

pode ser baixado, através do site http://projetos.unioeste.br/campi/XLupa/.

Como trabalhos futuros, a equipe do projeto foca suas pesquisas em outras

técnicas, métodos e ferramentas para ampliar os recursos e otimização,

atualmente os desenvolvedores estão elaborando a reengenharia do

software.

Referências Bibliográficas

ACCERCISER. Disponível em: http://live.gnome.org/Accerciser. Data de

Acesso: 12 de Out. 2010.

ACESSIBILIDADE. ACESSIBILIDADE.SIGAESSAIDEIA.ORG - Campanha

Acessibilidade. Disponível em: http://acessibilidade.sigaessaideia.org.br. Data

de Acesso: 12 de Out. 2010.

AT-SPI. Disponível em: http://directory.fsf.org/project/at-spi. Data de Acesso:

12 de Out. 2010.

CARVALHO, R.E. A nova LDB e a Educação Especial. Rio de Janeiro: WA,

1997.

DATASUS. Tecnologia da computação a serviço do deficiente visual.

Disponível em: http://w3.datasus.gov.br/acessibilidade/acessibilidade.php.

Data de Acesso: 12 de Out. 2010.

IBGE. Censo 2000. Disponível em: www.ibge.gov.br. Data de Acesso: 12 de

Out. 2010.

NIELSEN, J. Usability Engineering. Academic Press, Inc., San Diego. 1993;

O’REILLY & ASSOCIATES. Xlib Programming Manual. In: Xlib Programming

Manual for Version 11. Ed.: Adrian Nye(ed.) Sebastopol, Califórnia, 1992,

Vol.2.

PACKRD, K.; ANHOLT, E. The DAMAGE Extension Protocol Version1.1.

Disponível em:

http://cgit.freedesktop.org/xorg/proto/damageproto/plain/damageproto.txt. Data

de Acesso: 12 de Out. 2010.

PACKRD, K.; JOHNSON, D. The Composite Extension Version 0.4.

Disponível em:

http://cgit.freedesktop.org/xorg/proto/compositeproto/plain/compositeproto.txt.

Data de Acesso: 12 de Out. 2010.

PACKRD, Keith. X Nonrectangular Window Shape Extension Library.

Disponível em: http://www.xfree86.org/current/shapelib.pdf. Data de Acesso:

12 de Out. 2010.

PYTHON. Disponível em: http://live.gnome.org/GAP/PythonATSPI. Data de

Acesso: 12 de Out. 2010.

WANGENHEIM, C.G.V; WANGENHEIM, A.V. Raciocínio Baseado em Casos,

Ed.: Manole. São Paulo, 2003; Vol.1.