none
Leitor de tela não funciona em aplicação Flash dentro do Windows Form RRS feed

  • Pergunta

  • Caros amigos,

    Estou fazendo testes de acessibilidade em uma aplicação Flash dentro de um Windows Form usando a linguagem C#. Se eu executar essa aplicação Flash em um navegador o meu leitor de tela (DosVox) funciona normalmente, mas se eu adicionar essa aplicação Flash em um Form eu consigo apenas a navegação pela tecla TAB, mas o leitor de tela não lê as informações de cada componente que está com foco dentro da aplicação em Flash. Exemplo: minha aplicação Flash tem alguns botões e com a tecla TAB em consigo alterar o foco entre esses botões e a cada botão que recebe o foco o DosVox lê o nome desse botão , mas isso só funciona se eu abrir a aplicação Flash em um navegador. Se eu adicionar essa mesma aplicação Flash dentro de um Form eu consigo apenas navegar entre os botões com a tecla TAB, mas o DosVox não lê os nomes dos botões. Existe alguma forma do meu código C# capturar as informações de acessibilidade para que o DosVox consiga ler? Ps.: não me deem como sugestão usar o Silverlight, eu estou preso ao Flash.

    Grato pela atenção.
    quinta-feira, 11 de fevereiro de 2010 15:38

Todas as Respostas

  • Olha,

    Para tentar resolver o seu problema seria necessario estar de posse do equipamento para efetuar alguns testes e enteder seu funcionando, o que não é o caso.
    Então sem conhecer o equipamento mais a fundo eu acredito ser dificil poder ajudar.

    Se puder me dizer se vc usa algum controle para adicionar ou flash a sua aplicaçao ou se vc usa um controle web e nele chame a pagina poderia ajudar!


    Um forte abraço!

    Alexsandro Nunes
    Especialista DotNet
    quinta-feira, 11 de fevereiro de 2010 17:58
  • Caro Alexsandro,

    Não existe nenhum equipamento, o DosVox é um software que lê o componente da interface do usuário que está em foco (um botão, caixa de texto). Funciona assim... cada vez que eu pressiono a tecla TAB o foco muda de um componente para o outro e para cada componente que recebe o foco o software DosVox interpreta o texto do componente, como por exemplo o label de um botão, e reproduz o som do que está escrito nesse botão. Se eu difinir o label de um botão como "Iniciar" e esse botão receber o foco, é reproduzido o som de alguém falando "Botão Iniciar, clique aqui para executar tal coisa". Esse é um recurso usado para que deficientes visuais consigam utilizar um determinado sofware com o auxílio de um leitor de tela. Em uma aplicação que eu utilizo apenas componentes que fazem parte do WindowsForms eu consigo fazer isso funcionar normalmente atribuindo os textos que o leitor de tela deve falar às propriedades AccessibleDescription e AccessibleName de cada Button ou TextBox. O Flash também possui esse recurso de leitura de tela. Na minha aplicação Flash eu consigo atribuir a ordem que cada componente recebe o foco (semelhante a atribuir os valores à propriedade TabIndex do WindowsForm) e atribuir os textos de cada componente da tela que o leitor de tela deve falar (semelhante a atribuir os textos às propriedades AccessibleDescription e AccessibleName). O problema é que o leitor de tela só consegue ler essas informações quando eu executo o meu arquivo .swf no navegador, mas eu preciso carregar o arquivo .swf dentro de um Form, isso eu já faço utilizando a classe AxShockwaveFlashObjects.AxShockwaveFlash que permite que eu carregue um arquivo .swf dentro de um Form. O problema é que quando eu carrego o arquivo .swf dentro do Form o leitor de tela não consegue ler as informações dos componentes que estão no Flash, o leitor de tela não lê os textos dos botões e de nenhum outro componente que faça parte do Flash. Para resolver esse problema eu estou imaginando na seguite solução: usar o C# para gerar a informação que o leitor de tela precisa para reproduzir o que está escrito da mesma forma que já acontece automaticamente quando eu atribuo os textos às propriedades AccessibleDescription e AccessibleName, mas eu não sei como criar as informações que um software de leitura de tela captura. Espero que o meu problema esteja mais claro agora. Obrigado.
    quarta-feira, 17 de fevereiro de 2010 16:15