Não há nada mais frustrante para as pessoas cegas do que tentar utilizar uma aplicação e descobrir que esta não é acessível. Talvez o seu leitor de ecrã não consiga ler uma parte importante da aplicação, ou talvez não consiga ler nada. Quando as aplicações são desenvolvidas utilizando botões padrão, caixas de edição, caixas de listagem, tabelas ou outros elementos da interface do utilizador, não é difícil torná-las acessíveis. Mas algumas aplicações são desenvolvidas utilizando um kit de ferramentas de interface do utilizador não normalizado, e estes kits de ferramentas são completamente inacessíveis. Implementar a acessibilidade de raiz num conjunto de ferramentas de interface de utilizador é difícil e moroso, pelo que normalmente não é feito, exceto nos poucos conjuntos de ferramentas de interface de utilizador de topo com grande apoio empresarial. Por vezes, é realmente necessário que um programador de aplicações utilize um kit de ferramentas de interface de utilizador personalizado, e outras vezes não, mas, independentemente disso, acabamos por ter aplicações inacessíveis.
Este problema é especialmente urgente para as aplicações que são críticas para determinados trabalhos. Não é invulgar que uma pessoa cega não consiga arranjar um determinado emprego porque este requer a utilização de uma aplicação inacessível. Trata-se frequentemente de aplicações de nicho para as quais o incentivo económico habitual para implementar a acessibilidade, nomeadamente a venda ao governo e aos sectores educativos, não se aplica. Por isso, precisamos urgentemente de uma solução que elimine o maior número possível de barreiras para tornar acessível a cauda longa das aplicações.
Tal como acontece com o trabalho que a Pneuma Solutions está a desenvolver na correção de documentos e conteúdos de reuniões, a aprendizagem automática pode ajudar a resolver este problema. A Apple está a liderar o caminho nesta área com a funcionalidade de reconhecimento de ecrã integrada no iOS e os resultados até agora são promissores. No entanto, esta tecnologia ainda não está disponível em todos os computadores e dispositivos, e os resultados não são muitas vezes satisfatórios. Não podemos esperar que esta solução amadureça e seja mais amplamente adoptada; precisamos de outra abordagem que seja prática a curto prazo. Além disso, muitos criadores de aplicações e de kits de ferramentas de interface do utilizador estão dispostos a tornar o seu software acessível, se não fosse tão difícil e demorado. Estes programadores já estão dispostos a encontrar-nos a meio caminho; agora temos de fazer o mesmo.
É aí que entra o meu novo projeto de código aberto, o AccessKit. O objetivo do AccessKit é fornecer uma infraestrutura partilhada para tornar as aplicações acessíveis, no maior número possível de plataformas e linguagens de programação. Com o AccessKit, um programador que trabalhe com várias plataformas não terá de implementar a acessibilidade para cada plataforma a partir do zero. Outro objetivo do AccessKit é ser melhor documentado e mais fácil de utilizar corretamente do que as APIs de acessibilidade específicas de cada plataforma, como a UI Automation para Windows ou a acessibilidade Cocoa para plataformas Apple. Afinal de contas, uma implementação de acessibilidade incorrecta pode ser quase tão frustrante como não ter qualquer acessibilidade.
O AccessKit ainda está no início da sua conceção e desenvolvimento, mas já está a atrair o interesse de outros programadores, incluindo contribuições de código de um outro programador. E agora tenho o grande privilégio de receber financiamento da Google para trabalhar a tempo parcial neste projeto, começando com a implementação para Windows. Estou ansioso por obter resultados utilizáveis até ao final deste ano.
Tenho a certeza que qualquer programador que esteja a ler isto vai querer saber mais sobre como o AccessKit vai funcionar. A versão curta é que o AccessKit fornecerá uma abstração de acessibilidade multiplataforma que é fortemente inspirada no mecanismo do navegador Chromium. Essa abstração é baseada em estruturas de dados serializáveis, minimizando assim a sobrecarga de interface entre linguagens de programação. O AccessKit será implementado principalmente na linguagem de programação Rust, que fornece uma combinação única de fiabilidade e eficiência. No entanto, o AccessKit será utilizável a partir de uma variedade de linguagens de programação. Mais pormenores estão disponíveis no repositório AccessKit GitHub.
Como um projeto de código aberto, o AccessKit precisa da participação da comunidade de programadores para ser bem sucedido e sustentável. Em particular, gostaria de receber contribuições de programadores que sejam proficientes na linguagem de programação Rust. A conceção geral do AccessKit ainda é fluida, pelo que é demasiado cedo para delegar muito trabalho de implementação. O que eu preciso neste momento é de revisão por pares, especialmente de desenvolvedores que são mais experientes com a linguagem Rust do que eu. Se estiver interessado, junte-se a nós no GitHub.
Para terminar, uma das principais razões pelas quais deixei a Microsoft para fundar a Pneuma Solutions é que quero ter a liberdade de trabalhar em projectos relacionados com a acessibilidade que acredito que terão um grande impacto positivo na nossa comunidade, para além de uma única plataforma. Continuo entusiasmado com o trabalho que estamos a fazer na Pneuma Solutions, e esse trabalho vai continuar. Com o AccessKit, tenho agora a oportunidade de resolver um problema que me preocupa há muitos anos. Estou ansioso por trabalhar com a comunidade de desenvolvimento de software para tornar muito mais aplicações acessíveis.
Deixe um comentário