SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
Who’s that guy?,[object Object],OMG a prototyper!,[object Object],Tackling design, user interface and interaction problems,[object Object],Present speedy implementations of ideas ,[object Object],Prove a concept, design or interaction before applying full production resources to a project ,[object Object],Provide functional code which is a direct representation of a concept, design or interaction for decision making,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
Accessibility at Yahoo!,[object Object],Alan Brightman,[object Object],Victor Tsaran,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
On-screen Keyboards What are They Good For?,[object Object],Representation of traditional keyboard input device,[object Object],Provide additional controls normally provided by a mouse,[object Object],Provide shortcuts to applications, keystroke combinations and input gestures,[object Object],Empower users with limited mobility,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
On-screen Keyboards in the World Wild Web,[object Object],One size fits all,[object Object],Content and context agnostic,[object Object],Many keystrokes required to access links and other elements on the page,[object Object],Targeting small elements with mouse emulation is difficult,[object Object],Tabbing through elements is slow,[object Object],Not the way the web was meant to be navigated,[object Object],No hover,[object Object],No click,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
On-screen Keyboards in the World Wild Web,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
On-screen Keyboards in the World Wild Web,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
What’s the problem?,[object Object],One size doesn’t fit all,[object Object],Using a keyboard as a mouse,[object Object],Keyboards are for typing,[object Object],Input is the priority not consumption,[object Object],Content and context are ignored unless explicitly accounted for by the user,[object Object],Indirect manipulation of data,[object Object],No standard cross-platform solution,[object Object],Cost can be a factor,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
Web Semantics to the Rescue,[object Object],kinda,[object Object],HTML5 elements have meaning,[object Object],<nav>,[object Object],<article>,[object Object],<section>,[object Object],Aria roles and tabindex,[object Object],<a href=“#” role=“button”>Button</a>,[object Object],<a href=“#” tabindex=“1”>Home</a>,[object Object],Context can be derived and applied to content,[object Object],Markup is never guaranteed to be valid, semantic or in line with best practices,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
Real World Applications,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
Real World Applications,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
Leveraging Semantics,[object Object],Use markup to derive context where possible,[object Object],Increase productivity by directly manipulating elements,[object Object],Remove the middlemen ,[object Object],Keyboard,[object Object],Mouse ,[object Object],Create a keyboard which is aware of context ,[object Object],Apply known context to selected content,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
Live Demo Time!,[object Object],Let’s hope pray this works!,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
Looking Forward,[object Object],The average American spends more than 60 hours a month online. This is the equivalent of 30 straight days a year.,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
Looking Forward,[object Object],Web applications in direct competition with desktop applications,[object Object],Yahoo! Mail,[object Object],Google Docs,[object Object],Facebook,[object Object],Twitter,[object Object],Mint.com,[object Object],Cloud based services,[object Object],Dropbox,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
Looking Forward,[object Object],Web technology based operating systems,[object Object],JavaScript, HTML5 and CSS3 based application framework,[object Object],Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]
Dynamic Keyboard Generation for Single Switch Users,[object Object],Aramys Miranda,[object Object],aramys@yahoo-inc.com,[object Object],Resources,[object Object],Yahoo! Accessibility,[object Object],http://accessibility.yahoo.com,[object Object],Switch XS,[object Object],http://www.assistiveware.com,[object Object],YUI3,[object Object],http://developer.yahoo.com/yui/3/,[object Object],Special Thanks,[object Object],Victor Tsaran,[object Object],vtsaran@yahoo-inc.com,[object Object],Alan Brightman,[object Object],abright@yahoo-inc.com,[object Object],Nate Ebrahimoon,[object Object],nebrahim@yahoo-inc.com,[object Object],Aramys Miranda aramys@yahoo-inc.com http://accessibility.yahoo.com,[object Object]

Más contenido relacionado

Similar a Dynamic keyboard generation

Sviluppare un backend serverless in real time attraverso GraphQL
Sviluppare un backend serverless in real time attraverso GraphQLSviluppare un backend serverless in real time attraverso GraphQL
Sviluppare un backend serverless in real time attraverso GraphQLAmazon Web Services
 
AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life
AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life
AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life Amazon Web Services
 
Best And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and MicrosoftBest And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and MicrosoftJosh Holmes
 
Implementing and Evaluating Web Application Accessibility
Implementing and Evaluating Web Application AccessibilityImplementing and Evaluating Web Application Accessibility
Implementing and Evaluating Web Application Accessibility3Play Media
 
Web Application Security: The Land that Information Security Forgot
Web Application Security: The Land that Information Security ForgotWeb Application Security: The Land that Information Security Forgot
Web Application Security: The Land that Information Security ForgotJeremiah Grossman
 
Accessibility And 508 Compliance In 2009
Accessibility And 508 Compliance In 2009Accessibility And 508 Compliance In 2009
Accessibility And 508 Compliance In 2009Emagination ®
 
Enhance customer experience with Conversational Interfaces
Enhance customer experience with Conversational InterfacesEnhance customer experience with Conversational Interfaces
Enhance customer experience with Conversational InterfacesAmazon Web Services
 
A Primer on Web Accessibility for Teams
A Primer on Web Accessibility for TeamsA Primer on Web Accessibility for Teams
A Primer on Web Accessibility for TeamsMikey Ilagan
 
Catalyze Webcast - Five Myths Of RIA With Laurie Gray - 031808
Catalyze Webcast - Five Myths Of RIA With Laurie Gray - 031808Catalyze Webcast - Five Myths Of RIA With Laurie Gray - 031808
Catalyze Webcast - Five Myths Of RIA With Laurie Gray - 031808Tom Humbarger
 
Understanding and Supporting Web Accessibility
Understanding and Supporting Web AccessibilityUnderstanding and Supporting Web Accessibility
Understanding and Supporting Web AccessibilityRachel Cherry
 
jQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und ResponsivejQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und ResponsivePeter Rozek
 
Intro to Web Accessibility: Koombea TechTalks
Intro to Web Accessibility: Koombea TechTalksIntro to Web Accessibility: Koombea TechTalks
Intro to Web Accessibility: Koombea TechTalksKoombea
 
PWA - ADT Magazine Webinar
PWA - ADT Magazine WebinarPWA - ADT Magazine Webinar
PWA - ADT Magazine WebinarSandeep Adwankar
 
The Recipe for Making Accessible Widgets!
The Recipe for Making Accessible Widgets!The Recipe for Making Accessible Widgets!
The Recipe for Making Accessible Widgets!Rabab Gomaa
 
Thadomal IEEE-HTML5-Workshop
Thadomal IEEE-HTML5-WorkshopThadomal IEEE-HTML5-Workshop
Thadomal IEEE-HTML5-WorkshopRomin Irani
 
Notes (2012-06-08)
Notes (2012-06-08)Notes (2012-06-08)
Notes (2012-06-08)Chris Pitt
 
Life of a Code Change to a Tier 1 Service - AWS Online Tech Talks
Life of a Code Change to a Tier 1 Service - AWS Online Tech TalksLife of a Code Change to a Tier 1 Service - AWS Online Tech Talks
Life of a Code Change to a Tier 1 Service - AWS Online Tech TalksAmazon Web Services
 
Create and Publish AR and VR Apps with Amazon Sumerian
Create and Publish AR and VR Apps with Amazon SumerianCreate and Publish AR and VR Apps with Amazon Sumerian
Create and Publish AR and VR Apps with Amazon SumerianAmazon Web Services
 

Similar a Dynamic keyboard generation (20)

Sviluppare un backend serverless in real time attraverso GraphQL
Sviluppare un backend serverless in real time attraverso GraphQLSviluppare un backend serverless in real time attraverso GraphQL
Sviluppare un backend serverless in real time attraverso GraphQL
 
AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life
AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life
AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life
 
Best And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and MicrosoftBest And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and Microsoft
 
Implementing and Evaluating Web Application Accessibility
Implementing and Evaluating Web Application AccessibilityImplementing and Evaluating Web Application Accessibility
Implementing and Evaluating Web Application Accessibility
 
Web Application Security: The Land that Information Security Forgot
Web Application Security: The Land that Information Security ForgotWeb Application Security: The Land that Information Security Forgot
Web Application Security: The Land that Information Security Forgot
 
Lex and connect
Lex and connectLex and connect
Lex and connect
 
Accessibility And 508 Compliance In 2009
Accessibility And 508 Compliance In 2009Accessibility And 508 Compliance In 2009
Accessibility And 508 Compliance In 2009
 
Enhance customer experience with Conversational Interfaces
Enhance customer experience with Conversational InterfacesEnhance customer experience with Conversational Interfaces
Enhance customer experience with Conversational Interfaces
 
A Primer on Web Accessibility for Teams
A Primer on Web Accessibility for TeamsA Primer on Web Accessibility for Teams
A Primer on Web Accessibility for Teams
 
Catalyze Webcast - Five Myths Of RIA With Laurie Gray - 031808
Catalyze Webcast - Five Myths Of RIA With Laurie Gray - 031808Catalyze Webcast - Five Myths Of RIA With Laurie Gray - 031808
Catalyze Webcast - Five Myths Of RIA With Laurie Gray - 031808
 
Understanding and Supporting Web Accessibility
Understanding and Supporting Web AccessibilityUnderstanding and Supporting Web Accessibility
Understanding and Supporting Web Accessibility
 
jQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und ResponsivejQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und Responsive
 
Intro to Web Accessibility: Koombea TechTalks
Intro to Web Accessibility: Koombea TechTalksIntro to Web Accessibility: Koombea TechTalks
Intro to Web Accessibility: Koombea TechTalks
 
PWA - ADT Magazine Webinar
PWA - ADT Magazine WebinarPWA - ADT Magazine Webinar
PWA - ADT Magazine Webinar
 
The Recipe for Making Accessible Widgets!
The Recipe for Making Accessible Widgets!The Recipe for Making Accessible Widgets!
The Recipe for Making Accessible Widgets!
 
Thadomal IEEE-HTML5-Workshop
Thadomal IEEE-HTML5-WorkshopThadomal IEEE-HTML5-Workshop
Thadomal IEEE-HTML5-Workshop
 
Chaos Engineering
Chaos EngineeringChaos Engineering
Chaos Engineering
 
Notes (2012-06-08)
Notes (2012-06-08)Notes (2012-06-08)
Notes (2012-06-08)
 
Life of a Code Change to a Tier 1 Service - AWS Online Tech Talks
Life of a Code Change to a Tier 1 Service - AWS Online Tech TalksLife of a Code Change to a Tier 1 Service - AWS Online Tech Talks
Life of a Code Change to a Tier 1 Service - AWS Online Tech Talks
 
Create and Publish AR and VR Apps with Amazon Sumerian
Create and Publish AR and VR Apps with Amazon SumerianCreate and Publish AR and VR Apps with Amazon Sumerian
Create and Publish AR and VR Apps with Amazon Sumerian
 

Último

Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 

Último (20)

Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 

Dynamic keyboard generation

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.