Top Banner
Jason Grigsby • @grigs • cloudfour.com Adaptive Input http://www.flickr.com/photos/cobalt/7217055290/
170

Adaptive Input — Breaking Development Conference, San Diego

Jan 15, 2015

Download

Technology

Jason Grigsby

Windows 8. Chromebook Pixel. Ubuntu Phone. These devices shatter another consensual hallucination that we web developers have bought into: mobile = touch and desktop = keyboard and mouse.

We have tablets with keyboards; laptops that become tablets; laptops with touch screens; phones with physical keyboards; and even phones that become desktop computers. Not to mention new forms of input like cameras, voice control, and sensors.

We've learned how to respond to screen size. Our next challenge is learning how to adapt to different forms of input.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Adaptive Input — Breaking Development Conference, San Diego

Jason Grigsby • @grigs • cloudfour.com

Adaptive Inputhttp://www.flickr.com/photos/cobalt/7217055290/

Page 2: Adaptive Input — Breaking Development Conference, San Diego

Tweets: @grigs_talksSlides: http://bit.ly/grigs-2013-07-22

http://www.flickr.com/photos/cobalt/7217055290/

Page 5: Adaptive Input — Breaking Development Conference, San Diego

Designing for a 10-foot UI is very different.

http://www.flickr.com/photos/chrisbartow/5835428673

Page 6: Adaptive Input — Breaking Development Conference, San Diego

Larger text and fewer words.

Page 7: Adaptive Input — Breaking Development Conference, San Diego

Make up, down, left, right directions clear.

http://images.dailytech.com/nimage/29122_large_amazon_prime_screen_5.jpg

Page 8: Adaptive Input — Breaking Development Conference, San Diego

How do we know what is a TV?

Page 9: Adaptive Input — Breaking Development Conference, San Diego

This is HDTV.

Page 10: Adaptive Input — Breaking Development Conference, San Diego

This is HDTV.1980 px

1080

px

Page 11: Adaptive Input — Breaking Development Conference, San Diego

Resolution does not define the optimal

experience.

Page 12: Adaptive Input — Breaking Development Conference, San Diego

Next came responsive web apps.

https://twitter.com/freediverx/status/354698695041744896

Page 13: Adaptive Input — Breaking Development Conference, San Diego

How do I make this responsive?How do I make this responsive?

Page 14: Adaptive Input — Breaking Development Conference, San Diego
Page 15: Adaptive Input — Breaking Development Conference, San Diego

mobiledesktop

THE ART OF WEB DEVELOPMENTTHE ART OF WEB DEVELOPMENT

Web widgetsTHE ART OF WEB DEVELOPMENTTHE ART OF WEB DEVELOPMENT

Mobile widgets

Page 16: Adaptive Input — Breaking Development Conference, San Diego
Page 17: Adaptive Input — Breaking Development Conference, San Diego
Page 18: Adaptive Input — Breaking Development Conference, San Diego
Page 19: Adaptive Input — Breaking Development Conference, San Diego
Page 20: Adaptive Input — Breaking Development Conference, San Diego
Page 21: Adaptive Input — Breaking Development Conference, San Diego
Page 22: Adaptive Input — Breaking Development Conference, San Diego

It’s not that we’re technically incapable, but adapting a phone UI to a tablet UI is not so dissimilar from trying to automatically adapt desktop UI to a phone. They are fundamentally different platforms with different usability considerations, and something that makes sense on phones may or may not belong on tablets.

—Todd Anglin, Kendo UI

http://www.kendoui.com/blogs/teamblog/posts/12-09-11/universal_mobile_apps_with_html5_and_kendo_ui.aspx

Page 23: Adaptive Input — Breaking Development Conference, San Diego

Sometimes it’s hard to envision a responsive version.

http://demos.kendoui.com/web/grid/editing.html

Page 24: Adaptive Input — Breaking Development Conference, San Diego

http://www.flickr.com/photos/jesuspresley/384080245/

We want people to be productive…

Page 25: Adaptive Input — Breaking Development Conference, San Diego

and stay in the zone.

http://www.flickr.com/photos/raccatography/8038855203

Page 26: Adaptive Input — Breaking Development Conference, San Diego

http://www.flickr.com/photos/shantellmartin/4543010568

Which seems very different from playing on an iPad.

Page 27: Adaptive Input — Breaking Development Conference, San Diego

For both the TV…

Page 28: Adaptive Input — Breaking Development Conference, San Diego

and the desktop web app…

Page 29: Adaptive Input — Breaking Development Conference, San Diego

input matters much more than screen size.

Page 30: Adaptive Input — Breaking Development Conference, San Diego

The grid is important to support d-pad interaction.

http://images.dailytech.com/nimage/29122_large_amazon_prime_screen_5.jpg

Page 32: Adaptive Input — Breaking Development Conference, San Diego

And keyboard and mouse are what we envision work is.http://www.flickr.com/photos/royalsapien/2387707860

Page 33: Adaptive Input — Breaking Development Conference, San Diego

http://www.flickr.com/photos/hellogeri/6154034099/

Two years ago at BDConf, Jeremy talked about how…

Page 34: Adaptive Input — Breaking Development Conference, San Diego

http://www.flickr.com/photos/60415054@N00/14301113/

we told ourselves that the web was…

Page 36: Adaptive Input — Breaking Development Conference, San Diego

http://www.flickr.com/photos/60415054@N00/14301113/

640 px

480

px

Page 37: Adaptive Input — Breaking Development Conference, San Diego

640 px

480

px

Page 38: Adaptive Input — Breaking Development Conference, San Diego
Page 39: Adaptive Input — Breaking Development Conference, San Diego
Page 40: Adaptive Input — Breaking Development Conference, San Diego
Page 41: Adaptive Input — Breaking Development Conference, San Diego
Page 42: Adaptive Input — Breaking Development Conference, San Diego

1024 px

768

px

Page 44: Adaptive Input — Breaking Development Conference, San Diego

http://www.flickr.com/photos/adactio/6153481666/

Then mobile came and made us realize…

Page 45: Adaptive Input — Breaking Development Conference, San Diego

that it was a collective hallucination all along.

http://www.flickr.com/photos/garibaldi/303085857/

Page 46: Adaptive Input — Breaking Development Conference, San Diego

The web never had a fixed canvas.

http://www.flickr.com/photos/paulocarrillo/124755065/

Page 47: Adaptive Input — Breaking Development Conference, San Diego

Even our tools perpetuate the lie.

Page 48: Adaptive Input — Breaking Development Conference, San Diego

http://www.flickr.com/photos/69797234@N06/7203485148/

We’ve made tremendous progress.

Page 49: Adaptive Input — Breaking Development Conference, San Diego

But there is another collective hallucination.

http://www.flickr.com/photos/garibaldi/303085857/

Page 50: Adaptive Input — Breaking Development Conference, San Diego
Page 51: Adaptive Input — Breaking Development Conference, San Diego

=

=

Page 52: Adaptive Input — Breaking Development Conference, San Diego
Page 53: Adaptive Input — Breaking Development Conference, San Diego

Supports hover and pointer events.

Page 54: Adaptive Input — Breaking Development Conference, San Diego
Page 55: Adaptive Input — Breaking Development Conference, San Diego
Page 56: Adaptive Input — Breaking Development Conference, San Diego

Keyboard and touch.

Page 57: Adaptive Input — Breaking Development Conference, San Diego
Page 58: Adaptive Input — Breaking Development Conference, San Diego
Page 59: Adaptive Input — Breaking Development Conference, San Diego

Even the iPhone can have a keyboard.

Page 60: Adaptive Input — Breaking Development Conference, San Diego
Page 61: Adaptive Input — Breaking Development Conference, San Diego
Page 62: Adaptive Input — Breaking Development Conference, San Diego

Are these laptops or tablets?

Page 63: Adaptive Input — Breaking Development Conference, San Diego
Page 64: Adaptive Input — Breaking Development Conference, San Diego
Page 65: Adaptive Input — Breaking Development Conference, San Diego

Desktop computer with 23” touch screen

Page 66: Adaptive Input — Breaking Development Conference, San Diego
Page 67: Adaptive Input — Breaking Development Conference, San Diego

Luke nailed it.

http://static.lukew.com/unified_device_design.png

Page 68: Adaptive Input — Breaking Development Conference, San Diego
Page 69: Adaptive Input — Breaking Development Conference, San Diego

We can no longer make assumptions about input based on screen size or form factor.

And we probably never should have.

Page 71: Adaptive Input — Breaking Development Conference, San Diego

Input represents a bigger challenge than screen size.http://www.flickr.com/photos/cblue98/7254221968

Page 73: Adaptive Input — Breaking Development Conference, San Diego

And it is changing more rapidly than ever before.

http://www.flickr.com/photos/taedc/9278192929

Page 74: Adaptive Input — Breaking Development Conference, San Diego

So let’s take a closer look…

Page 75: Adaptive Input — Breaking Development Conference, San Diego

Let’s start with futuristic input.

http://www.flickr.com/photos/jdhancock/3714748769/

Page 79: Adaptive Input — Breaking Development Conference, San Diego

Siri gets all of the hype…

http://www.98ps.com/viewnews-15222.html

Page 80: Adaptive Input — Breaking Development Conference, San Diego

but both Microsoft and Google have compelling voice input in their products.

Page 81: Adaptive Input — Breaking Development Conference, San Diego
Page 82: Adaptive Input — Breaking Development Conference, San Diego
Page 83: Adaptive Input — Breaking Development Conference, San Diego
Page 84: Adaptive Input — Breaking Development Conference, San Diego
Page 85: Adaptive Input — Breaking Development Conference, San Diego

Explore the web on your TV with Internet Explorer for Xbox One. Use your voice to browse your favorite sites with ease. Use Bing to find the best of the web. Or use Xbox SmartGlass on your phone or tablet to control your experience.

http://www.xbox.com/en-US/xboxone/what-it-does

Page 86: Adaptive Input — Breaking Development Conference, San Diego

Xbox 360 Voice Control

http://www.youtube.com/watch?v=xsfVJxakDa8

Page 87: Adaptive Input — Breaking Development Conference, San Diego

How would web pages change if we had voice control?

Page 88: Adaptive Input — Breaking Development Conference, San Diego
Page 89: Adaptive Input — Breaking Development Conference, San Diego
Page 90: Adaptive Input — Breaking Development Conference, San Diego

Google voice search

Page 91: Adaptive Input — Breaking Development Conference, San Diego

You can use speech recognition too.

http://www.google.com/intl/en/chrome/demos/speech.htmlhttp://www.moreawesomeweb.com/demos/speech_translate.html

Page 92: Adaptive Input — Breaking Development Conference, San Diego

Web Speech API Specification19 October 2012Editors:

Glen Shires, Google Inc.Hans Wennborg, Google Inc.

Please refer to the errata for this document, which may include some normative corrections.

Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech APICommunity Group under the W3C Community Final Specification Agreement (FSA). A human-readablesummary is available.

AbstractThis specification defines a JavaScript API to enable web developers to incorporate speech recognition andsynthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and touse speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows webpages to control activation and timing and to handle results and alternatives.

Status of This DocumentThis specification was published by the Speech API Community Group. It is not a W3C Standard nor is it onthe W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA)other conditions apply. Learn more about W3C Community and Business Groups.

All feedback is welcome.

Table of Contents1 Conformance requirements2 Introduction3 Use Cases4 Security and privacy considerations5 API Description5.1 The SpeechRecognition Interface5.1.1 SpeechRecognition Attributes5.1.2 SpeechRecognition Methods5.1.3 SpeechRecognition Events5.1.4 SpeechRecognitionError5.1.5 SpeechRecognitionAlternative5.1.6 SpeechRecognitionResult5.1.7 SpeechRecognitionList5.1.8 SpeechRecognitionEvent5.1.9 SpeechGrammar5.1.10 SpeechGrammarList5.2 The SpeechSynthesis Interface5.2.1 SpeechSynthesis Attributes5.2.2 SpeechSynthesis Methods5.2.3 SpeechSynthesisUtterance Attributes5.2.4 SpeechSynthesisUtterance Events5.2.5 SpeechSynthesisEvent Attributes5.2.6 SpeechSynthesisVoice5.2.7 SpeechSynthesisVoiceList6 Examples6.1 Speech Recognition Examples6.2 Speech Synthesis ExamplesAcknowledgmentsReferences

1 Conformance requirementsAll diagrams, examples, and notes in this specification are non-normative, as are all sections explicitly marked

Page 93: Adaptive Input — Breaking Development Conference, San Diego

Web Speech API Specification19 October 2012Editors:

Glen Shires, Google Inc.Hans Wennborg, Google Inc.

Please refer to the errata for this document, which may include some normative corrections.

Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech APICommunity Group under the W3C Community Final Specification Agreement (FSA). A human-readablesummary is available.

AbstractThis specification defines a JavaScript API to enable web developers to incorporate speech recognition andsynthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and touse speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows webpages to control activation and timing and to handle results and alternatives.

Status of This DocumentThis specification was published by the Speech API Community Group. It is not a W3C Standard nor is it onthe W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA)other conditions apply. Learn more about W3C Community and Business Groups.

All feedback is welcome.

Table of Contents1 Conformance requirements2 Introduction3 Use Cases4 Security and privacy considerations5 API Description5.1 The SpeechRecognition Interface5.1.1 SpeechRecognition Attributes5.1.2 SpeechRecognition Methods5.1.3 SpeechRecognition Events5.1.4 SpeechRecognitionError5.1.5 SpeechRecognitionAlternative5.1.6 SpeechRecognitionResult5.1.7 SpeechRecognitionList5.1.8 SpeechRecognitionEvent5.1.9 SpeechGrammar5.1.10 SpeechGrammarList5.2 The SpeechSynthesis Interface5.2.1 SpeechSynthesis Attributes5.2.2 SpeechSynthesis Methods5.2.3 SpeechSynthesisUtterance Attributes5.2.4 SpeechSynthesisUtterance Events5.2.5 SpeechSynthesisEvent Attributes5.2.6 SpeechSynthesisVoice5.2.7 SpeechSynthesisVoiceList6 Examples6.1 Speech Recognition Examples6.2 Speech Synthesis ExamplesAcknowledgmentsReferences

1 Conformance requirementsAll diagrams, examples, and notes in this specification are non-normative, as are all sections explicitly marked

Page 94: Adaptive Input — Breaking Development Conference, San Diego

Web Speech API Specification19 October 2012Editors:

Glen Shires, Google Inc.Hans Wennborg, Google Inc.

Please refer to the errata for this document, which may include some normative corrections.

Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech APICommunity Group under the W3C Community Final Specification Agreement (FSA). A human-readablesummary is available.

AbstractThis specification defines a JavaScript API to enable web developers to incorporate speech recognition andsynthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and touse speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows webpages to control activation and timing and to handle results and alternatives.

Status of This DocumentThis specification was published by the Speech API Community Group. It is not a W3C Standard nor is it onthe W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA)other conditions apply. Learn more about W3C Community and Business Groups.

All feedback is welcome.

Table of Contents1 Conformance requirements2 Introduction3 Use Cases4 Security and privacy considerations5 API Description5.1 The SpeechRecognition Interface5.1.1 SpeechRecognition Attributes5.1.2 SpeechRecognition Methods5.1.3 SpeechRecognition Events5.1.4 SpeechRecognitionError5.1.5 SpeechRecognitionAlternative5.1.6 SpeechRecognitionResult5.1.7 SpeechRecognitionList5.1.8 SpeechRecognitionEvent5.1.9 SpeechGrammar5.1.10 SpeechGrammarList5.2 The SpeechSynthesis Interface5.2.1 SpeechSynthesis Attributes5.2.2 SpeechSynthesis Methods5.2.3 SpeechSynthesisUtterance Attributes5.2.4 SpeechSynthesisUtterance Events5.2.5 SpeechSynthesisEvent Attributes5.2.6 SpeechSynthesisVoice5.2.7 SpeechSynthesisVoiceList6 Examples6.1 Speech Recognition Examples6.2 Speech Synthesis ExamplesAcknowledgmentsReferences

1 Conformance requirementsAll diagrams, examples, and notes in this specification are non-normative, as are all sections explicitly marked

Web Speech API Specification19 October 2012Editors:

Glen Shires, Google Inc.Hans Wennborg, Google Inc.

Please refer to the errata for this document, which may include some normative corrections.

Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech APICommunity Group under the W3C Community Final Specification Agreement (FSA). A human-readablesummary is available.

AbstractThis specification defines a JavaScript API to enable web developers to incorporate speech recognition andsynthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and touse speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows webpages to control activation and timing and to handle results and alternatives.

Status of This DocumentThis specification was published by the Speech API Community Group. It is not a W3C Standard nor is it onthe W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA)other conditions apply. Learn more about W3C Community and Business Groups.

All feedback is welcome.

Table of Contents1 Conformance requirements2 Introduction3 Use Cases4 Security and privacy considerations5 API Description5.1 The SpeechRecognition Interface5.1.1 SpeechRecognition Attributes5.1.2 SpeechRecognition Methods5.1.3 SpeechRecognition Events5.1.4 SpeechRecognitionError5.1.5 SpeechRecognitionAlternative5.1.6 SpeechRecognitionResult5.1.7 SpeechRecognitionList5.1.8 SpeechRecognitionEvent5.1.9 SpeechGrammar5.1.10 SpeechGrammarList5.2 The SpeechSynthesis Interface5.2.1 SpeechSynthesis Attributes5.2.2 SpeechSynthesis Methods5.2.3 SpeechSynthesisUtterance Attributes5.2.4 SpeechSynthesisUtterance Events5.2.5 SpeechSynthesisEvent Attributes5.2.6 SpeechSynthesisVoice5.2.7 SpeechSynthesisVoiceList6 Examples6.1 Speech Recognition Examples6.2 Speech Synthesis ExamplesAcknowledgmentsReferences

1 Conformance requirementsAll diagrams, examples, and notes in this specification are non-normative, as are all sections explicitly marked

Page 95: Adaptive Input — Breaking Development Conference, San Diego

Web Speech API Specification19 October 2012Editors:

Glen Shires, Google Inc.Hans Wennborg, Google Inc.

Please refer to the errata for this document, which may include some normative corrections.

Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech APICommunity Group under the W3C Community Final Specification Agreement (FSA). A human-readablesummary is available.

AbstractThis specification defines a JavaScript API to enable web developers to incorporate speech recognition andsynthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and touse speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows webpages to control activation and timing and to handle results and alternatives.

Status of This DocumentThis specification was published by the Speech API Community Group. It is not a W3C Standard nor is it onthe W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA)other conditions apply. Learn more about W3C Community and Business Groups.

All feedback is welcome.

Table of Contents1 Conformance requirements2 Introduction3 Use Cases4 Security and privacy considerations5 API Description5.1 The SpeechRecognition Interface5.1.1 SpeechRecognition Attributes5.1.2 SpeechRecognition Methods5.1.3 SpeechRecognition Events5.1.4 SpeechRecognitionError5.1.5 SpeechRecognitionAlternative5.1.6 SpeechRecognitionResult5.1.7 SpeechRecognitionList5.1.8 SpeechRecognitionEvent5.1.9 SpeechGrammar5.1.10 SpeechGrammarList5.2 The SpeechSynthesis Interface5.2.1 SpeechSynthesis Attributes5.2.2 SpeechSynthesis Methods5.2.3 SpeechSynthesisUtterance Attributes5.2.4 SpeechSynthesisUtterance Events5.2.5 SpeechSynthesisEvent Attributes5.2.6 SpeechSynthesisVoice5.2.7 SpeechSynthesisVoiceList6 Examples6.1 Speech Recognition Examples6.2 Speech Synthesis ExamplesAcknowledgmentsReferences

1 Conformance requirementsAll diagrams, examples, and notes in this specification are non-normative, as are all sections explicitly marked

Web Speech API Specification19 October 2012Editors:

Glen Shires, Google Inc.Hans Wennborg, Google Inc.

Please refer to the errata for this document, which may include some normative corrections.

Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech APICommunity Group under the W3C Community Final Specification Agreement (FSA). A human-readablesummary is available.

AbstractThis specification defines a JavaScript API to enable web developers to incorporate speech recognition andsynthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and touse speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows webpages to control activation and timing and to handle results and alternatives.

Status of This DocumentThis specification was published by the Speech API Community Group. It is not a W3C Standard nor is it onthe W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA)other conditions apply. Learn more about W3C Community and Business Groups.

All feedback is welcome.

Table of Contents1 Conformance requirements2 Introduction3 Use Cases4 Security and privacy considerations5 API Description5.1 The SpeechRecognition Interface5.1.1 SpeechRecognition Attributes5.1.2 SpeechRecognition Methods5.1.3 SpeechRecognition Events5.1.4 SpeechRecognitionError5.1.5 SpeechRecognitionAlternative5.1.6 SpeechRecognitionResult5.1.7 SpeechRecognitionList5.1.8 SpeechRecognitionEvent5.1.9 SpeechGrammar5.1.10 SpeechGrammarList5.2 The SpeechSynthesis Interface5.2.1 SpeechSynthesis Attributes5.2.2 SpeechSynthesis Methods5.2.3 SpeechSynthesisUtterance Attributes5.2.4 SpeechSynthesisUtterance Events5.2.5 SpeechSynthesisEvent Attributes5.2.6 SpeechSynthesisVoice5.2.7 SpeechSynthesisVoiceList6 Examples6.1 Speech Recognition Examples6.2 Speech Synthesis ExamplesAcknowledgmentsReferences

1 Conformance requirementsAll diagrams, examples, and notes in this specification are non-normative, as are all sections explicitly marked

Page 96: Adaptive Input — Breaking Development Conference, San Diego

Web Speech API Specification19 October 2012Editors:

Glen Shires, Google Inc.Hans Wennborg, Google Inc.

Please refer to the errata for this document, which may include some normative corrections.

Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech APICommunity Group under the W3C Community Final Specification Agreement (FSA). A human-readablesummary is available.

AbstractThis specification defines a JavaScript API to enable web developers to incorporate speech recognition andsynthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and touse speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows webpages to control activation and timing and to handle results and alternatives.

Status of This DocumentThis specification was published by the Speech API Community Group. It is not a W3C Standard nor is it onthe W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA)other conditions apply. Learn more about W3C Community and Business Groups.

All feedback is welcome.

Table of Contents1 Conformance requirements2 Introduction3 Use Cases4 Security and privacy considerations5 API Description5.1 The SpeechRecognition Interface5.1.1 SpeechRecognition Attributes5.1.2 SpeechRecognition Methods5.1.3 SpeechRecognition Events5.1.4 SpeechRecognitionError5.1.5 SpeechRecognitionAlternative5.1.6 SpeechRecognitionResult5.1.7 SpeechRecognitionList5.1.8 SpeechRecognitionEvent5.1.9 SpeechGrammar5.1.10 SpeechGrammarList5.2 The SpeechSynthesis Interface5.2.1 SpeechSynthesis Attributes5.2.2 SpeechSynthesis Methods5.2.3 SpeechSynthesisUtterance Attributes5.2.4 SpeechSynthesisUtterance Events5.2.5 SpeechSynthesisEvent Attributes5.2.6 SpeechSynthesisVoice5.2.7 SpeechSynthesisVoiceList6 Examples6.1 Speech Recognition Examples6.2 Speech Synthesis ExamplesAcknowledgmentsReferences

1 Conformance requirementsAll diagrams, examples, and notes in this specification are non-normative, as are all sections explicitly marked

Web Speech API Specification19 October 2012Editors:

Glen Shires, Google Inc.Hans Wennborg, Google Inc.

Please refer to the errata for this document, which may include some normative corrections.

Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech APICommunity Group under the W3C Community Final Specification Agreement (FSA). A human-readablesummary is available.

AbstractThis specification defines a JavaScript API to enable web developers to incorporate speech recognition andsynthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and touse speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows webpages to control activation and timing and to handle results and alternatives.

Status of This DocumentThis specification was published by the Speech API Community Group. It is not a W3C Standard nor is it onthe W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA)other conditions apply. Learn more about W3C Community and Business Groups.

All feedback is welcome.

Table of Contents1 Conformance requirements2 Introduction3 Use Cases4 Security and privacy considerations5 API Description5.1 The SpeechRecognition Interface5.1.1 SpeechRecognition Attributes5.1.2 SpeechRecognition Methods5.1.3 SpeechRecognition Events5.1.4 SpeechRecognitionError5.1.5 SpeechRecognitionAlternative5.1.6 SpeechRecognitionResult5.1.7 SpeechRecognitionList5.1.8 SpeechRecognitionEvent5.1.9 SpeechGrammar5.1.10 SpeechGrammarList5.2 The SpeechSynthesis Interface5.2.1 SpeechSynthesis Attributes5.2.2 SpeechSynthesis Methods5.2.3 SpeechSynthesisUtterance Attributes5.2.4 SpeechSynthesisUtterance Events5.2.5 SpeechSynthesisEvent Attributes5.2.6 SpeechSynthesisVoice5.2.7 SpeechSynthesisVoiceList6 Examples6.1 Speech Recognition Examples6.2 Speech Synthesis ExamplesAcknowledgmentsReferences

1 Conformance requirementsAll diagrams, examples, and notes in this specification are non-normative, as are all sections explicitly marked

Page 97: Adaptive Input — Breaking Development Conference, San Diego

Web Speech API Specification19 October 2012Editors:

Glen Shires, Google Inc.Hans Wennborg, Google Inc.

Please refer to the errata for this document, which may include some normative corrections.

Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech APICommunity Group under the W3C Community Final Specification Agreement (FSA). A human-readablesummary is available.

AbstractThis specification defines a JavaScript API to enable web developers to incorporate speech recognition andsynthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and touse speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows webpages to control activation and timing and to handle results and alternatives.

Status of This DocumentThis specification was published by the Speech API Community Group. It is not a W3C Standard nor is it onthe W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA)other conditions apply. Learn more about W3C Community and Business Groups.

All feedback is welcome.

Table of Contents1 Conformance requirements2 Introduction3 Use Cases4 Security and privacy considerations5 API Description5.1 The SpeechRecognition Interface5.1.1 SpeechRecognition Attributes5.1.2 SpeechRecognition Methods5.1.3 SpeechRecognition Events5.1.4 SpeechRecognitionError5.1.5 SpeechRecognitionAlternative5.1.6 SpeechRecognitionResult5.1.7 SpeechRecognitionList5.1.8 SpeechRecognitionEvent5.1.9 SpeechGrammar5.1.10 SpeechGrammarList5.2 The SpeechSynthesis Interface5.2.1 SpeechSynthesis Attributes5.2.2 SpeechSynthesis Methods5.2.3 SpeechSynthesisUtterance Attributes5.2.4 SpeechSynthesisUtterance Events5.2.5 SpeechSynthesisEvent Attributes5.2.6 SpeechSynthesisVoice5.2.7 SpeechSynthesisVoiceList6 Examples6.1 Speech Recognition Examples6.2 Speech Synthesis ExamplesAcknowledgmentsReferences

1 Conformance requirementsAll diagrams, examples, and notes in this specification are non-normative, as are all sections explicitly marked

Web Speech API Specification19 October 2012Editors:

Glen Shires, Google Inc.Hans Wennborg, Google Inc.

Please refer to the errata for this document, which may include some normative corrections.

Copyright © 2012 the Contributors to the Web Speech API Specification, published by the Speech APICommunity Group under the W3C Community Final Specification Agreement (FSA). A human-readablesummary is available.

AbstractThis specification defines a JavaScript API to enable web developers to incorporate speech recognition andsynthesis into their web pages. It enables developers to use scripting to generate text-to-speech output and touse speech recognition as an input for forms, continuous dictation and control. The JavaScript API allows webpages to control activation and timing and to handle results and alternatives.

Status of This DocumentThis specification was published by the Speech API Community Group. It is not a W3C Standard nor is it onthe W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA)other conditions apply. Learn more about W3C Community and Business Groups.

All feedback is welcome.

Table of Contents1 Conformance requirements2 Introduction3 Use Cases4 Security and privacy considerations5 API Description5.1 The SpeechRecognition Interface5.1.1 SpeechRecognition Attributes5.1.2 SpeechRecognition Methods5.1.3 SpeechRecognition Events5.1.4 SpeechRecognitionError5.1.5 SpeechRecognitionAlternative5.1.6 SpeechRecognitionResult5.1.7 SpeechRecognitionList5.1.8 SpeechRecognitionEvent5.1.9 SpeechGrammar5.1.10 SpeechGrammarList5.2 The SpeechSynthesis Interface5.2.1 SpeechSynthesis Attributes5.2.2 SpeechSynthesis Methods5.2.3 SpeechSynthesisUtterance Attributes5.2.4 SpeechSynthesisUtterance Events5.2.5 SpeechSynthesisEvent Attributes5.2.6 SpeechSynthesisVoice5.2.7 SpeechSynthesisVoiceList6 Examples6.1 Speech Recognition Examples6.2 Speech Synthesis ExamplesAcknowledgmentsReferences

1 Conformance requirementsAll diagrams, examples, and notes in this specification are non-normative, as are all sections explicitly marked

Page 98: Adaptive Input — Breaking Development Conference, San Diego

Special thanks to Eric Bidelmanhttp://moreawesomeweb.com

Speech Recognition API Support

?

Page 99: Adaptive Input — Breaking Development Conference, San Diego
Page 100: Adaptive Input — Breaking Development Conference, San Diego

Gestures?

Page 101: Adaptive Input — Breaking Development Conference, San Diego
Page 102: Adaptive Input — Breaking Development Conference, San Diego

Amazing, but too new to know what, if anything, this technology

will mean for the web.

Page 103: Adaptive Input — Breaking Development Conference, San Diego

Let’s come back from the future and look at something much Dumber.Dumber

Page 104: Adaptive Input — Breaking Development Conference, San Diego

Dumber

Page 105: Adaptive Input — Breaking Development Conference, San Diego

Dumber

Page 106: Adaptive Input — Breaking Development Conference, San Diego

-pad remote controlsD

Page 107: Adaptive Input — Breaking Development Conference, San Diego

-pad remote controlsD

Page 108: Adaptive Input — Breaking Development Conference, San Diego

-pad remote controlsD

Page 110: Adaptive Input — Breaking Development Conference, San Diego

http://www.flickr.com/photos/stewc/6669743035/

TVs browsers that support d-pad, send arrow key events.

Page 113: Adaptive Input — Breaking Development Conference, San Diego
Page 114: Adaptive Input — Breaking Development Conference, San Diego

is undetectable. This is a recurring theme for input.

Page 115: Adaptive Input — Breaking Development Conference, San Diego

Sensors and camera

http://www.flickr.com/photos/retrocactus/2170677056

Page 116: Adaptive Input — Breaking Development Conference, San Diego

Sensors and camera

Camera

http://www.flickr.com/photos/retrocactus/2170677056

Page 117: Adaptive Input — Breaking Development Conference, San Diego

GPS

http://www.flickr.com/photos/3dking/149450434

Page 118: Adaptive Input — Breaking Development Conference, San Diego

GPS

GeoLocation

http://www.flickr.com/photos/3dking/149450434

Page 119: Adaptive Input — Breaking Development Conference, San Diego
Page 120: Adaptive Input — Breaking Development Conference, San Diego

Gyroscope & Accelerometer

Page 122: Adaptive Input — Breaking Development Conference, San Diego

Back to today’s problems.

http://www.flickr.com/photos/chrisjagers/4694134078

Page 123: Adaptive Input — Breaking Development Conference, San Diego
Page 124: Adaptive Input — Breaking Development Conference, San Diego

Hover state No hover state

Page 125: Adaptive Input — Breaking Development Conference, San Diego

Hover state

Typing easier for many

No hover state

Typing often more difficult

Page 126: Adaptive Input — Breaking Development Conference, San Diego

Higher precision with mouse means smaller targets possible

Hover state

Less precise than mouse and requires larger touch targets

Typing easier for many

No hover state

Typing often more difficult

Page 127: Adaptive Input — Breaking Development Conference, San Diego

Higher precision with mouse means smaller targets possible

Hover state

Less precise than mouse and requires larger touch targets

Typing easier for many

No hover state

Typing often more difficult

Right clicking and “power” tools Single and multi-touch gestures

Page 128: Adaptive Input — Breaking Development Conference, San Diego
Page 129: Adaptive Input — Breaking Development Conference, San Diego
Page 131: Adaptive Input — Breaking Development Conference, San Diego

I got this. Detect touch.http://www.flickr.com/photos/28096801@N05/5012309802

Page 132: Adaptive Input — Breaking Development Conference, San Diego
Page 133: Adaptive Input — Breaking Development Conference, San Diego

Whatever you may think, it currently isn't possible to reliably detect whether or not the current device has a touchscreen, from within the browser.

—Stu Cox, You Can’t Reliably Detect a Touch Screen

http://www.stucox.com/blog/you-cant-detect-a-touchscreen/

Page 134: Adaptive Input — Breaking Development Conference, San Diego

Chrome would like to turn on touch events by default.

https://code.google.com/p/chromium/issues/detail?id=159527https://docs.google.com/a/cloudfour.com/presentation/d/1-n1qyzewpagREbzW2zm0wOalq33UhbtbSkWf9mEdly8/edit#slide=id.gc2d80e5b_171

Page 135: Adaptive Input — Breaking Development Conference, San Diego
Page 136: Adaptive Input — Breaking Development Conference, San Diego

Detect a mouse? Not reliably.

Page 137: Adaptive Input — Breaking Development Conference, San Diego
Page 138: Adaptive Input — Breaking Development Conference, San Diego
Page 139: Adaptive Input — Breaking Development Conference, San Diego

Surely we can detect a keyboard?

Page 140: Adaptive Input — Breaking Development Conference, San Diego

Surely we can detect a keyboard?

NOPE

Page 141: Adaptive Input — Breaking Development Conference, San Diego
Page 142: Adaptive Input — Breaking Development Conference, San Diego

Input is dynamic.

Page 143: Adaptive Input — Breaking Development Conference, San Diego

Input is dynamic.

Page 144: Adaptive Input — Breaking Development Conference, San Diego

Boris Smus’s experiments responding to input.

Page 145: Adaptive Input — Breaking Development Conference, San Diego

Boris Smus’s experiments responding to input.

Page 146: Adaptive Input — Breaking Development Conference, San Diego

http://www.flickr.com/photos/lyza/7382235106

Maybe we need to be more zen about input.

Page 147: Adaptive Input — Breaking Development Conference, San Diego
Page 148: Adaptive Input — Breaking Development Conference, San Diego

After poking at this problem for a few weeks, my conclusion is: every desktop UI should be designed for touch now. When any desktop machine could have a touch interface, we have to proceed as if they all do.

—Josh Clark

http://globalmoxie.com/blog/desktop-touch-design.shtml

Page 149: Adaptive Input — Breaking Development Conference, San Diego
Page 150: Adaptive Input — Breaking Development Conference, San Diego

http://ie.microsoft.com/testdrive/ieblog/2011/Sep/20_TouchInputforIE10andMetrostyleApps_1.pnghttp://www.w3.org/TR/pointerevents/

http://blog.webplatform.org/2013/02/pointing-toward-the-future/

New Pointer Events spec normalizes touch and mouse

Pointer Events builds on the DOM event model to offer a new way to handle input

on the web, enabling developers to build

touch-first experiences that work with mouse, pen, and other pointing devices as

well…They are also designed from the ground up to allow modern browsers to

accelerate the touch-surface performance,

leading to a smoother user experience.

Page 151: Adaptive Input — Breaking Development Conference, San Diego

What about those who won’t let go of their “power” interfaces?

http://www.flickr.com/photos/ecos/4092571213/

Page 152: Adaptive Input — Breaking Development Conference, San Diego

http://www.flickr.com/photos/scarygami/5689980135/

One option: give them a choice.

Page 153: Adaptive Input — Breaking Development Conference, San Diego
Page 154: Adaptive Input — Breaking Development Conference, San Diego

Gmail display density settings

Page 155: Adaptive Input — Breaking Development Conference, San Diego

Couch Mode+ See allCentric TV’s videos / Recently viewed / Related videos

Th Dream Experience - …Uploaded 2 years ago

More Of The Dream Exp…Uploaded 2 years ago

The Dream Experience -…Uploaded 2 years ago

The Dream Experience …Uploaded 2 years ago

The Love King Breaks It…Uploaded 2 years ago

PROMOTED

War Paint for TreesFrom Lincoln Motor Company

TM + © 2013 Vimeo, LLC. All rights reserved. Terms • Privacy • Copyright • Cookies • Site Map Made with k in NYC. Language: English

Join Log In Create Watch Upload

3 CommentsDan Thil2 months ago

craigblaze7 months ago

Denis Rozenkov1 year ago

4

4

4

4

L Like this video S Share this videoF Full screen M More videos

26 LIKES

+ See all

RELATED COLLECTIONS

Aloe Blacc • Stones Throw

ALSO CHECK OUTMore stuff from Centric TV

399 Videos

1 Like

5 Channels

9 Following

NEED HELP?If you have questions about what’s on this page, lookhere first: Help / FAQKeyboard Shortcuts

SOULSESSIONS // Aloe Blaccfrom Centric TV PROPRO 2 years ago NOT YET RATEDNOT YET RATED

This conversation is missing your voice. Please join Vimeo or log in.

visualhybrid 2 years ago

Man, totally hypnotic song..

A.A. 1 year ago

The opening vocalise makes me shiver! Great voice and interpretation and the rest of theband really swings!

rossangeles 1 year ago

Directed, shot and edited by Ross Harris.

Vimeo

About Vimeo

Vimeo Blog

Vimeo Guidelines

Developers

Jobs

Help

Help Center

Basics

Video School

FAQ

Forums

Upgrade

Vimeo Plus

Vimeo PRO

Vimeo for Business

UploadUpload multiple videos atfaster speeds with ournew uploader.

Did you know?Hubnut lets you show multiple videos in arow, so people can keep watching. Andwatching. And watching.

1

3 Follow Stats 9 Switch to HTML5 Player

Search s

[ ]

– VIDEO

SVimeo Couch Mode

Page 156: Adaptive Input — Breaking Development Conference, San Diego

Couch Mode+ See allCentric TV’s videos / Recently viewed / Related videos

Th Dream Experience - …Uploaded 2 years ago

More Of The Dream Exp…Uploaded 2 years ago

The Dream Experience -…Uploaded 2 years ago

The Dream Experience …Uploaded 2 years ago

The Love King Breaks It…Uploaded 2 years ago

PROMOTED

War Paint for TreesFrom Lincoln Motor Company

TM + © 2013 Vimeo, LLC. All rights reserved. Terms • Privacy • Copyright • Cookies • Site Map Made with k in NYC. Language: English

Join Log In Create Watch Upload

3 CommentsDan Thil2 months ago

craigblaze7 months ago

Denis Rozenkov1 year ago

4

4

4

4

L Like this video S Share this videoF Full screen M More videos

26 LIKES

+ See all

RELATED COLLECTIONS

Aloe Blacc • Stones Throw

ALSO CHECK OUTMore stuff from Centric TV

399 Videos

1 Like

5 Channels

9 Following

NEED HELP?If you have questions about what’s on this page, lookhere first: Help / FAQKeyboard Shortcuts

SOULSESSIONS // Aloe Blaccfrom Centric TV PROPRO 2 years ago NOT YET RATEDNOT YET RATED

This conversation is missing your voice. Please join Vimeo or log in.

visualhybrid 2 years ago

Man, totally hypnotic song..

A.A. 1 year ago

The opening vocalise makes me shiver! Great voice and interpretation and the rest of theband really swings!

rossangeles 1 year ago

Directed, shot and edited by Ross Harris.

Vimeo

About Vimeo

Vimeo Blog

Vimeo Guidelines

Developers

Jobs

Help

Help Center

Basics

Video School

FAQ

Forums

Upgrade

Vimeo Plus

Vimeo PRO

Vimeo for Business

UploadUpload multiple videos atfaster speeds with ournew uploader.

Did you know?Hubnut lets you show multiple videos in arow, so people can keep watching. Andwatching. And watching.

1

3 Follow Stats 9 Switch to HTML5 Player

Search s

[ ]

– VIDEO

SVimeo Couch Mode

Page 157: Adaptive Input — Breaking Development Conference, San Diego

Couch Mode+ See allCentric TV’s videos / Recently viewed / Related videos

Th Dream Experience - …Uploaded 2 years ago

More Of The Dream Exp…Uploaded 2 years ago

The Dream Experience -…Uploaded 2 years ago

The Dream Experience …Uploaded 2 years ago

The Love King Breaks It…Uploaded 2 years ago

PROMOTED

War Paint for TreesFrom Lincoln Motor Company

TM + © 2013 Vimeo, LLC. All rights reserved. Terms • Privacy • Copyright • Cookies • Site Map Made with k in NYC. Language: English

Join Log In Create Watch Upload

3 CommentsDan Thil2 months ago

craigblaze7 months ago

Denis Rozenkov1 year ago

4

4

4

4

L Like this video S Share this videoF Full screen M More videos

26 LIKES

+ See all

RELATED COLLECTIONS

Aloe Blacc • Stones Throw

ALSO CHECK OUTMore stuff from Centric TV

399 Videos

1 Like

5 Channels

9 Following

NEED HELP?If you have questions about what’s on this page, lookhere first: Help / FAQKeyboard Shortcuts

SOULSESSIONS // Aloe Blaccfrom Centric TV PROPRO 2 years ago NOT YET RATEDNOT YET RATED

This conversation is missing your voice. Please join Vimeo or log in.

visualhybrid 2 years ago

Man, totally hypnotic song..

A.A. 1 year ago

The opening vocalise makes me shiver! Great voice and interpretation and the rest of theband really swings!

rossangeles 1 year ago

Directed, shot and edited by Ross Harris.

Vimeo

About Vimeo

Vimeo Blog

Vimeo Guidelines

Developers

Jobs

Help

Help Center

Basics

Video School

FAQ

Forums

Upgrade

Vimeo Plus

Vimeo PRO

Vimeo for Business

UploadUpload multiple videos atfaster speeds with ournew uploader.

Did you know?Hubnut lets you show multiple videos in arow, so people can keep watching. Andwatching. And watching.

1

3 Follow Stats 9 Switch to HTML5 Player

Search s

[ ]

– VIDEO

S

Couch Mode+ See allCentric TV’s videos / Recently viewed / Related videos

Th Dream Experience - …Uploaded 2 years ago

More Of The Dream Exp…Uploaded 2 years ago

The Dream Experience -…Uploaded 2 years ago

The Dream Experience …Uploaded 2 years ago

The Love King Breaks It…Uploaded 2 years ago

PROMOTED

War Paint for TreesFrom Lincoln Motor Company

TM + © 2013 Vimeo, LLC. All rights reserved. Terms • Privacy • Copyright • Cookies • Site Map Made with k in NYC. Language: English

Join Log In Create Watch Upload

3 CommentsDan Thil2 months ago

craigblaze7 months ago

Denis Rozenkov1 year ago

4

4

4

4

L Like this video S Share this videoF Full screen M More videos

26 LIKES

+ See all

RELATED COLLECTIONS

Aloe Blacc • Stones Throw

ALSO CHECK OUTMore stuff from Centric TV

399 Videos

1 Like

5 Channels

9 Following

NEED HELP?If you have questions about what’s on this page, lookhere first: Help / FAQKeyboard Shortcuts

SOULSESSIONS // Aloe Blaccfrom Centric TV PROPRO 2 years ago NOT YET RATEDNOT YET RATED

This conversation is missing your voice. Please join Vimeo or log in.

visualhybrid 2 years ago

Man, totally hypnotic song..

A.A. 1 year ago

The opening vocalise makes me shiver! Great voice and interpretation and the rest of theband really swings!

rossangeles 1 year ago

Directed, shot and edited by Ross Harris.

Vimeo

About Vimeo

Vimeo Blog

Vimeo Guidelines

Developers

Jobs

Help

Help Center

Basics

Video School

FAQ

Forums

Upgrade

Vimeo Plus

Vimeo PRO

Vimeo for Business

UploadUpload multiple videos atfaster speeds with ournew uploader.

Did you know?Hubnut lets you show multiple videos in arow, so people can keep watching. Andwatching. And watching.

1

3 Follow Stats 9 Switch to HTML5 Player

Search s

[ ]

– VIDEO

SVimeo Couch Mode

Page 158: Adaptive Input — Breaking Development Conference, San Diego

Vimeo Couch Mode

Page 159: Adaptive Input — Breaking Development Conference, San Diego
Page 160: Adaptive Input — Breaking Development Conference, San Diego

The key benefit of this approach:

You’re designing for user need not for a specific form factor or input.

Page 162: Adaptive Input — Breaking Development Conference, San Diego
Page 163: Adaptive Input — Breaking Development Conference, San Diego

Progressive Input?

Page 164: Adaptive Input — Breaking Development Conference, San Diego

Graph from Chapter 1 of Adaptive Web Design by Aaron Gustafson http://easy-readers.net/books/adaptive-web-design/

Page 165: Adaptive Input — Breaking Development Conference, San Diego

Graph from Chapter 1 of Adaptive Web Design by Aaron Gustafson http://easy-readers.net/books/adaptive-web-design/

Progressive enhancement contains a value judgment

Page 166: Adaptive Input — Breaking Development Conference, San Diego

Who are we to judge what input is better?

http://www.flickr.com/photos/fensterbme/4783366926

Page 167: Adaptive Input — Breaking Development Conference, San Diego

We need to learn to adapt.

http://www.flickr.com/photos/cdm/147947664/

Page 168: Adaptive Input — Breaking Development Conference, San Diego

So that’s the puzzle that has been haunting me.

http://www.flickr.com/photos/sravishankar/3460495

Page 170: Adaptive Input — Breaking Development Conference, San Diego

Thank You!Special thanks to Luke Wroblewski, Eric Bidelman and Flickr users for

generously sharing their photos under creative commons license.