- From: Glen Shires <gshires@google.com>
- Date: Mon, 25 Feb 2013 11:17:28 -0800
- To: Tommy Widenflycht (ᛏᚮᛘᛘᚤ) <tommyw@google.com>
- Cc: Hans Wennborg <hwennborg@google.com>, Chris Fleizach <cfleizach@apple.com>, "public-speech-api@w3.org" <public-speech-api@w3.org>, James Craig <jcraig@apple.com>
- Message-ID: <CAEE5bcggxfae-H7n-YG0DafB=rM26sVwTZ-Di+vb8UZ+BTT-tw@mail.gmail.com>
I've updated the errata with the above change (E06 to revert E04): https://dvcs.w3.org/hg/speech-api/rev/28f4291bfb17 As always, the current errata is at: http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi-errata.html /Glen Shires On Wed, Feb 13, 2013 at 8:56 AM, Glen Shires <gshires@google.com> wrote: > OK, so errata E04 [1] doesn't work because WebIDL forbids sequence<xx> for > attributes [2], it's only for function results. > > So I propose that we revert errata E04 and leave the spec as is on this > point. If there's no disagreement, I'll update the errata on February 20. > > (Note: E05 is still valid, as it is a function result.) > > [1] https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi-errata.html > [2] http://dev.w3.org/2006/webapi/WebIDL/#idl-sequence > > > On Tue, Feb 12, 2013 at 12:27 AM, Tommy Widenflycht (ᛏᚮᛘᛘᚤ) < > tommyw@google.com> wrote: > >> The first option is not valid, that's what sequence<> is used for. The >> options are either to use the old fake list or change the attribute result >> to a function getResults() which aligns the API with other new APIs like >> WebRTC. >> >> Btw, its pretty easy to write JS that are compatible with both a function >> and an attribute; first add compability with the old: >> >> if (!SpeechRecognitionEvent.prototype.getResults) { >> SpeechRecognitionEvent.prototype.getResults = function() { >> return this.results; >> } >> } >> >> and then change the usage to the new function. >> >> >> >> >> On Mon, Feb 11, 2013 at 6:50 PM, Glen Shires <gshires@google.com> wrote: >> >>> Tommy discovered that WebIDL forbids sequence<xx> for attributes, it's >>> only for function results: >>> http://dev.w3.org/2006/webapi/WebIDL/#idl-sequence >>> >>> So I see three options for SpeechRecognitionEvent.results: >>> >>> 1. Define it as an array instead of a sequence. The change to the IDL >>> would be: >>> >>> Section 5.1 IDL: >>> "readonly attribute sequence<SpeechRecognitionResult> results;" >>> should be >>> "readonly attribute SpeechRecognitionResult[] results" >>> >>> >>> 2. Revert back to the original IDL in the spec. (That is, strikeout >>> errata E04.) [1] >>> >>> >>> 3. Change it from a readonly attribute to a function. The change to the >>> IDL would be: >>> >>> Section 5.1 IDL: >>> "readonly attribute sequence<SpeechRecognitionResult> results;" >>> should be >>> "sequence<SpeechRecognitionResult> getResults()" >>> >>> >>> >>> I prefer the first option. Like sequence<xx> an array remains compatible >>> with the result[i] syntax (so no change for JavaScript applications using >>> this syntax), and doesn't support the result.item(i) syntax. >>> >>> The second option would be OK too. >>> >>> I dislike the third option because the syntax for JavaScript >>> applications changes. Also, because this would add a function call >>> to SpeechRecognitionEvent, which currently holds only attributes, so it >>> would be inconsistent and "odd" in my opinion. >>> >>> What are your thoughts? >>> >>> Also, any additional thoughts on SpeechGrammarList? >>> >>> Glen Shires >>> >>> >>> [1] https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi-errata.html >>> >>> >>> >>> On Wed, Feb 6, 2013 at 7:01 AM, Tommy Widenflycht (ᛏᚮᛘᛘᚤ) < >>> tommyw@google.com> wrote: >>> >>>> FYI the "Media Capture and Streams" spec did this with MediaStream and >>>> MediaStreamtrackList and it turned out OK imho. >>>> >>>> >>>> On Tue, Feb 5, 2013 at 7:56 AM, Glen Shires <gshires@google.com> wrote: >>>> >>>>> One option for a similar change to SpeechGrammarList is to move its >>>>> methods to its parent as shown below. >>>>> >>>>> Remove SpeechRecognitionResultList and change: >>>>> >>>>> interface SpeechRecognition : EventTarget { >>>>> attribute sequence<SpeechGrammar> grammars; >>>>> >>>>> void addGrammarFromURI(in DOMString src, optional float >>>>> weight); >>>>> void addGrammarFromString(in DOMString string, optional float >>>>> weight); >>>>> ... >>>>> } >>>>> >>>>> >>>>> However, I prefer the current syntax because the encapsulation of >>>>> methods is cleaner. Any thoughts or other proposals? >>>>> >>>>> /Glen Shires >>>>> >>>>> >>>>> On Mon, Feb 4, 2013 at 10:36 PM, Glen Shires <gshires@google.com>wrote: >>>>> >>>>>> I've updated the errata with the above change: >>>>>> https://dvcs.w3.org/hg/speech-api/rev/58e2afd5d423 >>>>>> >>>>>> As always, the current errata is at: >>>>>> http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi-errata.html >>>>>> >>>>>> >>>>>> Should we consider a similar change to SpeechGrammarList? (It's not >>>>>> as straight-forward because the object has methods.) Any proposals? >>>>>> >>>>>> /Glen Shires >>>>>> >>>>>> >>>>>> On Tue, Jan 22, 2013 at 3:43 PM, Glen Shires <gshires@google.com>wrote: >>>>>> >>>>>>> I agree, this makes for a cleaner, more modern IDL and doesn't >>>>>>> affect the JavaScript syntax. So unless there is disagreement, I will add >>>>>>> the following to the errata on Feb 4. >>>>>>> >>>>>>> Remove SpeechSynthesisVoiceList and change: >>>>>>> >>>>>>> interface SpeechSynthesis { >>>>>>> sequence<SpeechSynthesisVoice> getVoices(); >>>>>>> }; >>>>>>> >>>>>>> Remove SpeechRecognitionResultList and change: >>>>>>> >>>>>>> interface SpeechRecognitionEvent : Event { >>>>>>> readonly attribute sequence<SpeechRecognitionResult> results; >>>>>>> }; >>>>>>> >>>>>>> >>>>>>> >>>>>>> Also, we might consider a similar change to SpeechGrammarList, but >>>>>>> it's not as straight-forward because this object has methods. Any proposals? >>>>>>> >>>>>>> Glen >>>>>>> >>>>>>> >>>>>>> On Thu, Jan 17, 2013 at 12:34 AM, Tommy Widenflycht (ᛏᚮᛘᛘᚤ) < >>>>>>> tommyw@google.com> wrote: >>>>>>> >>>>>>>> Yeah, I am doing exactly the same to the WebRTC stuff in WebKit. The >>>>>>>> recentish support for sequence<> in WebKit rocks. And the change >>>>>>>> wouldn't break anything either. >>>>>>>> >>>>>>>> /Tommy >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Jan 17, 2013 at 9:27 AM, Hans Wennborg < >>>>>>>> hwennborg@google.com> wrote: >>>>>>>> > On Wed, Jan 16, 2013 at 9:19 PM, Chris Fleizach < >>>>>>>> cfleizach@apple.com> wrote: >>>>>>>> >> Hi, >>>>>>>> >> >>>>>>>> >> I think that instead of using the custom >>>>>>>> SpeechSynthesisVoiceList object, we can use a normative Javascript array to >>>>>>>> return the list of voices >>>>>>>> >> in getVoices(). >>>>>>>> >> >>>>>>>> >> The IDL change would change from >>>>>>>> >> >>>>>>>> >> interface SpeechSynthesis { >>>>>>>> >> SpeechSynthesisVoiceList getVoices(); >>>>>>>> >> }; >>>>>>>> >> >>>>>>>> >> to >>>>>>>> >> >>>>>>>> >> interface SpeechSynthesis { >>>>>>>> >> sequence<SpeechSynthesisVoice> getVoices(); >>>>>>>> >> }; >>>>>>>> >> >>>>>>>> >> Then the SpeechSynthesisVoiceList can be removed. >>>>>>>> >> >>>>>>>> >> Thanks for your consideration >>>>>>>> > >>>>>>>> > +tommyw >>>>>>>> > >>>>>>>> > I guess this would apply to the other lists in the spec too? I.e. >>>>>>>> > SpeechGrammarList and SpeechRecognitionResultList? >>>>>>>> > >>>>>>>> > Seems like this would both simplify the spec and implementation a >>>>>>>> bit. >>>>>>>> > >>>>>>>> > Thanks, >>>>>>>> > Hans >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >>> >> >
Received on Monday, 25 February 2013 19:18:39 UTC