- From: Olli Pettay <Olli.Pettay@helsinki.fi>
- Date: Sat, 13 Oct 2012 17:56:16 +0300
- CC: Glen Shires <gshires@google.com>, public-speech-api@w3.org
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 Saturday, 13 October 2012 14:56:44 UTC