Updated Speech API auto completion 86/33986/1
authorAlice Liu <alice.liu@intel.com>
Mon, 19 Jan 2015 11:31:34 +0000 (19:31 +0800)
committerAlice Liu <alice.liu@intel.com>
Mon, 19 Jan 2015 11:31:34 +0000 (19:31 +0800)
Change-Id: I88c0b44828e1b48f4e64fa515a2b04a598c443c2
Signed-off-by: Alice Liu <alice.liu@intel.com>
widlprocxmls/tizen.widlprocxml
widlprocxmls/w3c.widl
widlprocxmls/w3cwidget.widlprocxml

index 20ae1d7..20980a8 100644 (file)
@@ -4161,128 +4161,44 @@ interface MediaServer {
   </Interface>
 </Module>
 <Module name="Speech" id="::Speech">
-  <webidl>  module Speech {
-  [NoInterfaceObject]
-   interface SpeechManagerObject {
-               readonly attribute <ref>SpeechManager</ref> speech;
-   };
-   <ref>Tizen</ref> implements <ref>SpeechManagerObject</ref>;
-
-
-   [NoInterfaceObject]
-   interface SpeechManager {
-                   void vocalizeString(DOMString speakString);
-   };
-
-   [Constructor]
-    interface SpeechRecognition : <ref>EventTarget</ref> {
-        attribute <ref>SpeechGrammarList</ref> grammars;
-        attribute DOMString lang;
-        attribute boolean continuous;
-        attribute boolean interimResults;
-        attribute unsigned long maxAlternatives;
-        attribute DOMString serviceURI;
-
-        void start();
-        void stop();
-        void abort();
-
-        attribute <ref>EventHandler</ref> onaudiostart;
-        attribute <ref>EventHandler</ref> onsoundstart;
-        attribute <ref>EventHandler</ref> onspeechstart;
-        attribute <ref>EventHandler</ref> onspeechend;
-        attribute <ref>EventHandler</ref> onsoundend;
-        attribute <ref>EventHandler</ref> onaudioend;
-        attribute <ref>EventHandler</ref> onresult;
-        attribute <ref>EventHandler</ref> onnomatch;
-        attribute <ref>EventHandler</ref> onerror;
-        attribute <ref>EventHandler</ref> onstart;
-        attribute <ref>EventHandler</ref> onend;
-    };
-
-        enum ErrorCode {
-          &quot;no-speech&quot;,
-          &quot;aborted&quot;,
-          &quot;audio-capture&quot;,
-          &quot;network&quot;,
-          &quot;not-allowed&quot;,
-          &quot;service-not-allowed&quot;,
-          &quot;bad-grammar&quot;,
-          &quot;language-not-supported&quot;
-        };
-
-    interface SpeechRecognitionError : <ref>Event</ref> {
-        readonly attribute <ref>ErrorCode</ref> error;
-        readonly attribute DOMString message;
-    };
-
-    interface SpeechRecognitionAlternative {
-        readonly attribute DOMString transcript;
-        readonly attribute float confidence;
-    };
-
-    interface SpeechRecognitionResult {
-        readonly attribute unsigned long length;
-        getter <ref>SpeechRecognitionAlternative</ref> item(unsigned long index);
-        readonly attribute boolean final;
-    };
-
-    interface SpeechRecognitionResultList {
-        readonly attribute unsigned long length;
-        getter <ref>SpeechRecognitionResult</ref> item(unsigned long index);
-    };
-
-    interface SpeechRecognitionEvent : <ref>Event</ref> {
-        readonly attribute unsigned long resultIndex;
-        readonly attribute <ref>SpeechRecognitionResultList</ref> results;
-        readonly attribute any interpretation;
-        readonly attribute <ref>Document</ref> emma;
-    };
+<webidl>  module Speech {
+[NoInterfaceObject] interface SpeechManagerObject {
+        readonly attribute <ref>SpeechManager</ref> speech;
+};
 
-    [Constructor]
-    interface SpeechGrammar {
-        attribute DOMString src;
-        attribute float weight;
-    };
+<ref>Tizen</ref> implements <ref>SpeechManagerObject</ref>;
 
-    [Constructor]
-    interface SpeechGrammarList {
-        readonly attribute unsigned long length;
-        getter <ref>SpeechGrammar</ref> item(unsigned long index);
-        void addFromURI(DOMString src, optional float weight);
-        void addFromString(DOMString string, optional float weight);
-    };
+[NoInterfaceObject] interface SpeechManager {
+    void vocalizeString(DOMString speakString);
 };</webidl>
   <Interface name="SpeechManagerObject" id="::SpeechManagerObject">
-    <webidl>   [NoInterfaceObject]
-   interface SpeechManagerObject {
-               readonly attribute <ref>SpeechManager</ref> speech;
-   };</webidl>
+    <webidl>[NoInterfaceObject] interface SpeechManagerObject {
+        readonly attribute <ref>SpeechManager</ref> speech;
+};</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
         <webidl>NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <Attribute readonly="readonly" name="speech" id="::SpeechManagerObject::speech">
-      <webidl>               readonly attribute <ref>SpeechManager</ref> speech;</webidl>
+      <webidl>        readonly attribute <ref>SpeechManager</ref> speech;</webidl>
       <Type name="SpeechManager"/>
     </Attribute>
   </Interface>
   <Implements name1="Tizen" name2="SpeechManagerObject">
-    <webidl>   <ref>Tizen</ref> implements <ref>SpeechManagerObject</ref>;</webidl>
+    <webidl><ref>Tizen</ref> implements <ref>SpeechManagerObject</ref>;</webidl>
   </Implements>
   <Interface name="SpeechManager" id="::SpeechManager">
-    <webidl>   [NoInterfaceObject]
-   interface SpeechManager {
-                   void vocalizeString(DOMString speakString);
-   };</webidl>
+    <webidl>[NoInterfaceObject] interface SpeechManager {
+    void vocalizeString(DOMString speakString);
+};</webidl>
     <ExtendedAttributeList>
       <ExtendedAttribute name="NoInterfaceObject">
         <webidl>NoInterfaceObject</webidl>
       </ExtendedAttribute>
     </ExtendedAttributeList>
     <Operation name="vocalizeString" id="::SpeechManager::vocalizeString">
-      <webidl>                   void vocalizeString(DOMString speakString);</webidl>
+      <webidl>    void vocalizeString(DOMString speakString);</webidl>
       <Type type="void"/>
       <ArgumentList>
         <Argument name="speakString">
@@ -4291,332 +4207,6 @@ interface MediaServer {
       </ArgumentList>
     </Operation>
   </Interface>
-  <Interface name="SpeechRecognition" id="::SpeechRecognition">
-    <webidl>   [Constructor]
-    interface SpeechRecognition : <ref>EventTarget</ref> {
-        attribute <ref>SpeechGrammarList</ref> grammars;
-        attribute DOMString lang;
-        attribute boolean continuous;
-        attribute boolean interimResults;
-        attribute unsigned long maxAlternatives;
-        attribute DOMString serviceURI;
-
-        void start();
-        void stop();
-        void abort();
-
-        attribute <ref>EventHandler</ref> onaudiostart;
-        attribute <ref>EventHandler</ref> onsoundstart;
-        attribute <ref>EventHandler</ref> onspeechstart;
-        attribute <ref>EventHandler</ref> onspeechend;
-        attribute <ref>EventHandler</ref> onsoundend;
-        attribute <ref>EventHandler</ref> onaudioend;
-        attribute <ref>EventHandler</ref> onresult;
-        attribute <ref>EventHandler</ref> onnomatch;
-        attribute <ref>EventHandler</ref> onerror;
-        attribute <ref>EventHandler</ref> onstart;
-        attribute <ref>EventHandler</ref> onend;
-    };</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="Constructor">
-        <webidl>Constructor</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <InterfaceInheritance>
-      <Name name="EventTarget"/>
-    </InterfaceInheritance>
-    <Attribute name="grammars" id="::SpeechRecognition::grammars">
-      <webidl>        attribute <ref>SpeechGrammarList</ref> grammars;</webidl>
-      <Type name="SpeechGrammarList"/>
-    </Attribute>
-    <Attribute name="lang" id="::SpeechRecognition::lang">
-      <webidl>        attribute DOMString lang;</webidl>
-      <Type type="DOMString"/>
-    </Attribute>
-    <Attribute name="continuous" id="::SpeechRecognition::continuous">
-      <webidl>        attribute boolean continuous;</webidl>
-      <Type type="boolean"/>
-    </Attribute>
-    <Attribute name="interimResults" id="::SpeechRecognition::interimResults">
-      <webidl>        attribute boolean interimResults;</webidl>
-      <Type type="boolean"/>
-    </Attribute>
-    <Attribute name="maxAlternatives" id="::SpeechRecognition::maxAlternatives">
-      <webidl>        attribute unsigned long maxAlternatives;</webidl>
-      <Type type="unsigned long"/>
-    </Attribute>
-    <Attribute name="serviceURI" id="::SpeechRecognition::serviceURI">
-      <webidl>        attribute DOMString serviceURI;</webidl>
-      <Type type="DOMString"/>
-    </Attribute>
-    <Operation name="start" id="::SpeechRecognition::start">
-      <webidl>        void start();</webidl>
-      <Type type="void"/>
-      <ArgumentList/>
-    </Operation>
-    <Operation name="stop" id="::SpeechRecognition::stop">
-      <webidl>        void stop();</webidl>
-      <Type type="void"/>
-      <ArgumentList/>
-    </Operation>
-    <Operation name="abort" id="::SpeechRecognition::abort">
-      <webidl>        void abort();</webidl>
-      <Type type="void"/>
-      <ArgumentList/>
-    </Operation>
-    <Attribute name="onaudiostart" id="::SpeechRecognition::onaudiostart">
-      <webidl>        attribute <ref>EventHandler</ref> onaudiostart;</webidl>
-      <Type name="EventHandler"/>
-    </Attribute>
-    <Attribute name="onsoundstart" id="::SpeechRecognition::onsoundstart">
-      <webidl>        attribute <ref>EventHandler</ref> onsoundstart;</webidl>
-      <Type name="EventHandler"/>
-    </Attribute>
-    <Attribute name="onspeechstart" id="::SpeechRecognition::onspeechstart">
-      <webidl>        attribute <ref>EventHandler</ref> onspeechstart;</webidl>
-      <Type name="EventHandler"/>
-    </Attribute>
-    <Attribute name="onspeechend" id="::SpeechRecognition::onspeechend">
-      <webidl>        attribute <ref>EventHandler</ref> onspeechend;</webidl>
-      <Type name="EventHandler"/>
-    </Attribute>
-    <Attribute name="onsoundend" id="::SpeechRecognition::onsoundend">
-      <webidl>        attribute <ref>EventHandler</ref> onsoundend;</webidl>
-      <Type name="EventHandler"/>
-    </Attribute>
-    <Attribute name="onaudioend" id="::SpeechRecognition::onaudioend">
-      <webidl>        attribute <ref>EventHandler</ref> onaudioend;</webidl>
-      <Type name="EventHandler"/>
-    </Attribute>
-    <Attribute name="onresult" id="::SpeechRecognition::onresult">
-      <webidl>        attribute <ref>EventHandler</ref> onresult;</webidl>
-      <Type name="EventHandler"/>
-    </Attribute>
-    <Attribute name="onnomatch" id="::SpeechRecognition::onnomatch">
-      <webidl>        attribute <ref>EventHandler</ref> onnomatch;</webidl>
-      <Type name="EventHandler"/>
-    </Attribute>
-    <Attribute name="onerror" id="::SpeechRecognition::onerror">
-      <webidl>        attribute <ref>EventHandler</ref> onerror;</webidl>
-      <Type name="EventHandler"/>
-    </Attribute>
-    <Attribute name="onstart" id="::SpeechRecognition::onstart">
-      <webidl>        attribute <ref>EventHandler</ref> onstart;</webidl>
-      <Type name="EventHandler"/>
-    </Attribute>
-    <Attribute name="onend" id="::SpeechRecognition::onend">
-      <webidl>        attribute <ref>EventHandler</ref> onend;</webidl>
-      <Type name="EventHandler"/>
-    </Attribute>
-  </Interface>
-  <Enum name="ErrorCode" id="::ErrorCode">
-    <webidl>        enum ErrorCode {
-          &quot;no-speech&quot;,
-          &quot;aborted&quot;,
-          &quot;audio-capture&quot;,
-          &quot;network&quot;,
-          &quot;not-allowed&quot;,
-          &quot;service-not-allowed&quot;,
-          &quot;bad-grammar&quot;,
-          &quot;language-not-supported&quot;
-        };</webidl>
-    <EnumValue stringvalue="no-speech">
-      <webidl>          &quot;no-speech</webidl>
-    </EnumValue>
-    <EnumValue stringvalue="aborted">
-      <webidl>          &quot;aborted</webidl>
-    </EnumValue>
-    <EnumValue stringvalue="audio-capture">
-      <webidl>          &quot;audio-capture</webidl>
-    </EnumValue>
-    <EnumValue stringvalue="network">
-      <webidl>          &quot;network</webidl>
-    </EnumValue>
-    <EnumValue stringvalue="not-allowed">
-      <webidl>          &quot;not-allowed</webidl>
-    </EnumValue>
-    <EnumValue stringvalue="service-not-allowed">
-      <webidl>          &quot;service-not-allowed</webidl>
-    </EnumValue>
-    <EnumValue stringvalue="bad-grammar">
-      <webidl>          &quot;bad-grammar</webidl>
-    </EnumValue>
-    <EnumValue stringvalue="language-not-supported">
-      <webidl>          &quot;language-not-supported</webidl>
-    </EnumValue>
-  </Enum>
-  <Interface name="SpeechRecognitionError" id="::SpeechRecognitionError">
-    <webidl>    interface SpeechRecognitionError : <ref>Event</ref> {
-        readonly attribute <ref>ErrorCode</ref> error;
-        readonly attribute DOMString message;
-    };</webidl>
-    <InterfaceInheritance>
-      <Name name="Event"/>
-    </InterfaceInheritance>
-    <Attribute readonly="readonly" name="error" id="::SpeechRecognitionError::error">
-      <webidl>        readonly attribute <ref>ErrorCode</ref> error;</webidl>
-      <Type name="ErrorCode"/>
-    </Attribute>
-    <Attribute readonly="readonly" name="message" id="::SpeechRecognitionError::message">
-      <webidl>        readonly attribute DOMString message;</webidl>
-      <Type type="DOMString"/>
-    </Attribute>
-  </Interface>
-  <Interface name="SpeechRecognitionAlternative" id="::SpeechRecognitionAlternative">
-    <webidl>    interface SpeechRecognitionAlternative {
-        readonly attribute DOMString transcript;
-        readonly attribute float confidence;
-    };</webidl>
-    <Attribute readonly="readonly" name="transcript" id="::SpeechRecognitionAlternative::transcript">
-      <webidl>        readonly attribute DOMString transcript;</webidl>
-      <Type type="DOMString"/>
-    </Attribute>
-    <Attribute readonly="readonly" name="confidence" id="::SpeechRecognitionAlternative::confidence">
-      <webidl>        readonly attribute float confidence;</webidl>
-      <Type type="float"/>
-    </Attribute>
-  </Interface>
-  <Interface name="SpeechRecognitionResult" id="::SpeechRecognitionResult">
-    <webidl>    interface SpeechRecognitionResult {
-        readonly attribute unsigned long length;
-        getter <ref>SpeechRecognitionAlternative</ref> item(unsigned long index);
-        readonly attribute boolean final;
-    };</webidl>
-    <Attribute readonly="readonly" name="length" id="::SpeechRecognitionResult::length">
-      <webidl>        readonly attribute unsigned long length;</webidl>
-      <Type type="unsigned long"/>
-    </Attribute>
-    <Operation getter="getter" name="item" id="::SpeechRecognitionResult::item">
-      <webidl>        getter <ref>SpeechRecognitionAlternative</ref> item(unsigned long index);</webidl>
-      <Type name="SpeechRecognitionAlternative"/>
-      <ArgumentList>
-        <Argument name="index">
-          <Type type="unsigned long"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-    <Attribute readonly="readonly" name="final" id="::SpeechRecognitionResult::final">
-      <webidl>        readonly attribute boolean final;</webidl>
-      <Type type="boolean"/>
-    </Attribute>
-  </Interface>
-  <Interface name="SpeechRecognitionResultList" id="::SpeechRecognitionResultList">
-    <webidl>    interface SpeechRecognitionResultList {
-        readonly attribute unsigned long length;
-        getter <ref>SpeechRecognitionResult</ref> item(unsigned long index);
-    };</webidl>
-    <Attribute readonly="readonly" name="length" id="::SpeechRecognitionResultList::length">
-      <webidl>        readonly attribute unsigned long length;</webidl>
-      <Type type="unsigned long"/>
-    </Attribute>
-    <Operation getter="getter" name="item" id="::SpeechRecognitionResultList::item">
-      <webidl>        getter <ref>SpeechRecognitionResult</ref> item(unsigned long index);</webidl>
-      <Type name="SpeechRecognitionResult"/>
-      <ArgumentList>
-        <Argument name="index">
-          <Type type="unsigned long"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-  </Interface>
-  <Interface name="SpeechRecognitionEvent" id="::SpeechRecognitionEvent">
-    <webidl>    interface SpeechRecognitionEvent : <ref>Event</ref> {
-        readonly attribute unsigned long resultIndex;
-        readonly attribute <ref>SpeechRecognitionResultList</ref> results;
-        readonly attribute any interpretation;
-        readonly attribute <ref>Document</ref> emma;
-    };</webidl>
-    <InterfaceInheritance>
-      <Name name="Event"/>
-    </InterfaceInheritance>
-    <Attribute readonly="readonly" name="resultIndex" id="::SpeechRecognitionEvent::resultIndex">
-      <webidl>        readonly attribute unsigned long resultIndex;</webidl>
-      <Type type="unsigned long"/>
-    </Attribute>
-    <Attribute readonly="readonly" name="results" id="::SpeechRecognitionEvent::results">
-      <webidl>        readonly attribute <ref>SpeechRecognitionResultList</ref> results;</webidl>
-      <Type name="SpeechRecognitionResultList"/>
-    </Attribute>
-    <Attribute readonly="readonly" name="interpretation" id="::SpeechRecognitionEvent::interpretation">
-      <webidl>        readonly attribute any interpretation;</webidl>
-      <Type type="any"/>
-    </Attribute>
-    <Attribute readonly="readonly" name="emma" id="::SpeechRecognitionEvent::emma">
-      <webidl>        readonly attribute <ref>Document</ref> emma;</webidl>
-      <Type name="Document"/>
-    </Attribute>
-  </Interface>
-  <Interface name="SpeechGrammar" id="::SpeechGrammar">
-    <webidl>    [Constructor]
-    interface SpeechGrammar {
-        attribute DOMString src;
-        attribute float weight;
-    };</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="Constructor">
-        <webidl>Constructor</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <Attribute name="src" id="::SpeechGrammar::src">
-      <webidl>        attribute DOMString src;</webidl>
-      <Type type="DOMString"/>
-    </Attribute>
-    <Attribute name="weight" id="::SpeechGrammar::weight">
-      <webidl>        attribute float weight;</webidl>
-      <Type type="float"/>
-    </Attribute>
-  </Interface>
-  <Interface name="SpeechGrammarList" id="::SpeechGrammarList">
-    <webidl>    [Constructor]
-    interface SpeechGrammarList {
-        readonly attribute unsigned long length;
-        getter <ref>SpeechGrammar</ref> item(unsigned long index);
-        void addFromURI(DOMString src, optional float weight);
-        void addFromString(DOMString string, optional float weight);
-    };</webidl>
-    <ExtendedAttributeList>
-      <ExtendedAttribute name="Constructor">
-        <webidl>Constructor</webidl>
-      </ExtendedAttribute>
-    </ExtendedAttributeList>
-    <Attribute readonly="readonly" name="length" id="::SpeechGrammarList::length">
-      <webidl>        readonly attribute unsigned long length;</webidl>
-      <Type type="unsigned long"/>
-    </Attribute>
-    <Operation getter="getter" name="item" id="::SpeechGrammarList::item">
-      <webidl>        getter <ref>SpeechGrammar</ref> item(unsigned long index);</webidl>
-      <Type name="SpeechGrammar"/>
-      <ArgumentList>
-        <Argument name="index">
-          <Type type="unsigned long"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-    <Operation name="addFromURI" id="::SpeechGrammarList::addFromURI">
-      <webidl>        void addFromURI(DOMString src, optional float weight);</webidl>
-      <Type type="void"/>
-      <ArgumentList>
-        <Argument name="src">
-          <Type type="DOMString"/>
-        </Argument>
-        <Argument optional="optional" name="weight">
-          <Type type="float"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-    <Operation name="addFromString" id="::SpeechGrammarList::addFromString">
-      <webidl>        void addFromString(DOMString string, optional float weight);</webidl>
-      <Type type="void"/>
-      <ArgumentList>
-        <Argument name="string">
-          <Type type="DOMString"/>
-        </Argument>
-        <Argument optional="optional" name="weight">
-          <Type type="float"/>
-        </Argument>
-      </ArgumentList>
-    </Operation>
-  </Interface>
 </Module>
   <Module name="Alarm" id="::Alarm">
     <webidl>module Alarm {&#13;
index c806f99..9a714c1 100644 (file)
@@ -9,7 +9,7 @@ module W3CWidget
         /**
          * \brief Author e-mail.
          */
-               readonly attribute DOMString     authorEmail;
+        readonly attribute DOMString     authorEmail;
         /**
          * \brief Author web site.
          */
@@ -17,46 +17,195 @@ module W3CWidget
         /**
          * \brief Description of widget.
          */
-               readonly attribute DOMString     description;
+        readonly attribute DOMString     description;
         /**
          * \brief Identifier of widget.
          */
-               readonly attribute DOMString     id;
+        readonly attribute DOMString     id;
         /**
          * \brief Name of widget.
          */
-               readonly attribute DOMString     name;
+        readonly attribute DOMString     name;
         /**
          * \brief Short name of widget.
          */
-               readonly attribute DOMString     shortName;
+        readonly attribute DOMString     shortName;
         /**
          * \brief Preferences.
          */
-               readonly attribute Storage       preferences;
+        readonly attribute Storage       preferences;
         /**
          * \brief Version of widget.
          */
-               readonly attribute DOMString     version;
+        readonly attribute DOMString     version;
         /**
          * \brief Height of widget.
          */
-               readonly attribute unsigned long height;
+        readonly attribute unsigned long height;
         /**
          * \brief Width of widget.
          */
-               readonly attribute unsigned long width;
+        readonly attribute unsigned long width;
     };
 
     [Supplemental, NoInterfaceObject]
     interface WindowWidget {
-      /**
-       * \brief W3C Widget.
-       *
-       * The Widget Interface \<a href="http://www.w3.org/TR/widgets-apis/"\>http://www.w3.org/TR/widgets-apis/\</a\>.
-       */
-      readonly attribute W3CWidget widget;
+        /**
+         * \brief W3C Widget.
+         *
+         * The Widget Interface \<a href="http://www.w3.org/TR/widgets-apis/"\>http://www.w3.org/TR/widgets-apis/\</a\>.
+         */
+        readonly attribute W3CWidget widget;
     };
 
     Window implements WindowWidget;
-};
\ No newline at end of file
+};
+
+    module SpeechSynthesis {
+    [Constructor]
+    interface SpeechRecognition : EventTarget {
+        // recognition parameters
+        attribute SpeechGrammarList grammars;
+        attribute DOMString lang;
+        attribute boolean continuous;
+        attribute boolean interimResults;
+        attribute unsigned long maxAlternatives;
+        attribute DOMString serviceURI;
+
+        // methods to drive the speech interaction
+        void start();
+        void stop();
+        void abort();
+
+        // event methods
+        attribute EventHandler onaudiostart;
+        attribute EventHandler onsoundstart;
+        attribute EventHandler onspeechstart;
+        attribute EventHandler onspeechend;
+        attribute EventHandler onsoundend;
+        attribute EventHandler onaudioend;
+        attribute EventHandler onresult;
+        attribute EventHandler onnomatch;
+        attribute EventHandler onerror;
+        attribute EventHandler onstart;
+        attribute EventHandler onend;
+    };
+
+    enum ErrorCode {
+        "no-speech",
+        "aborted",
+        "audio-capture",
+        "network",
+        "not-allowed",
+        "service-not-allowed",
+        "bad-grammar",
+        "language-not-supported"
+    };
+
+    interface SpeechRecognitionError : Event {
+        readonly attribute ErrorCode error;
+        readonly attribute DOMString message;
+    };
+
+    // Item in N-best list
+    interface SpeechRecognitionAlternative {
+        readonly attribute DOMString transcript;
+        readonly attribute float confidence;
+    };
+
+    // A complete one-shot simple response
+    interface SpeechRecognitionResult {
+        readonly attribute unsigned long length;
+        getter SpeechRecognitionAlternative item(unsigned long index);
+        readonly attribute boolean final;
+    };
+
+    // A collection of responses (used in continuous mode)
+    interface SpeechRecognitionResultList {
+        readonly attribute unsigned long length;
+        getter SpeechRecognitionResult item(unsigned long index);
+    };
+
+    // A full response, which could be interim or final, part of a continuous response or not
+    interface SpeechRecognitionEvent : Event {
+        readonly attribute unsigned long resultIndex;
+        readonly attribute SpeechRecognitionResultList results;
+        readonly attribute any interpretation;
+        readonly attribute Document emma;
+    };
+
+    // The object representing a speech grammar
+    [Constructor]
+    interface SpeechGrammar {
+        attribute DOMString src;
+        attribute float weight;
+    };
+
+    // The object representing a speech grammar collection
+    [Constructor]
+    interface SpeechGrammarList {
+        readonly attribute unsigned long length;
+        getter SpeechGrammar item(unsigned long index);
+        void addFromURI(DOMString src,
+                    optional float weight);
+        void addFromString(DOMString string,
+                       optional float weight);
+    };
+
+    interface SpeechSynthesis {
+        readonly attribute boolean pending;
+        readonly attribute boolean speaking;
+        readonly attribute boolean paused;
+
+        void speak(SpeechSynthesisUtterance utterance);
+        void cancel();
+        void pause();
+        void resume();
+        SpeechSynthesisVoiceList getVoices();
+    };
+
+    [NoInterfaceObject]
+    interface SpeechSynthesisGetter {
+        readonly attribute SpeechSynthesis speechSynthesis;
+    };
+
+    Window implements SpeechSynthesisGetter;
+
+    [Constructor, Constructor(DOMString text)]
+    interface SpeechSynthesisUtterance : EventTarget {
+        attribute DOMString text;
+        attribute DOMString lang;
+        attribute DOMString voiceURI;
+        attribute float volume;
+        attribute float rate;
+        attribute float pitch;
+
+        attribute EventHandler onstart;
+        attribute EventHandler onend;
+        attribute EventHandler onerror;
+        attribute EventHandler onpause;
+        attribute EventHandler onresume;
+        attribute EventHandler onmark;
+        attribute EventHandler onboundary;
+    };
+
+    interface SpeechSynthesisEvent : Event {
+        readonly attribute unsigned long charIndex;
+        readonly attribute float elapsedTime;
+        readonly attribute DOMString name;
+    };
+
+    interface SpeechSynthesisVoice {
+        readonly attribute DOMString voiceURI;
+        readonly attribute DOMString name;
+        readonly attribute DOMString lang;
+        readonly attribute boolean localService;
+        //        readonly attribute boolean default;
+    };
+
+    interface SpeechSynthesisVoiceList {
+        readonly attribute unsigned long length;
+        getter SpeechSynthesisVoice item(unsigned long index);
+    };
+};
+
index dd87f18..7169062 100644 (file)
@@ -413,4 +413,696 @@ interface Console {
     </Operation>\r
   </Interface>\r
   </Module>\r
+  <Module name="SpeechSynthesis" id="::SpeechSynthesis">\r
+   <webidl>module SpeechSynthesis {\r
+[Constructor]\r
+interface SpeechRecognition : <ref>EventTarget</ref> {\r
+    attribute <ref>SpeechGrammarList</ref> grammars;\r
+    attribute DOMString lang;\r
+    attribute boolean continuous;\r
+    attribute boolean interimResults;\r
+    attribute unsigned long maxAlternatives;\r
+    attribute DOMString serviceURI;\r
+\r
+    void start();\r
+    void stop();\r
+    void abort();\r
+\r
+    attribute <ref>EventHandler</ref> onaudiostart;\r
+    attribute <ref>EventHandler</ref> onsoundstart;\r
+    attribute <ref>EventHandler</ref> onspeechstart;\r
+    attribute <ref>EventHandler</ref> onspeechend;\r
+    attribute <ref>EventHandler</ref> onsoundend;\r
+    attribute <ref>EventHandler</ref> onaudioend;\r
+    attribute <ref>EventHandler</ref> onresult;\r
+    attribute <ref>EventHandler</ref> onnomatch;\r
+    attribute <ref>EventHandler</ref> onerror;\r
+    attribute <ref>EventHandler</ref> onstart;\r
+    attribute <ref>EventHandler</ref> onend;\r
+};\r
+\r
+enum ErrorCode {\r
+    &quot;no-speech&quot;,\r
+    &quot;aborted&quot;,\r
+    &quot;audio-capture&quot;,\r
+    &quot;network&quot;,\r
+    &quot;not-allowed&quot;,\r
+    &quot;service-not-allowed&quot;,\r
+    &quot;bad-grammar&quot;,\r
+    &quot;language-not-supported&quot;\r
+};\r
+\r
+interface SpeechRecognitionError : <ref>Event</ref> {\r
+    readonly attribute <ref>ErrorCode</ref> error;\r
+    readonly attribute DOMString message;\r
+};\r
+\r
+interface SpeechRecognitionAlternative {\r
+    readonly attribute DOMString transcript;\r
+    readonly attribute float confidence;\r
+};\r
+\r
+interface SpeechRecognitionResult {\r
+    readonly attribute unsigned long length;\r
+    getter <ref>SpeechRecognitionAlternative</ref> item(unsigned long index);\r
+    readonly attribute boolean final;\r
+};\r
+\r
+interface SpeechRecognitionResultList {\r
+    readonly attribute unsigned long length;\r
+    getter <ref>SpeechRecognitionResult</ref> item(unsigned long index);\r
+};\r
+\r
+interface SpeechRecognitionEvent : <ref>Event</ref> {\r
+    readonly attribute unsigned long resultIndex;\r
+    readonly attribute <ref>SpeechRecognitionResultList</ref> results;\r
+    readonly attribute any interpretation;\r
+    readonly attribute <ref>Document</ref> emma;\r
+};\r
+\r
+[Constructor]\r
+interface SpeechGrammar {\r
+    attribute DOMString src;\r
+    attribute float weight;\r
+};\r
+\r
+[Constructor]\r
+interface SpeechGrammarList {\r
+    readonly attribute unsigned long length;\r
+    getter <ref>SpeechGrammar</ref> item(unsigned long index);\r
+    void addFromURI(DOMString src,\r
+                    optional float weight);\r
+    void addFromString(DOMString string,\r
+                       optional float weight);\r
+};\r
+\r
+interface SpeechSynthesis {\r
+    readonly attribute boolean pending;\r
+    readonly attribute boolean speaking;\r
+    readonly attribute boolean paused;\r
+\r
+    void speak(<ref>SpeechSynthesisUtterance</ref> utterance);\r
+    void cancel();\r
+    void pause();\r
+    void resume();\r
+    <ref>SpeechSynthesisVoiceList</ref> getVoices();\r
+};\r
+\r
+[NoInterfaceObject]\r
+interface SpeechSynthesisGetter {\r
+    readonly attribute <ref>SpeechSynthesis</ref> speechSynthesis;\r
+};\r
+\r
+<ref>Window</ref> implements <ref>SpeechSynthesisGetter</ref>;\r
+\r
+[Constructor, Constructor(DOMString text)]\r
+interface SpeechSynthesisUtterance : <ref>EventTarget</ref> {\r
+    attribute DOMString text;\r
+    attribute DOMString lang;\r
+    attribute DOMString voiceURI;\r
+    attribute float volume;\r
+    attribute float rate;\r
+    attribute float pitch;\r
+\r
+    attribute <ref>EventHandler</ref> onstart;\r
+    attribute <ref>EventHandler</ref> onend;\r
+    attribute <ref>EventHandler</ref> onerror;\r
+    attribute <ref>EventHandler</ref> onpause;\r
+    attribute <ref>EventHandler</ref> onresume;\r
+    attribute <ref>EventHandler</ref> onmark;\r
+    attribute <ref>EventHandler</ref> onboundary;\r
+};\r
+\r
+interface SpeechSynthesisEvent : <ref>Event</ref> {\r
+    readonly attribute unsigned long charIndex;\r
+    readonly attribute float elapsedTime;\r
+    readonly attribute DOMString name;\r
+};\r
+\r
+interface SpeechSynthesisVoice {\r
+    readonly attribute DOMString voiceURI;\r
+    readonly attribute DOMString name;\r
+    readonly attribute DOMString lang;\r
+    readonly attribute boolean localService;\r
+};\r
+\r
+interface SpeechSynthesisVoiceList {\r
+    readonly attribute unsigned long length;\r
+    getter <ref>SpeechSynthesisVoice</ref> item(unsigned long index);\r
+};</webidl>\r
+  <Interface name="SpeechRecognition" id="::SpeechRecognition">\r
+    <webidl>[Constructor]\r
+interface SpeechRecognition : <ref>EventTarget</ref> {\r
+    attribute <ref>SpeechGrammarList</ref> grammars;\r
+    attribute DOMString lang;\r
+    attribute boolean continuous;\r
+    attribute boolean interimResults;\r
+    attribute unsigned long maxAlternatives;\r
+    attribute DOMString serviceURI;\r
+\r
+    void start();\r
+    void stop();\r
+    void abort();\r
+\r
+    attribute <ref>EventHandler</ref> onaudiostart;\r
+    attribute <ref>EventHandler</ref> onsoundstart;\r
+    attribute <ref>EventHandler</ref> onspeechstart;\r
+    attribute <ref>EventHandler</ref> onspeechend;\r
+    attribute <ref>EventHandler</ref> onsoundend;\r
+    attribute <ref>EventHandler</ref> onaudioend;\r
+    attribute <ref>EventHandler</ref> onresult;\r
+    attribute <ref>EventHandler</ref> onnomatch;\r
+    attribute <ref>EventHandler</ref> onerror;\r
+    attribute <ref>EventHandler</ref> onstart;\r
+    attribute <ref>EventHandler</ref> onend;\r
+};</webidl>\r
+    <ExtendedAttributeList>\r
+      <ExtendedAttribute name="Constructor">\r
+        <webidl>Constructor</webidl>\r
+      </ExtendedAttribute>\r
+    </ExtendedAttributeList>\r
+    <InterfaceInheritance>\r
+      <Name name="EventTarget"/>\r
+    </InterfaceInheritance>\r
+    <Attribute name="grammars" id="::SpeechRecognition::grammars">\r
+      <webidl>    attribute <ref>SpeechGrammarList</ref> grammars;</webidl>\r
+      <Type name="SpeechGrammarList"/>\r
+    </Attribute>\r
+    <Attribute name="lang" id="::SpeechRecognition::lang">\r
+      <webidl>    attribute DOMString lang;</webidl>\r
+      <Type type="DOMString"/>\r
+    </Attribute>\r
+    <Attribute name="continuous" id="::SpeechRecognition::continuous">\r
+      <webidl>    attribute boolean continuous;</webidl>\r
+      <Type type="boolean"/>\r
+    </Attribute>\r
+    <Attribute name="interimResults" id="::SpeechRecognition::interimResults">\r
+      <webidl>    attribute boolean interimResults;</webidl>\r
+      <Type type="boolean"/>\r
+    </Attribute>\r
+    <Attribute name="maxAlternatives" id="::SpeechRecognition::maxAlternatives">\r
+      <webidl>    attribute unsigned long maxAlternatives;</webidl>\r
+      <Type type="unsigned long"/>\r
+    </Attribute>\r
+    <Attribute name="serviceURI" id="::SpeechRecognition::serviceURI">\r
+      <webidl>    attribute DOMString serviceURI;</webidl>\r
+      <Type type="DOMString"/>\r
+    </Attribute>\r
+    <Operation name="start" id="::SpeechRecognition::start">\r
+      <webidl>    void start();</webidl>\r
+      <Type type="void"/>\r
+      <ArgumentList/>\r
+    </Operation>\r
+    <Operation name="stop" id="::SpeechRecognition::stop">\r
+      <webidl>    void stop();</webidl>\r
+      <Type type="void"/>\r
+      <ArgumentList/>\r
+    </Operation>\r
+    <Operation name="abort" id="::SpeechRecognition::abort">\r
+      <webidl>    void abort();</webidl>\r
+      <Type type="void"/>\r
+      <ArgumentList/>\r
+    </Operation>\r
+    <Attribute name="onaudiostart" id="::SpeechRecognition::onaudiostart">\r
+      <webidl>    attribute <ref>EventHandler</ref> onaudiostart;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onsoundstart" id="::SpeechRecognition::onsoundstart">\r
+      <webidl>    attribute <ref>EventHandler</ref> onsoundstart;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onspeechstart" id="::SpeechRecognition::onspeechstart">\r
+      <webidl>    attribute <ref>EventHandler</ref> onspeechstart;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onspeechend" id="::SpeechRecognition::onspeechend">\r
+      <webidl>    attribute <ref>EventHandler</ref> onspeechend;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onsoundend" id="::SpeechRecognition::onsoundend">\r
+      <webidl>    attribute <ref>EventHandler</ref> onsoundend;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onaudioend" id="::SpeechRecognition::onaudioend">\r
+      <webidl>    attribute <ref>EventHandler</ref> onaudioend;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onresult" id="::SpeechRecognition::onresult">\r
+      <webidl>    attribute <ref>EventHandler</ref> onresult;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onnomatch" id="::SpeechRecognition::onnomatch">\r
+      <webidl>    attribute <ref>EventHandler</ref> onnomatch;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onerror" id="::SpeechRecognition::onerror">\r
+      <webidl>    attribute <ref>EventHandler</ref> onerror;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onstart" id="::SpeechRecognition::onstart">\r
+      <webidl>    attribute <ref>EventHandler</ref> onstart;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onend" id="::SpeechRecognition::onend">\r
+      <webidl>    attribute <ref>EventHandler</ref> onend;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+  </Interface>\r
+  <Enum name="ErrorCode" id="::ErrorCode">\r
+    <webidl>enum ErrorCode {\r
+    &quot;no-speech&quot;,\r
+    &quot;aborted&quot;,\r
+    &quot;audio-capture&quot;,\r
+    &quot;network&quot;,\r
+    &quot;not-allowed&quot;,\r
+    &quot;service-not-allowed&quot;,\r
+    &quot;bad-grammar&quot;,\r
+    &quot;language-not-supported&quot;\r
+};</webidl>\r
+    <EnumValue stringvalue="no-speech">\r
+      <webidl>    &quot;no-speech</webidl>\r
+    </EnumValue>\r
+    <EnumValue stringvalue="aborted">\r
+      <webidl>    &quot;aborted</webidl>\r
+    </EnumValue>\r
+    <EnumValue stringvalue="audio-capture">\r
+      <webidl>    &quot;audio-capture</webidl>\r
+    </EnumValue>\r
+    <EnumValue stringvalue="network">\r
+      <webidl>    &quot;network</webidl>\r
+    </EnumValue>\r
+    <EnumValue stringvalue="not-allowed">\r
+      <webidl>    &quot;not-allowed</webidl>\r
+    </EnumValue>\r
+    <EnumValue stringvalue="service-not-allowed">\r
+      <webidl>    &quot;service-not-allowed</webidl>\r
+    </EnumValue>\r
+    <EnumValue stringvalue="bad-grammar">\r
+      <webidl>    &quot;bad-grammar</webidl>\r
+    </EnumValue>\r
+    <EnumValue stringvalue="language-not-supported">\r
+      <webidl>    &quot;language-not-supported</webidl>\r
+    </EnumValue>\r
+  </Enum>\r
+  <Interface name="SpeechRecognitionError" id="::SpeechRecognitionError">\r
+    <webidl>interface SpeechRecognitionError : <ref>Event</ref> {\r
+    readonly attribute <ref>ErrorCode</ref> error;\r
+    readonly attribute DOMString message;\r
+};</webidl>\r
+    <InterfaceInheritance>\r
+      <Name name="Event"/>\r
+    </InterfaceInheritance>\r
+    <Attribute readonly="readonly" name="error" id="::SpeechRecognitionError::error">\r
+      <webidl>    readonly attribute <ref>ErrorCode</ref> error;</webidl>\r
+      <Type name="ErrorCode"/>\r
+    </Attribute>\r
+    <Attribute readonly="readonly" name="message" id="::SpeechRecognitionError::message">\r
+      <webidl>    readonly attribute DOMString message;</webidl>\r
+      <Type type="DOMString"/>\r
+    </Attribute>\r
+  </Interface>\r
+  <Interface name="SpeechRecognitionAlternative" id="::SpeechRecognitionAlternative">\r
+    <webidl>interface SpeechRecognitionAlternative {\r
+    readonly attribute DOMString transcript;\r
+    readonly attribute float confidence;\r
+};</webidl>\r
+    <Attribute readonly="readonly" name="transcript" id="::SpeechRecognitionAlternative::transcript">\r
+      <webidl>    readonly attribute DOMString transcript;</webidl>\r
+      <Type type="DOMString"/>\r
+    </Attribute>\r
+    <Attribute readonly="readonly" name="confidence" id="::SpeechRecognitionAlternative::confidence">\r
+      <webidl>    readonly attribute float confidence;</webidl>\r
+      <Type type="float"/>\r
+    </Attribute>\r
+  </Interface>\r
+  <Interface name="SpeechRecognitionResult" id="::SpeechRecognitionResult">\r
+    <webidl>interface SpeechRecognitionResult {\r
+    readonly attribute unsigned long length;\r
+    getter <ref>SpeechRecognitionAlternative</ref> item(unsigned long index);\r
+    readonly attribute boolean final;\r
+};</webidl>\r
+    <Attribute readonly="readonly" name="length" id="::SpeechRecognitionResult::length">\r
+      <webidl>    readonly attribute unsigned long length;</webidl>\r
+      <Type type="unsigned long"/>\r
+    </Attribute>\r
+    <Operation getter="getter" name="item" id="::SpeechRecognitionResult::item">\r
+      <webidl>    getter <ref>SpeechRecognitionAlternative</ref> item(unsigned long index);</webidl>\r
+      <Type name="SpeechRecognitionAlternative"/>\r
+      <ArgumentList>\r
+        <Argument name="index">\r
+          <Type type="unsigned long"/>\r
+        </Argument>\r
+      </ArgumentList>\r
+    </Operation>\r
+    <Attribute readonly="readonly" name="final" id="::SpeechRecognitionResult::final">\r
+      <webidl>    readonly attribute boolean final;</webidl>\r
+      <Type type="boolean"/>\r
+    </Attribute>\r
+  </Interface>\r
+  <Interface name="SpeechRecognitionResultList" id="::SpeechRecognitionResultList">\r
+    <webidl>interface SpeechRecognitionResultList {\r
+    readonly attribute unsigned long length;\r
+    getter <ref>SpeechRecognitionResult</ref> item(unsigned long index);\r
+};</webidl>\r
+    <Attribute readonly="readonly" name="length" id="::SpeechRecognitionResultList::length">\r
+      <webidl>    readonly attribute unsigned long length;</webidl>\r
+      <Type type="unsigned long"/>\r
+    </Attribute>\r
+    <Operation getter="getter" name="item" id="::SpeechRecognitionResultList::item">\r
+      <webidl>    getter <ref>SpeechRecognitionResult</ref> item(unsigned long index);</webidl>\r
+      <Type name="SpeechRecognitionResult"/>\r
+      <ArgumentList>\r
+        <Argument name="index">\r
+          <Type type="unsigned long"/>\r
+        </Argument>\r
+      </ArgumentList>\r
+    </Operation>\r
+  </Interface>\r
+  <Interface name="SpeechRecognitionEvent" id="::SpeechRecognitionEvent">\r
+    <webidl>interface SpeechRecognitionEvent : <ref>Event</ref> {\r
+    readonly attribute unsigned long resultIndex;\r
+    readonly attribute <ref>SpeechRecognitionResultList</ref> results;\r
+    readonly attribute any interpretation;\r
+    readonly attribute <ref>Document</ref> emma;\r
+};</webidl>\r
+    <InterfaceInheritance>\r
+      <Name name="Event"/>\r
+    </InterfaceInheritance>\r
+    <Attribute readonly="readonly" name="resultIndex" id="::SpeechRecognitionEvent::resultIndex">\r
+      <webidl>    readonly attribute unsigned long resultIndex;</webidl>\r
+      <Type type="unsigned long"/>\r
+    </Attribute>\r
+    <Attribute readonly="readonly" name="results" id="::SpeechRecognitionEvent::results">\r
+      <webidl>    readonly attribute <ref>SpeechRecognitionResultList</ref> results;</webidl>\r
+      <Type name="SpeechRecognitionResultList"/>\r
+    </Attribute>\r
+    <Attribute readonly="readonly" name="interpretation" id="::SpeechRecognitionEvent::interpretation">\r
+      <webidl>    readonly attribute any interpretation;</webidl>\r
+      <Type type="any"/>\r
+    </Attribute>\r
+    <Attribute readonly="readonly" name="emma" id="::SpeechRecognitionEvent::emma">\r
+      <webidl>    readonly attribute <ref>Document</ref> emma;</webidl>\r
+      <Type name="Document"/>\r
+    </Attribute>\r
+  </Interface>\r
+  <Interface name="SpeechGrammar" id="::SpeechGrammar">\r
+    <webidl>[Constructor]\r
+interface SpeechGrammar {\r
+    attribute DOMString src;\r
+    attribute float weight;\r
+};</webidl>\r
+    <ExtendedAttributeList>\r
+      <ExtendedAttribute name="Constructor">\r
+        <webidl>Constructor</webidl>\r
+      </ExtendedAttribute>\r
+    </ExtendedAttributeList>\r
+    <Attribute name="src" id="::SpeechGrammar::src">\r
+      <webidl>    attribute DOMString src;</webidl>\r
+      <Type type="DOMString"/>\r
+    </Attribute>\r
+    <Attribute name="weight" id="::SpeechGrammar::weight">\r
+      <webidl>    attribute float weight;</webidl>\r
+      <Type type="float"/>\r
+    </Attribute>\r
+  </Interface>\r
+  <Interface name="SpeechGrammarList" id="::SpeechGrammarList">\r
+    <webidl>[Constructor]\r
+interface SpeechGrammarList {\r
+    readonly attribute unsigned long length;\r
+    getter <ref>SpeechGrammar</ref> item(unsigned long index);\r
+    void addFromURI(DOMString src,\r
+                    optional float weight);\r
+    void addFromString(DOMString string,\r
+                       optional float weight);\r
+};</webidl>\r
+    <ExtendedAttributeList>\r
+      <ExtendedAttribute name="Constructor">\r
+        <webidl>Constructor</webidl>\r
+      </ExtendedAttribute>\r
+    </ExtendedAttributeList>\r
+    <Attribute readonly="readonly" name="length" id="::SpeechGrammarList::length">\r
+      <webidl>    readonly attribute unsigned long length;</webidl>\r
+      <Type type="unsigned long"/>\r
+    </Attribute>\r
+    <Operation getter="getter" name="item" id="::SpeechGrammarList::item">\r
+      <webidl>    getter <ref>SpeechGrammar</ref> item(unsigned long index);</webidl>\r
+      <Type name="SpeechGrammar"/>\r
+      <ArgumentList>\r
+        <Argument name="index">\r
+          <Type type="unsigned long"/>\r
+        </Argument>\r
+      </ArgumentList>\r
+    </Operation>\r
+    <Operation name="addFromURI" id="::SpeechGrammarList::addFromURI">\r
+      <webidl>    void addFromURI(DOMString src,\r
+                    optional float weight);</webidl>\r
+      <Type type="void"/>\r
+      <ArgumentList>\r
+        <Argument name="src">\r
+          <Type type="DOMString"/>\r
+        </Argument>\r
+        <Argument optional="optional" name="weight">\r
+          <Type type="float"/>\r
+        </Argument>\r
+      </ArgumentList>\r
+    </Operation>\r
+    <Operation name="addFromString" id="::SpeechGrammarList::addFromString">\r
+      <webidl>    void addFromString(DOMString string,\r
+                       optional float weight);</webidl>\r
+      <Type type="void"/>\r
+      <ArgumentList>\r
+        <Argument name="string">\r
+          <Type type="DOMString"/>\r
+        </Argument>\r
+        <Argument optional="optional" name="weight">\r
+          <Type type="float"/>\r
+        </Argument>\r
+      </ArgumentList>\r
+    </Operation>\r
+  </Interface>\r
+  <Interface name="SpeechSynthesis" id="::SpeechSynthesis">\r
+    <webidl>interface SpeechSynthesis {\r
+    readonly attribute boolean pending;\r
+    readonly attribute boolean speaking;\r
+    readonly attribute boolean paused;\r
+\r
+    void speak(<ref>SpeechSynthesisUtterance</ref> utterance);\r
+    void cancel();\r
+    void pause();\r
+    void resume();\r
+    <ref>SpeechSynthesisVoiceList</ref> getVoices();\r
+};</webidl>\r
+    <Attribute readonly="readonly" name="pending" id="::SpeechSynthesis::pending">\r
+      <webidl>    readonly attribute boolean pending;</webidl>\r
+      <Type type="boolean"/>\r
+    </Attribute>\r
+    <Attribute readonly="readonly" name="speaking" id="::SpeechSynthesis::speaking">\r
+      <webidl>    readonly attribute boolean speaking;</webidl>\r
+      <Type type="boolean"/>\r
+    </Attribute>\r
+    <Attribute readonly="readonly" name="paused" id="::SpeechSynthesis::paused">\r
+      <webidl>    readonly attribute boolean paused;</webidl>\r
+      <Type type="boolean"/>\r
+    </Attribute>\r
+    <Operation name="speak" id="::SpeechSynthesis::speak">\r
+      <webidl>    void speak(<ref>SpeechSynthesisUtterance</ref> utterance);</webidl>\r
+      <Type type="void"/>\r
+      <ArgumentList>\r
+        <Argument name="utterance">\r
+          <Type name="SpeechSynthesisUtterance"/>\r
+        </Argument>\r
+      </ArgumentList>\r
+    </Operation>\r
+    <Operation name="cancel" id="::SpeechSynthesis::cancel">\r
+      <webidl>    void cancel();</webidl>\r
+      <Type type="void"/>\r
+      <ArgumentList/>\r
+    </Operation>\r
+    <Operation name="pause" id="::SpeechSynthesis::pause">\r
+      <webidl>    void pause();</webidl>\r
+      <Type type="void"/>\r
+      <ArgumentList/>\r
+    </Operation>\r
+    <Operation name="resume" id="::SpeechSynthesis::resume">\r
+      <webidl>    void resume();</webidl>\r
+      <Type type="void"/>\r
+      <ArgumentList/>\r
+    </Operation>\r
+    <Operation name="getVoices" id="::SpeechSynthesis::getVoices">\r
+      <webidl>    <ref>SpeechSynthesisVoiceList</ref> getVoices();</webidl>\r
+      <Type name="SpeechSynthesisVoiceList"/>\r
+      <ArgumentList/>\r
+    </Operation>\r
+  </Interface>\r
+  <Interface name="SpeechSynthesisGetter" id="::SpeechSynthesisGetter">\r
+    <webidl>[NoInterfaceObject]\r
+interface SpeechSynthesisGetter {\r
+    readonly attribute <ref>SpeechSynthesis</ref> speechSynthesis;\r
+};</webidl>\r
+    <ExtendedAttributeList>\r
+      <ExtendedAttribute name="NoInterfaceObject">\r
+        <webidl>NoInterfaceObject</webidl>\r
+      </ExtendedAttribute>\r
+    </ExtendedAttributeList>\r
+    <Attribute readonly="readonly" name="speechSynthesis" id="::SpeechSynthesisGetter::speechSynthesis">\r
+      <webidl>    readonly attribute <ref>SpeechSynthesis</ref> speechSynthesis;</webidl>\r
+      <Type name="SpeechSynthesis"/>\r
+    </Attribute>\r
+  </Interface>\r
+  <Implements name1="Window" name2="SpeechSynthesisGetter">\r
+    <webidl><ref>Window</ref> implements <ref>SpeechSynthesisGetter</ref>;</webidl>\r
+  </Implements>\r
+  <Interface name="SpeechSynthesisUtterance" id="::SpeechSynthesisUtterance">\r
+    <webidl>[Constructor, Constructor(DOMString text)]\r
+interface SpeechSynthesisUtterance : <ref>EventTarget</ref> {\r
+    attribute DOMString text;\r
+    attribute DOMString lang;\r
+    attribute DOMString voiceURI;\r
+    attribute float volume;\r
+    attribute float rate;\r
+    attribute float pitch;\r
+\r
+    attribute <ref>EventHandler</ref> onstart;\r
+    attribute <ref>EventHandler</ref> onend;\r
+    attribute <ref>EventHandler</ref> onerror;\r
+    attribute <ref>EventHandler</ref> onpause;\r
+    attribute <ref>EventHandler</ref> onresume;\r
+    attribute <ref>EventHandler</ref> onmark;\r
+    attribute <ref>EventHandler</ref> onboundary;\r
+};</webidl>\r
+    <ExtendedAttributeList>\r
+      <ExtendedAttribute name="Constructor">\r
+        <webidl>Constructor</webidl>\r
+      </ExtendedAttribute>\r
+      <ExtendedAttribute name="Constructor">\r
+        <webidl> Constructor(DOMString text)</webidl>\r
+        <ArgumentList>\r
+          <Argument name="text">\r
+            <Type type="DOMString"/>\r
+          </Argument>\r
+        </ArgumentList>\r
+      </ExtendedAttribute>\r
+    </ExtendedAttributeList>\r
+    <InterfaceInheritance>\r
+      <Name name="EventTarget"/>\r
+    </InterfaceInheritance>\r
+    <Attribute name="text" id="::SpeechSynthesisUtterance::text">\r
+      <webidl>    attribute DOMString text;</webidl>\r
+      <Type type="DOMString"/>\r
+    </Attribute>\r
+    <Attribute name="lang" id="::SpeechSynthesisUtterance::lang">\r
+      <webidl>    attribute DOMString lang;</webidl>\r
+      <Type type="DOMString"/>\r
+    </Attribute>\r
+    <Attribute name="voiceURI" id="::SpeechSynthesisUtterance::voiceURI">\r
+      <webidl>    attribute DOMString voiceURI;</webidl>\r
+      <Type type="DOMString"/>\r
+    </Attribute>\r
+    <Attribute name="volume" id="::SpeechSynthesisUtterance::volume">\r
+      <webidl>    attribute float volume;</webidl>\r
+      <Type type="float"/>\r
+    </Attribute>\r
+    <Attribute name="rate" id="::SpeechSynthesisUtterance::rate">\r
+      <webidl>    attribute float rate;</webidl>\r
+      <Type type="float"/>\r
+    </Attribute>\r
+    <Attribute name="pitch" id="::SpeechSynthesisUtterance::pitch">\r
+      <webidl>    attribute float pitch;</webidl>\r
+      <Type type="float"/>\r
+    </Attribute>\r
+    <Attribute name="onstart" id="::SpeechSynthesisUtterance::onstart">\r
+      <webidl>    attribute <ref>EventHandler</ref> onstart;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onend" id="::SpeechSynthesisUtterance::onend">\r
+      <webidl>    attribute <ref>EventHandler</ref> onend;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onerror" id="::SpeechSynthesisUtterance::onerror">\r
+      <webidl>    attribute <ref>EventHandler</ref> onerror;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onpause" id="::SpeechSynthesisUtterance::onpause">\r
+      <webidl>    attribute <ref>EventHandler</ref> onpause;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onresume" id="::SpeechSynthesisUtterance::onresume">\r
+      <webidl>    attribute <ref>EventHandler</ref> onresume;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onmark" id="::SpeechSynthesisUtterance::onmark">\r
+      <webidl>    attribute <ref>EventHandler</ref> onmark;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+    <Attribute name="onboundary" id="::SpeechSynthesisUtterance::onboundary">\r
+      <webidl>    attribute <ref>EventHandler</ref> onboundary;</webidl>\r
+      <Type name="EventHandler"/>\r
+    </Attribute>\r
+  </Interface>\r
+  <Interface name="SpeechSynthesisEvent" id="::SpeechSynthesisEvent">\r
+    <webidl>interface SpeechSynthesisEvent : <ref>Event</ref> {\r
+    readonly attribute unsigned long charIndex;\r
+    readonly attribute float elapsedTime;\r
+    readonly attribute DOMString name;\r
+};</webidl>\r
+    <InterfaceInheritance>\r
+      <Name name="Event"/>\r
+    </InterfaceInheritance>\r
+    <Attribute readonly="readonly" name="charIndex" id="::SpeechSynthesisEvent::charIndex">\r
+      <webidl>    readonly attribute unsigned long charIndex;</webidl>\r
+      <Type type="unsigned long"/>\r
+    </Attribute>\r
+    <Attribute readonly="readonly" name="elapsedTime" id="::SpeechSynthesisEvent::elapsedTime">\r
+      <webidl>    readonly attribute float elapsedTime;</webidl>\r
+      <Type type="float"/>\r
+    </Attribute>\r
+    <Attribute readonly="readonly" name="name" id="::SpeechSynthesisEvent::name">\r
+      <webidl>    readonly attribute DOMString name;</webidl>\r
+      <Type type="DOMString"/>\r
+    </Attribute>\r
+  </Interface>\r
+  <Interface name="SpeechSynthesisVoice" id="::SpeechSynthesisVoice">\r
+    <webidl>interface SpeechSynthesisVoice {\r
+    readonly attribute DOMString voiceURI;\r
+    readonly attribute DOMString name;\r
+    readonly attribute DOMString lang;\r
+    readonly attribute boolean localService;\r
+};</webidl>\r
+    <Attribute readonly="readonly" name="voiceURI" id="::SpeechSynthesisVoice::voiceURI">\r
+      <webidl>    readonly attribute DOMString voiceURI;</webidl>\r
+      <Type type="DOMString"/>\r
+    </Attribute>\r
+    <Attribute readonly="readonly" name="name" id="::SpeechSynthesisVoice::name">\r
+      <webidl>    readonly attribute DOMString name;</webidl>\r
+      <Type type="DOMString"/>\r
+    </Attribute>\r
+    <Attribute readonly="readonly" name="lang" id="::SpeechSynthesisVoice::lang">\r
+      <webidl>    readonly attribute DOMString lang;</webidl>\r
+      <Type type="DOMString"/>\r
+    </Attribute>\r
+    <Attribute readonly="readonly" name="localService" id="::SpeechSynthesisVoice::localService">\r
+      <webidl>    readonly attribute boolean localService;</webidl>\r
+      <Type type="boolean"/>\r
+    </Attribute>\r
+  </Interface>\r
+  <Interface name="SpeechSynthesisVoiceList" id="::SpeechSynthesisVoiceList">\r
+    <webidl>interface SpeechSynthesisVoiceList {\r
+    readonly attribute unsigned long length;\r
+    getter <ref>SpeechSynthesisVoice</ref> item(unsigned long index);\r
+};</webidl>\r
+    <Attribute readonly="readonly" name="length" id="::SpeechSynthesisVoiceList::length">\r
+      <webidl>    readonly attribute unsigned long length;</webidl>\r
+      <Type type="unsigned long"/>\r
+    </Attribute>\r
+    <Operation getter="getter" name="item" id="::SpeechSynthesisVoiceList::item">\r
+      <webidl>    getter <ref>SpeechSynthesisVoice</ref> item(unsigned long index);</webidl>\r
+      <Type name="SpeechSynthesisVoice"/>\r
+      <ArgumentList>\r
+        <Argument name="index">\r
+          <Type type="unsigned long"/>\r
+        </Argument>\r
+      </ArgumentList>\r
+    </Operation>\r
+  </Interface>\r
+ </Module>\r
 </Definitions>\r