- From: Glen Shires <gshires@google.com>
- Date: Wed, 26 Oct 2011 08:04:13 -0700
- To: public-xg-htmlspeech@w3.org
- Message-ID: <CAEE5bcgz6AJGeOnc0C2zh-_Kz7-y=N9QFJLfL0=Q160NgsJ2Og@mail.gmail.com>
Here's some additional use-cases for the <reco> tag. Note that the manner
in which the <reco> tag visually appears on the page (if at all) is not
defined, and is UA-dependent.
The <reco> tag provides easy access to many of the methods of
the SpeechInputRequest object corresponding to a particular <input> or
<textarea>. More advanced speech UIs may not use a 1-to-1 correspondence
between fields and recognition results, and thus would not be able to rely
solely on the <reco> tag and would have to use Javascript APIs.
As mentioned on last week's call, a UA could automatically speech-enable
<input> and <textarea> fields without any change to existing web pages (thus
automatically implementing this simple UI of 1-to-1 correspondence). Such a
"Voice IME" could allow a user to click-on and speak-into any input field
(or at least those of certain types, like text, number, date, etc.). When
used with a UA of this type, the <reco> tag is optional, but when used, can
provide additional information, such as a custom grammar.
In these examples I defined a "for" attribute for explicit binding, although
I'm not sure this is the best way to do this (please suggest alternatives).
However, it does allow the UA to provide a very rich integration, including
automatic grammar selection, honoring text insertion points, and continuous
streaming of results into the field.
The core idea remains: Make it easy for developers, and "keep the simple
things simple".
Example 1: Automatically submit form.
<form action="http://google.com/search" method="get">
<input name="q" type="text">
<reco for="q" onresult="this.form.submit()"/>
</form>
Example 2: Override default grammar.
In this case, user is expected to type a two-character state abbreviation,
but a custom speech grammar could allow a user to speak a state name. The
grammar would return the corresponding two-letter abbreviation. (Note:
should this need to also call .resetGrammars() ? )
<input name="state" type="text" pattern="[A-z]{2}">
<reco for="state" addGrammar="state_names.grxml"/>
Example 3: Change default parameters.
<input name="foo" type="text">
<reco for="foo" setmaxspeechtimeout="5" setconfidencethreshold="0.5"/>
Example 4: Enable continuous speech.
<input name="bar" type="text">
<reco for="bar" continuous="true"/>
Example 5: Combining multiple reco tags in one form.
<form action="cityState" method="get">
<input name="city" type="text">
<reco for="city" addGrammar="city_names.grxml"/>
<input name="state" type="text" pattern="[A-z]{2}">
<reco for="state" addGrammar="state_names.grxml"/>
</form>
Example 6: Use with textarea.
<textarea name="foo"></textarea>
<reco for="foo" continuous="true"/>
Received on Wednesday, 26 October 2011 15:05:34 UTC