View
42
Download
1
Category
Preview:
Citation preview
Acessibilidade em .NET utilizando o ACAT
Felipe Pedroso
@felipeapedroso
github.com/felipepedroso
Agenda
• O que é o ACAT?• Detalhes Técnicos
• Arquitetura
• Criando Extensões• Como criar uma extensão?
• Aforge.NET
• Exemplo 1 : Aforge Actuator
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
Open Source
http://01.org/ACAT
https://github.com/01org/acat
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
Arquitetura
Apps
Core Library
Extension Library
Extensions
Extension Extension Extension ...
AppsACAT Qwerty ACAT Abc ACAT Tryout
Talk Window
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)
Core Library – Agentes
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
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
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
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
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
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?
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/
Recommended