tdc2016sp - trilha .net

17
Acessibilidade em .NET utilizando o ACAT Felipe Pedroso @felipeapedroso github.com/felipepedroso

Upload: tdc-globalcode

Post on 20-Mar-2017

42 views

Category:

Education


1 download

TRANSCRIPT

Page 1: TDC2016SP - Trilha .NET

Acessibilidade em .NET utilizando o ACAT

Felipe Pedroso

@felipeapedroso

github.com/felipepedroso

Page 2: TDC2016SP - Trilha .NET

Agenda

• O que é o ACAT?• Detalhes Técnicos

• Arquitetura

• Criando Extensões• Como criar uma extensão?

• Aforge.NET

• Exemplo 1 : Aforge Actuator

Page 3: TDC2016SP - Trilha .NET

O que é o ACAT?

• “Assistive Context-Aware Toolkit”

• Permitir que pessoas com limitações físicas se comuniquem e controlem o computador através de um teclado virtual, predição de palavras e síntese de voz

• Desenvolvido pela Intel em conjunto com o Professor Hawking

• Extensível e customizável

Image Source: https://github.com/01org/acat/tree/master/src/Assets/Images

Page 4: TDC2016SP - Trilha .NET

Open Source

http://01.org/ACAT

https://github.com/01org/acat

Page 5: TDC2016SP - Trilha .NET

Alguns detalhes técnicos...

• Roda no Windows 7 ou superior

• Código escrito em C# usando Visual 2012 (funciona na 2015) e Microsoft* .NET Framework 4.5

• Microsoft* Office Interop Assemblies são usados para interagir com as apps do Office (Word e Outlook)

• Algumas ferramentas utilizadas no desenvolvimento:• CodeMaid

• StyleCop

• ReSharper

Page 6: TDC2016SP - Trilha .NET

Arquitetura

Apps

Core Library

Extension Library

Extensions

Extension Extension Extension ...

Page 7: TDC2016SP - Trilha .NET

AppsACAT Qwerty ACAT Abc ACAT Tryout

Talk Window

Page 8: TDC2016SP - Trilha .NET

Core Library –Componentes

Word Prediction*

Management

UI Management

AnimationsPanels Widgets Themes

Text-to-Speech ManagementTalk Window

Management

*O ACAT utiliza o Presage, uma engine de predição de texto criada por Matteo Vescov. (http://presage.sourceforge.net)

Page 9: TDC2016SP - Trilha .NET

Core Library – Agentes

Page 10: TDC2016SP - Trilha .NET

Core Library – Atuadores

Actuator

Management

Image Sources: http://www.psfk.com/2013/02/intel-stephen-hawking.html & https://commons.wikimedia.org/wiki/File:Assistive_device.JPG

Actuators

Proximity Sensor Assistive Switch Camera

Page 11: TDC2016SP - Trilha .NET

Extensions Library

• Permite criar extensões/plugins para o ACAT

• São carregadas dinamicamente durante o startup do aplicativo (reflection)

• Possui as classes base e interfaces necessárias para implementar plugins

Tipos de Extensão

UI

Word Predictors

Agents

Actuators

Text-to-Speech Spell Checkers

Page 12: TDC2016SP - Trilha .NET

Como criar uma extensão?

• Criar um projeto do tipo “Class Library” e adicionar referências para as DLLs “ACATCore.dll” e “ACATExtension.dll”

• Estender as classes “ActuatorBase” e “ActuatorSwitchBase”

• Implementar os métodos abstratos e usar os callbacks (Init, Resume, Pause, Dispose) para rodar a sua extensão (threads, configutação, etc)

• Chamar os métodos OnSwitchActivated (Press), OnSwitchDeactivated (Release) ou OnSwitchTriggered(Click) para sinalizar a interação do usuário com o seu atuador

• Fazer o deploy da sua DLL para a pasta de extensões e atualizar arquivos de configuração

Page 13: TDC2016SP - Trilha .NET

Aforge.NET

• Framework open source que disponibiliza APIs de processamento de imagens, machine learning, algoritmos genéticos, lógica fuzzy, robótica, etc

• Foi descontinuada em 2013, porém suas funcionalidades foram incorporadas pela biblioteca Accord.NET.

• Links:• Site Oficial

• Github

• Nuget

Page 14: TDC2016SP - Trilha .NET

Aforge Actuator

• Objetivo: • Processar a imagem da

webcam utilizando o Aforge e notificar o Actuator quando uma lanterna for acesa na frente da câmera

• O código vai ficar disponível no Github.

Aforge Actuator Extension

LightTracker

Actuator Switch

Actuator

Managemen

t

Page 15: TDC2016SP - Trilha .NET

Conclusão

• ACAT é uma boa opção para aumentar a inclusão digital e melhorar a qualidade de vida de pessoas portadoras de deficiência.

• Open Source: não tem uma funcionalidade que você precisa? Fork it!

• Extensões: que tal adaptar seu software ou criar uma extensão para ajudar mais pessoas?

Page 16: TDC2016SP - Trilha .NET

Referências

• História do ACAT• http://iq.intel.com/behind-scenes-intel-keeps-stephen-hawking-talking/

• http://www.wired.com/2015/01/intel-gave-stephen-hawking-voice/

• ACAT• https://github.com/01org/acat

• http://01.org/ACAT

• Aforge.NET:• http://aforgenet.com/

Page 17: TDC2016SP - Trilha .NET

Obrigado!Felipe Pedroso

@felipeapedroso

github.com/felipepedroso