UFCD_10392_Intervenção em populações de risco_índice .pdf
TDC2016SP - Trilha .NET
1. Acessibilidade em .NET utilizando o ACAT
Felipe Pedroso
@felipeapedroso
github.com/felipepedroso
2. Agenda
• O que é o ACAT?
• Detalhes Técnicos
• Arquitetura
• Criando Extensões
• Como criar uma extensão?
• Aforge.NET
• Exemplo 1 : Aforge Actuator
3. 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
5. 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
11. 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
12. 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
13. 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
14. 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
15. 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?
16. 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/