Re: SpeechSynthesisCallback

I've updated the spec with the changes proposed in this thread:
- Removed static from SpeechSynthesis interface.
- Changed speak method to not copy utterance.
- Fixed Speech Synthesis Example 2.
https://dvcs.w3.org/hg/speech-api/rev/cc2dddb63c8d

As always, the current draft spec is at:
http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html

/Glen Shires


On Sun, Oct 14, 2012 at 11:21 AM, Glen Shires <gshires@google.com> wrote:

> Also, there's a syntax error in the first line of Speech Synthesis Example
> 2. (The Example section is non-normative.)
>     SpeechSynthesisUtterance u;
> should be
>     var u = new SpeechSynthesisUtterance();
>
> If no disagreement, I'll update the spec on Tuesday with this.
> Glen Shires
>
> On Sat, Oct 13, 2012 at 8:31 PM, Glen Shires <gshires@google.com> wrote:
>
>> OK, if no disagreement, I'll update the spec on Tuesday to remove
>> "static" from all elements in interface SpeechSynthesis.
>>
>> Glen Shires
>>
>>
>> On Sat, Oct 13, 2012 at 5:35 PM, Olli Pettay <Olli.Pettay@helsinki.fi>wrote:
>>
>>> On 10/14/2012 01:27 AM, Glen Shires wrote:
>>>
>>>> I agree.
>>>>
>>>> Also, is there any reason not to remove "static" from the following?
>>>>  If not, I propose removing it here too.
>>>>
>>>>        static readonly attribute boolean pending;
>>>>        static readonly attribute boolean speaking;
>>>>        static readonly attribute boolean paused;
>>>>
>>>>        static SpeechSynthesisVoiceList getVoices();
>>>>
>>>>
>>> Right. I'd be surprised if anything needs to be 'static'
>>>
>>>
>>>
>>>  Glen Shires
>>>>
>>>>
>>>> On Sat, Oct 13, 2012 at 7:56 AM, Olli Pettay <Olli.Pettay@helsinki.fi<mailto:
>>>> Olli.Pettay@helsinki.**fi <Olli.Pettay@helsinki.fi>>> wrote:
>>>>
>>>>     static void speak(SpeechSynthesisUtterance utterance);
>>>>     static void cancel();
>>>>     static void pause();
>>>>     static void resume();
>>>>
>>>>     Those shouldn't be static.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>     On 10/12/2012 01:42 PM, Olli Pettay wrote:
>>>>
>>>>         On 10/12/2012 04:41 AM, Glen Shires wrote:
>>>>
>>>>             I propose the following change to the SpeechSynthesis IDL
>>>> to use a callback instead of events. It doesn't change functionality, but
>>>> does
>>>>             make the IDL
>>>>             more well-defined and conventional. (The current IDL breaks
>>>> platform conventions, because the speak() method makes a copy of utterance,
>>>>             and thus
>>>>             event.target cannot be properly defined, nor can
>>>> addEventListener be used in the conventional manner.)  The
>>>> SpeechSynthesisEvent object is
>>>>             renamed SpeechSynthesisUpdate (because it is no longer an
>>>> event, but rather a callback).  If there's no disagreement, I'll update the
>>>> spec
>>>>             with this
>>>>             on Monday.
>>>>
>>>>                   callback SpeechSynthesisCallback = void
>>>> (SpeechSynthesisUpdate update);
>>>>
>>>>                   interface SpeechSynthesis {
>>>>                     ...
>>>>                     static void speak(SpeechSynthesisUtterance
>>>> utterance, SpeechSynthesisCallback callback);
>>>>                   };
>>>>
>>>>                   interface SpeechSynthesisUpdate {
>>>>                       enum UpdateType {
>>>>                         "start",
>>>>                         "end",
>>>>                         "pause",
>>>>                         "resume",
>>>>                         "mark",
>>>>                         "boundary",
>>>>                         "error"
>>>>                       };
>>>>                       readonly attribute UpdateType type;
>>>>                       readonly attribute unsigned long charIndex;
>>>>                       readonly attribute float elapsedTime;
>>>>                       readonly attribute DOMString name;
>>>>                   };
>>>>
>>>>             /Glen Shires
>>>>
>>>>
>>>>         Looks odd to me.
>>>>
>>>>         Shouldn't it be
>>>>         interface SpeechSynthesis : EventTarget
>>>>         {
>>>>             void speak(SpeechSynthesisUtterance utterance);
>>>>             EventHandler onspeak;
>>>>         }
>>>>
>>>>         That way one doesn't need to pass callback to the speak method
>>>> all the time.
>>>>         Just registering once is enough.
>>>>
>>>>
>>>>
>>>>
>>>>         -Olli
>>>>
>>>>
>>>>
>>>>
>>>
>>
>

Received on Tuesday, 16 October 2012 16:59:16 UTC