Version: Jan 12, 2004
Contributors:
Copyright ©2004 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
The VoiceXML 2.0 Specification entered the Candidate Recommendation period on 28 January 2003.
The planned date for entering Proposed Recommendation is 30 January 2004. Preparation of an Implementation Report is a key criteria for moving beyond the Candidate Recommendation. This document describes the requirements for the Implementation Report and the process that the Voice Browser Working Group will follow in preparing the report.
During the CR period, the Working Group will carry out the following activities:
You are invited to contribute to the assessment of the W3C VoiceXML 2.0 Specification by participating in the Implementation Report process.
The VBWG established the following entrance criteria to Proposed Recommendation in the Request for CR:
Require implementations and testimonial statements for at least two VoiceXML User Agents supporting both ASR and DTMF.
(PUBLIC VOICE Lab, MTA SZTAKI, Team Teichenberg, Inde)
PublicVoiceXML (www.PublicVoiceXML.org) aims at providing first an open source implementation of W3C's VoiceXML 2.0 specifications and secondly at use cases for small radio stations, such as a phone based interview toolkit. Performing the W3C's implementation report procedure showed that we are covering a wide range of the tags. Speech recognition is not yet covered due to the challenge of multi-linguality in our European-Asian consortium, however we are supporting DTMF recognition for navigation. We are confident that our efforts help to disseminate best practices for VoiceXML applications and boost its usage at SMEs.
We believe that VoiceXML 2.0 provides a mature solution for voice- and telephony-based interfaces. The test suite was very well-prepared, and easy to perform. We think that VoiceXML can be the heart of powerful telephony applications even without the use of speech recognition. However, the test suite puts too much stress on the usage of speech recognition.
Vocalocity is pleased to submit its implementation report for the W3C VoiceXML 2.0 specification. Vocalocity's Voice Browser is a highly scalable, distributed speech platform that supports multiple operating platforms, multiple speech technologies and integrates into different telephony environments.
Vocalocity has found that the VoiceXML 2.0 specification is well-written and an important specification to be adopted as a worldwide standard for building speech based applications. The VoiceXML 2.0 specification allows companies to rapidly build portable applications that run on a variety of implementation platforms, at a lower cost than proprietary alternatives and provides unique capabilities not found in traditional IVR platforms.
Vocalocity believes that the VoiceXML 2.0 specification is concise and sufficiently documented and should be formally adopted by the W3C.
Voxpilot Ltd has implemented the W3C VoiceXML 2.0 specification in full in its SpeechSuite platform, a high performance, native implementation of W3C Speech Interface Framework technologies. Tailored for the international market, Voxpilot's implementation includes complete multilanguage and character encoding support.
Voxpilot has found the VoiceXML 2.0 specification to be a well-written, concise, and solid open standard. Through our voxBuilder hosting environment, we have offered timely implementations of VoiceXML to our European developer community, providing early support for each version as it has progressed through the W3C process. This has afforded us real implementation experience and allowed us to leverage the many benefits that W3C standardization has enabled, leading to the wide range of VoiceXML tools and applications currently supported on our platform.
The following table lists the assertions that were gleaned from the VoiceXML 2.0 Specification. The ID column uniquely identifies the assertion and links to a corresponding test. The Spec column identifies the section of the specification from which the assertion was derived. The Req column indicates whether or not the spec requires the platform to implement the feature described by the assertion. The Auto column indicates whether or not the associated test can be automated or requires manual execution. The Abstract column describes the assertion. The Results column tabulates the results submitted by the VoiceXML platform contributors enumerated in Section 6, Systems.
| ID | Spec | Req | Auto | Abstract | Results | ||
|---|---|---|---|---|---|---|---|
| Pass | Fail | N/I | |||||
| 1 | [1.2.5] | Yes. | Yes. | For each HTTP request, the interpreter identifies itself using the User-Agent header in the format "name/version". | 9 | 0 | 0 |
| 2 | [1.2.5] | Yes. | Yes. | The interpreter must be able to freely sequence TTS and audio output. | 8 | 1 | 0 |
| 7 | [1.2.5] | Yes. | Yes. | The interpreter must be able to receive speech recognition grammar data dynamically. | 9 | 0 | 0 |
| 8 | [1.2.5] | Yes. | No. | The interpreter must be able to record audio received from the user. | 8 | 1 | 0 |
| 11 | [1.3] | Yes. | Yes. | If a URI does not refer to a document, the current document is assumed. | 9 | 0 | 0 |
| 12 | [1.3] | Yes. | Yes. | If a URI does not refer to a dialog, the first dialog is assumed. | 9 | 0 | 0 |
| 18 | [1.3.1] | Yes. | Yes. | A menu contains choices that can define transitions when matched. | 9 | 0 | 0 |
| 19 | [1.3.1] | Yes. | Yes. | A subdialog invokes a new dialog that once done, returns to the original context. | 9 | 0 | 0 |
| 20 | [1.3.1] | Yes. | Yes. | Upon return to the calling context all variable instances, grammars, and state information are restored. | 9 | 0 | 0 |
| 24 | [1.3.3] | Yes. | Yes. | An application root document's variables are defined and reachable via the application scope upon the loading of a document that specifies it as the application root. | 9 | 0 | 0 |
| 25 | [1.3.3] | Yes. | Yes. | An application root document's variables are not reinitialized as the user transitions between documents that both specify it as the application root. | 9 | 0 | 0 |
| 26 | [1.3.3] | Yes. | Yes. | An application root document's variables are no longer reachable from the application scope when the user transitions to a document not in that application. | 9 | 0 | 0 |
| 27 | [1.3.3] | Yes. | Yes. | An application root document's grammars are active during each time the interpreter listens, until it is unloaded. | 9 | 0 | 0 |
| 28 | [1.3.4] | Yes. | Yes. | A dialog can receive input matching a single grammar such that no other grammars are active. | 8 | 1 | 0 |
| 29 | [1.3.4] | Yes. | Yes. | A dialog can receive input matching one of several active grammars. | 8 | 1 | 0 |
| 30 | [1.3.4] | Yes. | Yes. | A user can direct interpretation in scenarios where grammars outside the current dialog are active, by matching one of these grammars, at which point execution transitions to the dialog containing the matched grammar. | 8 | 1 | 0 |
| 32 | [1.3.5] | Yes. | Yes. | The platform can throw a semantic error upon encountering an error in VoiceXML semantics. | 9 | 0 | 0 |
| 36 | [1.3.5] | Yes. | Yes. | Catch elements are inherited by enclosing elements by copy. | 8 | 1 | 0 |
| 37 | [1.3.6] | Yes. | Yes. | A link specifies a grammar that is active whenever a user is in the scope of the link. | 8 | 1 | 0 |
| 41 | [1.5] | Yes. | Yes. | A document may have meta elements. | 9 | 0 | 0 |
| 42 | [1.5] | Yes. | Yes. | A document may have var elements. | 9 | 0 | 0 |
| 43 | [1.5] | Yes. | Yes. | A document may have script elements. | 9 | 0 | 0 |
| 44 | [1.5] | Yes. | Yes. | A document may have property elements. | 9 | 0 | 0 |
| 45 | [1.5] | Yes. | Yes. | A document may have catch elements. | 9 | 0 | 0 |
| 46 | [1.5] | Yes. | Yes. | A document may have link elements. | 9 | 0 | 0 |
| 48 | [1.5.1] | Yes. | Yes. | The next dialog is determined by the previous dialog. | 9 | 0 | 0 |
| 50 | [1.5.1] | Yes. | Yes. | The version attribute is required on the vxml tag. | 8 | 1 | 0 |
| 51 | [1.5.1] | Yes. | Yes. | The xmlns attribute is required on the vxml tag. | 7 | 2 | 0 |
| 52 | [1.5.1] | Yes. | Yes. | The xml:base attribute must be allowed on the vxml tag. | 8 | 0 | 1 |
| 53 | [1.5.1] | Yes. | Yes. | The xml:lang attribute must be allowed on the vxml tag. | 9 | 0 | 0 |
| 54 | [1.5.1] | Yes. | Yes. | The application attribute must be allowed on the vxml tag. | 9 | 0 | 0 |
| 55 | [1.5.1] | Yes. | No. | The value of xml:lang must be inherited down the document hierarchy by elements which also define the xml:lang attribute and do not have an alternative value. | 9 | 0 | 0 |
| 56 | [1.5.2] | Yes. | Yes. | The interpreter supports having an application root document and an application leaf document. | 9 | 0 | 0 |
| 58 | [1.5.2] | Yes. | Yes. | When a leaf document causes a root document to be loaded, none of the dialogs in the root document are executed. | 9 | 0 | 0 |
| 59 | [1.5.2] | Yes. | Yes. | Application root document variables are available for use by the leaf document. | 9 | 0 | 0 |
| 61 | [1.5.2] | Yes. | Yes. | Common ECMAScript code can be defined in the application root and used in leaf documents. | 9 | 0 | 0 |
| 62 | [1.5.2] | Yes. | Yes. | Application root catch handlers are default handlers for leaf documents. | 9 | 0 | 0 |
| 72 | [1.5.2] | Yes. | Yes. | When transitioning between two leaf documents that both specify the same application fully resolved URI then the transition must preserve the application root document's variables for use by the second leaf document. | 9 | 0 | 0 |
| 73 | [1.5.2] | Yes. | Yes. | A transition from an application leaf document to its own application root document caused by a 'goto' must preserve the application root document's variables for use by the root document. | 8 | 1 | 0 |
| 74 | [1.5.2] | Yes. | Yes. | If a transition occurs as the result of a submit between an application leaf document and its own application root document the application root document's variables must be re-initialized. | 7 | 2 | 0 |
| 75 | [1.5.2] | Yes. | Yes. | If a transition occurs from an application root document to itself then it must reinitialize the application root document's variables. | 8 | 1 | 0 |
| 76 | [1.5.2] | Yes. | Yes. | If a transition occurs from an application root document to a different application root document it must initialize the new application root document and use the new application root document's variables. | 9 | 0 | 0 |
| 77 | [1.5.2] | Yes. | Yes. | When a subdialog is invoked the original document and root document must be preserved for the completion of the subdialog. | 8 | 0 | 1 |
| 80 | [1.5.2] | Yes. | Yes. | If a document refers to a non-existent application root document, an error.badfetch event is thrown. | 9 | 0 | 0 |
| 81 | [1.5.2] | Yes. | Yes. | If an application root document specifies an application root element error.semantic is thrown. | 8 | 1 | 0 |
| 82 | [1.5.3] | Yes. | Yes. | A document may contain a subdialog element. | 9 | 0 | 0 |
| 83 | [1.5.3] | Yes. | Yes. | A document may contain a return element. | 9 | 0 | 0 |
| 84 | [1.5.3] | Yes. | Yes. | Subdialogs add a new executable context when they are invoked. | 9 | 0 | 0 |
| 85 | [1.5.3] | Yes. | Yes. | A subdialog can be a new dialog within the existing document. | 9 | 0 | 0 |
| 86 | [1.5.3] | Yes. | Yes. | A subdialog can be a new dialog within a new document. | 9 | 0 | 0 |
| 87 | [1.5.3] | Yes. | Yes. | A subdialog can be composed of several documents. | 9 | 0 | 0 |
| 88 | [1.5.3] | Yes. | Yes. | A subdialog's new context may itself invoke a subdialog. | 9 | 0 | 0 |
| 89 | [1.5.4] | No. | No. | A VoiceXML interpreter may continue executing even after it no longer has a connection to the user. | 7 | 2 | 0 |
| 93 | [2.1] | Yes. | Yes. | A form may contain form items, which are subdivided into input items ( <field>, <record>, <transfer>, <object>, <subdialog>) and control items (<block> and <initial>). | 9 | 0 | 0 |
| 96 | [2.1] | Yes. | Yes. | A form may contain <var> elements. | 9 | 0 | 0 |
| 97 | [2.1] | Yes. | Yes. | A form may contain event handlers: <catch>, <error>, <help>, <noinput>, and <nomatch>. | 9 | 0 | 0 |
| 98 | [2.1] | Yes. | Yes. | A form may contain <filled> elements. | 9 | 0 | 0 |
| 99 | [2.1] | Yes. | Yes. | A form may specify an id attribute. | 9 | 0 | 0 |
| 100 | [2.1] | Yes. | Yes. | A form may specify a scope attribute which specifies the default scope of the form's grammars. | 8 | 1 | 0 |
| 111 | [2.1.6.2.3] | Yes. | Yes. | FIA ends when it encounters a <goto>. | 9 | 0 | 0 |
| 112 | [2.1.6.2.3] | Yes. | Yes. | FIA ends when it encounters a <submit>. | 9 | 0 | 0 |
| 113 | [2.1.6.2.3] | Yes. | No. | FIA ends when it encounters an <exit>. | 9 | 0 | 0 |
| 114 | [2.1.6.2.3] | Yes. | Yes. | FIA ends when it encounters a <return>. | 9 | 0 | 0 |
| 138 | [2.1.6.1] | Yes. | Yes. | The value of the name attribute of a form item defines a dialog-scoped variable that holds the value of the form item, i.e., dialog.name is a reference to the form item variable. | 8 | 1 | 0 |
| 143 | [2.1.6.1] | Yes. | Yes. | A form item variable does not need to have a name attribute. | 8 | 1 | 0 |
| 145 | [2.1.5] | Yes. | Yes. | A form may have one or more initial form items. | 8 | 1 | 0 |
| 147 | [2.1.5] | Yes. | Yes. | If a form has a form level grammar, its input items can be filled in any order. | 7 | 2 | 0 |
| 148 | [2.1.5] | Yes. | Yes. | If a form has a form level grammar, more than one input item can be filled as a result of any one user utterance. | 8 | 1 | 0 |
| 149 | [2.1.5] | Yes. | Yes. | A form-level grammar can fill the following form items: <field>, <record>, <transfer>, <object> and <subdialog>. | 7 | 2 | 0 |
| 152 | [2.1.6.2.1] | Yes. | Yes. | For all types of form item, if the form item is assigned a value, that form item is not eligible to be visited by the FIA (unless/until it is subsequently set to undefined). | 7 | 1 | 1 |
| 153 | [2.1.6.2.1] | Yes. | Yes. | Using the clear tag on a form item variable will make it eligible to be visited by the FIA (provided that it does not have a cond attribute evaluating to false). | 8 | 1 | 0 |
| 154 | [2.1.6.2.1] | Yes. | Yes. | Using the goto nextitem will force the FIA to immediately transition to the chosen form item. | 9 | 0 | 0 |
| 163 | [2.1.6.2.1] | Yes. | Yes. | If the last main FIA loop resulted in a goto nextitem or goto expritem then the specified form item is selected. | 9 | 0 | 0 |
| 165 | [2.1.6.2.1] | Yes. | No. | If the last main FIA loop did not result in a goto nextitem and there is no form item which is eligible to be visited then an implicit exit is generated. | 9 | 0 | 0 |
| 183 | [2.1.6.2.3] | Yes. | Yes. | If in the collect phase an event occurs the appropriate catch element is identified and executed in the process phase. | 9 | 0 | 0 |
| 185 | [2.1.6.2.3] | Yes. | Yes. | If an event handler, executed after an event is thrown while processing a form item, transfers control with a <goto> or <submit>, the FIA resumes in the new form at the initialisation phase. | 9 | 0 | 0 |
| 186 | [2.1.6.2.3] | Yes. | Yes. | If an event handler, executed after an event is thrown while processing a form item, does not transfer control with a <goto> or <submit> the FIA resumes in the current form at the selection phase. | 9 | 0 | 0 |
| 187 | [2.1.6.2.3] | Yes. | Yes. | If an input from the collect phase matches a link than the associated link's transition is executed if present. | 9 | 0 | 0 |
| 188 | [2.1.6.2.3] | Yes. | Yes. | If an input from the collect phase matches a link than the associated link's event is thrown if present. | 9 | 0 | 0 |
| 189 | [2.1.6.2.3] | Yes. | Yes. | If a link throws an event the event is processed in the context of the current form item. | 9 | 0 | 0 |
| 190 | [2.1.6.2.3] | Yes. | Yes. | If an input matches a grammar in a form other than the current form, then the FIA terminates and the other form is initialized. | 8 | 1 | 0 |
| 192 | [2.1.6.2.3] | Yes. | Yes. | If an input matches a grammar in a form other than the current form then that form's FIA starts with this input in its process phase. | 8 | 1 | 0 |
| 195 | [2.1.6.2.3] | Yes. | Yes. | If an input matches a grammar in the form then each identified filled action is executed in document order. | 8 | 1 | 0 |
| 197 | [2.1.6.2.3] | Yes. | Yes. | While executing a filled, processing of filled actions continues after a <reprompt>. | 9 | 0 | 0 |
| 198 | [2.1.6.2.3] | Yes. | Yes. | If an event is thrown during the execution of a <filled>, event handler selection starts in the scope of the <filled>, which could be a form item or the form itself, and then proceeds outward by enclosing dialog scopes. | 9 | 0 | 0 |
| 200 | [2.2] | Yes. | Yes. | If a is given an attribute, the can be referenced using . | 8 | 1 | 0 |
| 201 | [2.2] | Yes. | Yes. | If a 's attribute is set to "dialog", the menu's grammars are active only when the user transitions into the menu. | 9 | 0 | 0 |
| 202 | [2.2] | Yes. | Yes. | If a 's attribute is set to "document", the menu's grammars are active over the whole document (or if the menu is in the application root document, any loaded document in the application). | 8 | 1 | 0 |
| 203 | [2.2] | Yes. | Yes. | If a 's attribute is set to "true", the first nine choices that have not explicitly specified a value for the attribute are given the implicit ones "1", "2", etc. Remaining choices that have not explicitly specified a value for the attribute will not be assigned DTMF values (and thus cannot be matched via a DTMF keypress). | 8 | 1 | 0 |
| 204 | [2.2] | Yes. | Yes. | The attribute of can specify a sequence of DTMF digits. Whitespace is ignored. | 8 | 1 | 0 |
| 205 | [2.2] | Yes. | Yes. | When the DTMF associated with the choice is matched, the appropriate action is taken based on the , , or attribute. | 8 | 1 | 0 |
| 206 | [2.2] | Yes. | Yes. | When the attribute of is set to "exact", or is not set and the attribute of its enclosing menu is set to "exact", or neither 's attribute nor 's is set, then the text of the element defines the exact phrase to be recognized. The user must say the entire phrase in the same order in which it occurs in the element phrase for matching this element. | 9 | 0 | 0 |
| 207 | [2.2] | No. | Yes. | When the attribute of is set to "approximate", or is not set and the attribute of its enclosing menu is set to "approximate", then the text of the element defines an approximate recognition phrase, as defined under "Grammar Generation" in section 2.2. | 8 | 0 | 1 |
| 208 | [2.2] | Yes. | Yes. | Exactly one of the , , , and attributes must be specified. Otherwise an error.badfetch event is thrown. | 8 | 1 | 0 |
| 209 | [2.2] | Yes. | Yes. | When the grammar associated with a element is matched, the URI associated with the "next" or "expr" element is fetched and transitioned to. | 9 | 0 | 0 |
| 210 | [2.2] | Yes. | Yes. | When the grammar associated with a element is matched, the event associated with the or attribute is thrown. | 8 | 1 | 0 |
| 211 | [2.2] | Yes. | Yes. | When "next" or the result of "expr" is not a correct URI, error.badfetch is thrown. | 8 | 1 | 0 |
| 212 | [2.2] | Yes. | Yes. | The attribute defines a string that is available as the variable _message inside a element that catches the event being thrown. | 8 | 1 | 0 |
| 213 | [2.2] | Yes. | Yes. | The attribute is an ECMAScript expression evaluating to the variable _message inside the element which catches the event being thrown. | 8 | 1 | 0 |
| 215 | [2.2] | Yes. | Yes. | If a element is specified in , then the external grammar is used instead of an automatically generated grammar. | 8 | 1 | 0 |
| 216 | [2.2] | Yes. | No. | The enumerate element without content inside a prompt lists all the choices, following the order in which they appear in the menu. | 8 | 1 | 0 |
| 217 | [2.2] | Yes. | No. | The enumerate element with content defines a template specifier that will list all the choices. Two special variables are defined | 8 | 1 | 0 |
| 218 | [2.2] | Yes. | No. | An enumerate element can be used inside prompts associated with a menu element. | 8 | 1 | 0 |
| 219 | [2.2] | Yes. | No. | An enumerate element can be used inside catch element elements associated with a menu element. | 6 | 3 | 0 |
| 220 | [2.2] | Yes. | No. | An enumerate element can be used inside prompts associated with a field element that contain elements. | 8 | 1 | 0 |
| 221 | [2.2] | Yes. | No. | An enumerate element can be used inside catch element elements associated with a field element that contain option elements. | 6 | 3 | 0 |
| 222 | [2.2] | Yes. | Yes. | If an enumerate element is used elsewhere, an error.semantic event is thrown. | 6 | 3 | 0 |
| 223 | [2.2] | Yes. | Yes. | Grammar matches within will update the application.lastresult$ array. | 8 | 1 | 0 |
| 224 | [2.2] | Yes. | No. | If the event handler called after matching a with an or attribute does not cause the interpreter to exit or transition control, then the FIA will clear the form item variable of the menu's anonymous field, causing the menu to be executed again. | 8 | 1 | 0 |
| 232 | [2.3.1] | Yes. | Yes. | The variable associated with the attribute of the holds the recognition result. | 8 | 1 | 0 |
| 233 | [2.3.1] | Yes. | Yes. | The named variable associated with the must be unique among form items in the ; otherwise, error.badfetch is thrown. | 8 | 0 | 1 |
| 234 | [2.3.1] | Yes. | Yes. | If specified, the value of the attribute is evaluated and serves as the form item variable's initial value. | 9 | 0 | 0 |
| 235 | [2.3.1] | Yes. | Yes. | The default value of the attribute is ECMAScript undefined. | 9 | 0 | 0 |
| 236 | [2.3.1] | Yes. | Yes. | If the form item is initialized to a value via evaluation of the attribute, the form item will not be visited unless the form item variable is cleared. | 9 | 0 | 0 |
| 237 | [2.3.1] | Yes. | Yes. | If the attribute is present and its value evaluates to boolean false, the is not visited. | 8 | 1 | 0 |
| 238 | [2.3.1] | Yes. | Yes. | The form item can also be visited if the attribute is not specified. | 9 | 0 | 0 |
| 239 | [2.3.1] | No. | Yes. | The attribute, if present, specifies the name of one of the following builtin grammar types from Appendix P: boolean, date, digits, currency, number, phone, time. | 8 | 1 | 0 |
| 240 | [2.3.1] | Yes. | Yes. | The value of the attribute defines the name of the grammar slot used to populate the form item variable of the . | 8 | 1 | 0 |
| 241 | [2.3.1] | Yes. | Yes. | If the attribute is absent, the interpreter uses the value associated with the attribute of the field to map the grammar slot to the form item variable. | 8 | 1 | 0 |
| 242 | [2.3.1] | Yes. | Yes. | If the value of the attribute is false, all active grammars are turned on while collecting this . | 7 | 2 | 0 |
| 243 | [2.3.1] | Yes. | Yes. | If the value of the attribute is true, then only the field's grammars are enabled, and all other grammars are temporarily disabled. | 7 | 2 | 0 |
| 244 | [2.3.1] | Yes. | Yes. | The element exposes a shadow variables named confidence, utterance, inputmode, and interpretation. The values of the utterance and inputmode shadow variables correspond to the values of the corresponding properties of the first object in the application-scoped lastresult$ array. | 7 | 2 | 0 |
| 245 | [2.3.1] | Yes. | Yes. | The confidence shadow variable is the confidence level for the name field of this interpretation and may range from 0.0-1.0. A value of 0.0 indicates minimum confidence, and a value of 1.0 indicates maximum confidence. | 9 | 0 | 0 |
| 246 | [2.3.1.1] | Yes. | Yes. | A field may contain a grammar element whose attribute can specify an absolute or relative URI. | 7 | 2 | 0 |
| 247 | [2.3.1.1] | Yes. | Yes. | A grammar can be specified inline. | 9 | 0 | 0 |
| 248 | [2.3.1.1] | Yes. | Yes. | error.badfetch is thrown if a grammar specifies a attribute and an inline grammar. | 9 | 0 | 0 |
| 250 | [2.3.1.2] | No. | Yes. | A builtin URI of the form "builtin:grammar/<type>" references a builtin speech grammar. | 8 | 1 | 0 |
| 251 | [2.3.1.2] | No. | Yes. | [optional] A builtin URI of the form "builtin:dtmf/<type>" references a builtin DTMF grammar. | 8 | 1 | 0 |
| 252 | [2.3.1.2] | No. | Yes. | [optional] A field containing two builtin elements, one referring to the builtin speech grammar and the other referring to the builtin DTMF grammar of the same type is equivlent to a field whose type attribute is set to the equivalent type. | 8 | 1 | 0 |
| 254 | [2.3.1.3] | Yes. | Yes. | The PCDATA contained by an element within a field generates a speech grammar. | 9 | 0 | 0 |
| 255 | [2.3.1.3] | Yes. | Yes. | When an is chosen, the attribute determines the interpretation value for the field's shadow variable and for application.lastresult$. | 7 | 2 | 0 |
| 256 | [2.3.1.3] | Yes. | Yes. | The dtmf attribute of an element defines the DTMF sequence required for the option to be selected. | 8 | 1 | 0 |
| 257 | [2.3.1.3] | Yes. | Yes. | When the accept attribute of an option element is set to "exact", the PCDATA of the defines the exact phrase to be recognized for the option to be selected. | 8 | 1 | 0 |
| 258 | [2.3.1.3] | Yes. | Yes. | Both and elements may be specified within a . | 9 | 0 | 0 |
| 259 | [2.3.2] | Yes. | Yes. | The interpreter executes content contained in the block. | 9 | 0 | 0 |
| 260 | [2.3.2] | Yes. | Yes. | The interpreter visits the block when the cond attribute evaluates to true and the form item variable associated with the block is undefined. | 9 | 0 | 0 |
| 261 | [2.3.2] | Yes. | Yes. | The interpreter ignores the block when the form item variable associated with the block is defined via expr. | 9 | 0 | 0 |
| 262 | [2.3.2] | Yes. | Yes. | The interpreter ignores the block when the form item variable associated with the block is set via an assign. | 9 | 0 | 0 |
| 263 | [2.3.4] | Yes. | Yes. | The interpreter executes the subdialog associated with the src or srcexpr attribute. | 9 | 0 | 0 |
| 267 | [2.3.4] | Yes. | Yes. | If the called subdialog is in a separate document then variables from the calling document, and dialog scope are inaccessible to the subdialog. | 9 | 0 | 0 |
| 268 | [2.3.4] | Yes. | Yes. | The variables passed to the subdialog via the <param> element are accessible as variables within the dialog scope of the invoked subdialog. A <param> overrides the corresponding <var> expr attribute which is ignored. | 7 | 2 | 0 |
| 269 | [2.3.4] | Yes. | Yes. | The interpreter throws error.badfetch after the specified fetchtimeout when the URL associated with the src or srcexpr attribute points to a non-existent resource. | 9 | 0 | 0 |
| 270 | [2.3.4] | Yes. | Yes. | Exactly one of "src" or "srcexpr" must be specified; otherwise, an error.badfetch event is thrown. | 7 | 2 | 0 |
| 271 | [2.3.4] | Yes. | Yes. | If the subdialog returns a namelist, the filled element contained by the subdialog is executed upon return from the subdialog. | 9 | 0 | 0 |
| 272 | [2.3.5] | Yes. | Yes. | If an element refers to an unknown object, the error.unsupported.objectname event is thrown. | 8 | 1 | 0 |
| 273 | [2.3.6] | Yes. | No. | Any DTMF keypress matching an active grammar terminates recording. | 8 | 1 | 0 |
| 274 | [2.3.6] | Yes. | No. | DTMF keypresses not matching an active grammar are ignored (and therefore do not terminate or otherwise affect recording). | 8 | 1 | 0 |
| 275 | [2.3.6] | Yes. | Yes. | If the termination grammar matched is a local DTMF grammar, the recording is placed in the record variable. | 8 | 1 | 0 |
| 277 | [2.3.6] | Yes. | Yes. | The variable associated with the name attribute references the recorded audio, and the audio can be played back using audio expr. | 9 | 0 | 0 |
| 278 | [2.3.6] | Yes. | Yes. | The variable associated with the name attribute of the record element can be submitted via the namelist of the submit element. The submitted audio is valid. | 9 | 0 | 0 |
| 279 | [2.3.6] | Yes. | Yes. | If a recording is created, the name$.duration shadow variable holds the duration (positive integer) of the recording in milliseconds. | 8 | 1 | 0 |
| 281 | [2.3.6] | Yes. | Yes. | The name$.size variable holds the size (positive integer) of the recording in bytes. | 8 | 1 | 0 |
| 282 | [2.3.6] | Yes. | No. | If the dtmfterm attribute is true, and the user terminates the recording by pressing a DTMF key which doesn't match any active DTMF grammar, then the name$.termchar shadow variable is set to the key pressed. | 8 | 1 | 0 |
| 283 | [2.3.6] | Yes. | Yes. | If the dtmfterm attribute is false, and user presses a key which does not match any active DTMF grammar, then recording is not terminated and the name$.termchar shadow variable is undefined when the recording terminates | 7 | 2 | 0 |
| 284 | [2.3.6] | Yes. | Yes. | name$.maxtime shadow variable is true if the recording was terminated because the duration specified by the maxtime attribute was reached. | 7 | 2 | 0 |
| 286 | [2.3.6] | No. | Yes. | If the caller is silent for finalsilence milliseconds during a recording, the recording is terminated. | 6 | 2 | 1 |
| 288 | [2.3.7] | No. | Yes. | A VoiceXML document can initiate a transfer to another entity using the tag, such that the Interpreter remains connected to the original caller and interpretation resumes upon termination of the transfer. | 8 | 0 | 1 |
| 289 | [2.3.7] | No. | No. | A VoiceXML document can initiate a transfer to another entity using the tag, such that the Interpreter disconnects from the caller immediately upon attempting the transfer and continues execution as it would under termination of the Session. | 7 | 0 | 2 |
| 290 | [2.3.7] | No. | No. | A bridged transfer can contain speech grammars such that the interpreter listens to the original caller for the duration of the transfer, terminating the transfer as soon as a spoken utterance matches an active speech grammar. | 5 | 0 | 4 |
| 291 | [2.3.7] | No. | No. | During a bridged transfer, any grammars outside the element are not active and cannot be matched. | 6 | 0 | 3 |
| 292 | [2.3.7] | No. | Yes. | A element that specifies both a 'dest' and 'destexpr' attribute results in an 'error.badfetch' upon loading of the document containing it. | 7 | 1 | 1 |
| 293 | [2.3.7] | No. | Yes. | A element specifying a 'cond' attribute that evaluates to false upon selection of the element by the FIA is not executed. | 8 | 0 | 1 |
| 294 | [2.3.7] | No. | No. | A element not specifying a 'bridge' attribute is executed as a blind transfer. | 7 | 0 | 2 |
| 295 | [2.3.7] | No. | Yes. | A bridged transfer specifying a 'connecttimeout' attribute with a W3C time specification will terminate a transfer attempt if the destination entity cannot be connected to within that period of time. | 7 | 0 | 2 |
| 296 | [2.3.7] | No. | Yes. | A bridged transfer specifying a 'maxtime' attribute with a W3C time specification will terminate a transfer after that period of time has elapsed after connecting to the destination entity if it has not already been terminated for other reasons. | 8 | 0 | 1 |
| 297 | [2.3.7] | No. | No. | A bridged transfer specifying a 'transferaudio' attribute with valid URI to an audio file wil play that audio from the beginning of the transfer attempt until the attempt is terminated or the destination entity is connected to. | 5 | 0 | 4 |
| 298 | [2.3.7] | No. | No. | Upon a successful blind transfer, a 'connection.disconnect.transfer' event is thrown and the transfer name variable remains undefined. | 7 | 0 | 2 |
| 300 | [2.3.7] | No. | No. | If the originating caller hangs up during a bridged transfer, a 'connection.disconnect.hangup' event is thrown and the transfer name variable remains undefined. | 8 | 0 | 1 |
| 301 | [2.3.7] | No. | No. | If the Interpreter is unable to connect to the destination entity when attempting a transfer because it is busy, the transfer name variable is filled with the value 'busy'. | 8 | 0 | 1 |
| 302 | [2.3.7] | No. | No. | If the Interpreter is unable to connect to the destination entity when attempting a transfer because network is busy, the transfer name variable is filled with the value 'network_busy'. | 5 | 1 | 3 |
| 304 | [2.3.7] | No. | No. | If a transfer is terminated because the original caller matches an active DTMF grammar, the transfer name variable is filled with the value 'near_end_disconnect'. | 6 | 0 | 3 |
| 305 | [2.3.7.2.2] | No. | No. | If a transfer is terminated because the destination entity disconnects, the transfer name variable is filled with the value 'far_end_disconnect'. | 8 | 0 | 1 |
| 306 | [2.3.7.2.2] | No. | No. | If a transfer is terminated by the network between the interpreter and the destination entity, the transfer name variable is filled with the value 'network_disconnect'. | 5 | 0 | 4 |
| 307 | [2.3.7.2.2] | No. | Yes. | If a bridge transfer is terminated by the Interpreter because the 'maxtime' has expired without the transfer being terminated, the transfer name variable is filled with the value 'maxtime_disconnect'. | 8 | 0 | 1 |
| 308 | [2.3.7] | No. | Yes. | Upon termination of bridge transfer, the shadow variable 'name$.duration' (where name is the name attribute of the element) is set to the number of seconds from the time the destination entity was connected to and the transfer was terminated. | 8 | 0 | 1 |
| 309 | [2.3.7.2] | No. | No. | Upon termination of bridge transfer due to the caller matching an active speech grammar ('near_end_disconnect'), the 'name$.inputmode' shadow variable is set to 'voice'. | 4 | 1 | 4 |
| 310 | [2.3.7] | No. | No. | Upon termination of bridge transfer due to the caller matching an active DTMF grammar ('near_end_disconnect'), the 'name$.inputmode' shadow variable is set to 'dtmf'. | 6 | 1 | 2 |
| 311 | [2.3.7] | No. | No. | Upon termination of a bridge transfer due to the caller matching an active speech grammar ('near_end_disconnect'), the 'name$.utterance' shadow variable is set to utterance text. | 4 | 2 | 3 |
| 1062 | [2.1] | Yes. | Yes. | A form may contain form-level <grammar> elements. | 8 | 1 | 0 |
| 1063 | [2.1] | Yes. | Yes. | A form may contain <link> elements. | 9 | 0 | 0 |
| 1044 | [2.3] | No. | No. | The input item 'object' may contain the property element. Property elements specify properties that are in effect for this input item | 7 | 1 | 1 |
| 1045 | [2.3] | Yes. | No. | The input item record may contain the property element. Property elements specify properties that are in effect for this input item. | 8 | 0 | 1 |
| 1046 | [2.3] | No. | No. | The input item 'transfer' may contain the property element. Property elements specify properties that are in effect for this input item. | 7 | 0 | 2 |
| 1047 | [2.3] | Yes. | Yes. | The input item 'field' may contain the prompt element. Prompt elements specify prompts to play when visiting this input item. | 9 | 0 | 0 |
| 1048 | [2.3] | Yes. | Yes. | The input item 'subdialog' may contain the prompt element. Prompt elements specify prompts to play when visiting this input item. | 9 | 0 | 0 |
| 1049 | [2.3] | No. | No. | The input item 'object' may contain the prompt element. Prompt elements specify prompts to play when visiting this input item. | 6 | 2 | 1 |
| 1050 | [2.3] | Yes. | No. | The input item 'record' may contain the prompt element. Prompt elements specify prompts to play when visiting this input item. | 9 | 0 | 0 |
| 1051 | [2.3] | No. | No. | The input item 'transfer' may contain the prompt element. Prompt elements specify prompts to play when visiting this input item. | 6 | 0 | 3 |
| 1053 | [2.3] | No. | No. | The input item 'record' may contain the grammar element. Grammar elements specify allowable DTMF input for this input item. | 3 | 1 | 5 |
| 1054 | [2.3] | No. | No. | The input item 'transfer' may contain the grammar element. Grammar elements specify allowable spoken and character input for this input item. | 3 | 2 | 4 |
| 1055 | [2.3] | Yes. | Yes. | The input item 'field' may contain the catch element, which is in effect for this input item. | 8 | 1 | 0 |
| 1056 | [2.3] | Yes. | Yes. | The input item subdialog may contain the catch element, which is in effect for this input item. | 8 | 1 | 0 |
| 1057 | [2.3] | No. | Yes. | The input item 'object' may contain the catch element, which is in effect for this input item. | 8 | 0 | 1 |
| 1058 | [2.3] | No. | Yes. | The input item 'transfer' may contain the catch element, which is in effect for this input item. | 8 | 0 | 1 |
| 1059 | [2.3] | Yes. | Yes. | The input item 'record' may contain the catch element, which is in effect for this input item. | 6 | 2 | 1 |
| 1060 | [2.3] | Yes. | No. | An 'initial' element may contain property elements. | 7 | 0 | 2 |
| 1061 | [2.3] | Yes. | Yes. | An 'initial' element may contain catch elements. | 8 | 1 | 0 |
| 332 | [3.1.1] | Yes. | Yes. | During a dialog, the interpreter can receive input from the user via the user's spoken utterance, such that the spoken utterance is one of those described by an active grammar. | 8 | 0 | 1 |
| 333 | [3.1.1] | Yes. | Yes. | A grammar can be specified in the format of the XML Form of the W3C Speech Recognition Grammar Specification (SRGS). | 7 | 2 | 0 |
| 334 | [3.1.1] | No. | Yes. | A grammar can be specified in the format of the Augmented BNF (ABNF) Form of the W3C Speech Recognition Grammar Specification. | 2 | 3 | 4 |
| 336 | [3.1.1.1] | Yes. | Yes. | A element can contain child XML elements, such that those elements taken in context of the enclosing element comprise a proper SRGS grammar. | 7 | 2 | 0 |
| 337 | [3.1.1.2] | Yes. | Yes. | A element can specify a 'src' attribute specifying a URI which returns the data of a grammar. | 7 | 1 | 1 |
| 338 | [3.1.1.2] | Yes. | Yes. | A document containing a element specifying both a 'src' attribute and an inline grammar description causes the Interpreter to throw an 'error.badfetch' event upon fetching of the document. | 8 | 1 | 0 |
| 344 | [3.1.2] | Yes. | Yes. | During a dialog, the Interpreter can receive input from the user via a set of dual tone multi frequency (DTMF) key presses, such that the sequence of presses is one of those described by an active grammar. | 7 | 2 | 0 |
| 345 | [3.1.2] | Yes. | Yes. | A DTMF grammar can be specified using the XML form of the SRGS grammar format, as described in the SRGS specification. | 7 | 2 | 0 |
| 346 | [3.1.2] | Yes. | Yes. | A "xml:lang" attribute can be specified on a DTMF grammar, but has no effect upon the grammar handling. | 8 | 1 | 0 |
| 348 | [3.1.3] | Yes. | Yes. | A element specifying a "scope" attribute as a child of a field item throws an "error.badfetch" upon parsing. [This tests scope="dialog".] | 8 | 1 | 0 |
| 357 | [3.1.3] | Yes. | Yes. | A element specifying a "scope" attribute as a child of a element throws an "error.badfetch" upon parsing. | 8 | 1 | 0 |
| 359 | [3.1.3] | Yes. | Yes. | A element specifying a "scope" attribute as a child of a element throws an "error.badfetch" upon parsing. | 8 | 1 | 0 |
| 361 | [3.1.6] | Yes. | Yes. | If a grammar matches but does not return a semantic interpretation, the raw text string for the utterance will be used. | 7 | 2 | 0 |
| 362 | [3.1.6.1] | Yes. | Yes. | If a form-level grammar matches and returns a semantic interpretation for a field name or slot that is a non-scalar ECMAScript variable, the field will be filled with that non-scalar ECMAScript value. The selected property may be a compound object. | 5 | 3 | 1 |
| 363 | [3.1.6.1] | Yes. | Yes. | The slot attribute of the field element can be used to select a sub-property of the result. | 5 | 3 | 1 |
| 364 | [3.1.6.1] | Yes. | Yes. | A specific slot value can fill more than one field if the slot names of the fields are the same. | 5 | 3 | 1 |
| 365 | [3.1.6.2] | Yes. | Yes. | If the result from a field-level grammar is a simple result, it is assigned to the input item variable. | 8 | 1 | 0 |
| 366 | [3.1.6.2] | Yes. | Yes. | If the result from a field-level grammar is a structure and the slot name matches a property, this property is assigned to the input item variable. | 8 | 1 | 0 |
| 367 | [3.1.6.2] | Yes. | Yes. | If the result from a field-level grammar is neither a simple result nor a structure with a property that matches the slot name, the entire semantic result is assigned to the input item variable. | 7 | 2 | 0 |
| 369 | [4.1.3] | Yes. | No. | The interpreter fetches and plays the URI associated with the src attribute of the audio element. | 8 | 1 | 0 |
| 370 | [4.1.3] | Yes. | Yes. | If src and expr are specified on an audio element, error.badfetch is thrown. | 8 | 1 | 0 |
| 371 | [4.1.3] | Yes. | No. | The interpreter evaluates, fetches, and plays the URI associated with the expr attribute of the audio element. | 8 | 1 | 0 |
| 372 | [4.1.3] | Yes. | Yes. | If expr is set to ECMAScript undefined the audio element is ignored. | 8 | 1 | 0 |
| 373 | [4.1.3] | Yes. | Yes. | If the URI associated with src is unavailable, the interpreter renders the content contained by the audio element. | 8 | 1 | 0 |
| 374 | [4.1.3] | Yes. | Yes. | If the URI associated with expr is unavailable, the interpreter renders the content contained by the audio element. | 9 | 0 | 0 |
| 375 | [4.1.3] | Yes. | Yes. | If the URI associated with src is unavailable, and the audio element doesn't contain content, no error is thrown. | 9 | 0 | 0 |
| 376 | [4.1.3] | Yes. | Yes. | If the URI associated with expr is unavailable, and the audio element doesn't contain content, no error is thrown. | 8 | 1 | 0 |
| 377 | [4.1.4] | Yes. | Yes. | If the expr attribute specifies a valid ECMAScript expression, the value element evaluates it correctly. | 9 | 0 | 0 |
| 378 | [4.1.4] | Yes. | Yes. | If the expr attribute specifies an invalid ECMAScript expression, error.semantic is thrown. | 8 | 1 | 0 |
| 379 | [4.1.5] | No. | No. | When set to false, the bargein attribute on the the user should be unable to interrupt the playback of the contents of the prompt. | 7 | 1 | 1 |
| 380 | [4.1.5] | No. | No. | If bargein occurs during any prompt in a sequence, all subsequent prompts are not played. This is required when barge-in is supported by a platform. | 6 | 2 | 1 |
| 381 | [4.1.5] | Yes. | Yes. | When the bargein attribute is set to false on a prompt, any DTMF input buffered in a transition state is deleted from the buffer | 8 | 0 | 1 |
| 382 | [4.1.5] | No. | No. | If the bargein attribute is not specified, then the value of the bargein property is used if set. | 8 | 0 | 1 |
| 387 | [4.1.5] | No. | Yes. | A nomatch event will never be generated in the case of hotword barge-in. | 6 | 1 | 2 |
| 388 | [4.1.7] | Yes. | Yes. | If the interval specified by the timeout attribute of the prompt element is exceeded, the platform will throw a noinput event. The default is the value specified by the timeout property | 7 | 2 | 0 |
| 389 | [4.1.7] | Yes. | Yes. | If several prompts are queued before a field input, the timeout of the last prompt is used. | 8 | 1 | 0 |
| 390 | [5.1] | Yes. | Yes. | VoiceXML variables and ECMAScript variables are contained in the same variable space. | 9 | 0 | 0 |
| 391 | [5.1] | Yes. | Yes. | VoiceXML variables can be used in a . Variables defined in a can be used in VoiceXML. | 9 | 0 | 0 |
| 392 | [5.1] | Yes. | Yes. | can appear everywhere that can appear. | 8 | 0 | 1 |
| 393 | [5.1] | Yes. | Yes. | Variable names that violate ECMAScript rules cause an error.semantic event to be thrown. | 9 | 0 | 0 |
| 394 | [5.1.1] | Yes. | Yes. | Variables declared without an explicit initial value are initialized to ECMAScript undefined. | 9 | 0 | 0 |
| 395 | [5.1.1] | Yes. | Yes. | Variables must be declared prior to use. Assigning to an undeclared variable does not automatically create it. Instead, it results in error.semantic being thrown. | 6 | 3 | 0 |
| 396 | [5.1.1] | Yes. | Yes. | In a form, variables declared by and by form items are initialized every time the form is entered. These initializations take place in document order. | 8 | 1 | 0 |
| 397 | [5.1.2] | Yes. | Yes. | Variables can be declared in application, document, dialog and anonymous scopes. Variables declared at one scope are visible at that scope and all more local scopes. | 9 | 0 | 0 |
| 398 | [5.1.2] | Yes. | Yes. | Variables in session scope can be read but not written by VoiceXML documents. | 9 | 0 | 0 |
| 399 | [5.1.2] | Yes. | Yes. | and elements that are children of the application root document's element create their variables at application scope. They are no longer accessible when another application is entered. | 9 | 0 | 0 |
| 400 | [5.1.2] | Yes. | Yes. | and elements that are children of the document's element create their variables at document scope. They are no longer accessible when another document is entered. | 9 | 0 | 0 |
| 401 | [5.1.2] | Yes. | Yes. | var and script elements that are children of a form element (but not in an anonymous scope) create their variables at dialog scope. They are no longer accessible when another dialog is entered. | 8 | 1 | 0 |
| 402 | [5.1.2] | Yes. | Yes. | and elements that are children of , and elements (including synonyms for , such as ) create their variables at anonymous scope. | 9 | 0 | 0 |
| 403 | [5.1.2] | Yes. | Yes. | Each , and element has its own new and separate anonymous scope. The scope is no longer accessible once the element is exited. | 8 | 1 | 0 |
| 404 | [5.1.2] | Yes. | Yes. | Scopes are not cleared when they become inaccessible. Instead, the old scope object is left to exist (or to be garbage collected) and a new one is created and linked into the scope hierarchy. References to previously-existing scope objects will continue to access the old scope objects. | 8 | 1 | 0 |
| 405 | [5.1.2] | Yes. | Yes. | Each scope contains a predefined variable whose name is the same as the scope that refers to the scope itself. | 9 | 0 | 0 |
| 406 | [5.1.2] | Yes. | Yes. | "session", "application", "document", and "dialog" are not reserved words. | 9 | 0 | 0 |
| 407 | [5.1.2] | Yes. | Yes. | When executing in a document that does not have a separate application root document, the application and document scopes are the same; that is, a single scope has variables named both "application" and "document" that are references to the scope itself. This includes execution in an application root document's and elements. | 7 | 1 | 1 |
| 408 | [5.1.3] | Yes. | Yes. | Variable references match the closest enclosing scope. | 9 | 0 | 0 |
| 409 | [5.1.4] | Yes. | Yes. | session.connection.local.uri returns a URI which addresses the local interpreter context device. | 7 | 2 | 0 |
| 410 | [5.1.4] | Yes. | Yes. | session.connection.remote.uri returns a URI which addresses the remote caller device. | 7 | 2 | 0 |
| 411 | [5.1.4] | Yes. | Yes. | session.connection.protocol.name returns the name of the connection protocol. | 8 | 1 | 0 |
| 412 | [5.1.4] | Yes. | Yes. | session.connection.protocol.version returns the version of the connection protocol. | 8 | 1 | 0 |
| 413 | [5.1.4] | Yes. | No. | session.connection.redirect returns an array representing the connection redirection paths. The first element is the original called number, the last element is the last redirected number. Each element of the array contains a uri, pi (presentation information), si (screening information), and reason property. The reason property can be either "unknown", "user busy", "no reply", "deflection during alerting", "deflection immediate response", "mobile subscriber not reachable". | 6 | 2 | 1 |
| 414 | [5.1.4] | No. | No. | session.connection.aai returns an application-to-application information passed during connection setup. | 5 | 2 | 2 |
| 415 | [5.1.4] | Yes. | No. | session.connection.originator returns the local or remote property. (For instance, the following ECMAScript would return true if the remote party initiated the connection: var caller_initiate = connection.originator == connection.remote; | 7 | 2 | 0 |
| 416 | [5.1.5] | Yes. | Yes. | application.lastresult$ contains an array of elements, or ECMAScript undefined. | 9 | 0 | 0 |
| 418 | [5.1.5] | Yes. | Yes. | Each element of application.lastresult$ contains "confidence", "utterance", "inputmode" and "interpretation" properties. | 9 | 0 | 0 |