When the accept attribute of choice is set to "approximate", or is not
set and the accept attribute of its enclosing menu is set to
"approximate", then the text of the choice element defines an
approximate recognition phrase, as defined under "Grammar Generation"
in section 2.2.
The type attribute, if present, specifies the name of one of the
following builtin grammar types from Appendix P: boolean, date, digits,
currency, number, phone, time.
[optional] A field containing two builtin grammar 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.
A VoiceXML document can initiate a transfer to another entity using the
transfer tag, such that the Interpreter remains connected to the
original caller and interpretation resumes upon termination of the
transfer.
A VoiceXML document can initiate a transfer to another entity using the
transfer 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.
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.
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.
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.
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.
If the originating caller hangs up during a bridged transfer, a
'connection.disconnect.hangup' event is thrown and the transfer name
variable remains undefined.
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'.
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'.
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'.
Upon termination of bridge transfer, the shadow variable
'name$.duration' (where name is the name attribute of the transfer
element) is set to the number of seconds from the time the destination
entity was connected to and the transfer was terminated.
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'.
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'.
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.
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".
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;
A bridged transfer can contain DTMF grammars such that the interpreter
listens to the original caller for the duration of the transfer,
terminating the transfer as soon as DTMF input matches an active DTMF
grammar.
The form item 'object' has a guard condition specified with the cond
attribute. A form item is visited if it is not filled and its cond is
not specified or evaluates, after conversion to boolean, to true.
The input item transfer may contain the filled element. Filled elements
contain an action to execute after the result input item variable is
filled in.
Upon termination of a bridged transfer due to the caller matching an
active DTMF grammar ('near_end_disconnect'), application.lastresult$ is
assigned to the DTMF result.
Upon termination of a bridged transfer due to the caller matching an
active speech grammar ('near_end_disconnect'),
application.lastresult$.utterance is assigned the same value as the
transfer's utterance shadow.
If a bridged transfer is terminated due to a reason other than the
caller matching an active speech or DTMF grammar
('near_end_disconnect'), application.lastresult$ is undefined.
When the accept attribute of an option element is set to "approximate",
the user may say a subphrase of the specified PCDATA for the option to
be selected.
If the caller has insufficient permission to perform a call transfer
(e.g. not allowed to make long distance calls, not permitted to make
any transfers, etc.), destination URL is malformed, a
error.connection.noauthorization error is thrown.
The name (session.connection.protocol.name) also represents the
subobject name for protocol specific information. For instance, if
session.connection.protocol.name is 'q931',
session.connection.protocol.q931.uui might specify the user-to-user
information property of the connection.
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.
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.
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.
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.
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.
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.
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.
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.
A form may contain form items, which are subdivided into input items (
<field>, <record>, <transfer>, <object>,
<subdialog>) and control items (<block> and
<initial>).
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.
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).
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).
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.
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.
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.
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.
If a menu's scope 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).
If a menu's dtmf attribute is set to "true", the first nine choices
that have not explicitly specified a value for the dtmf attribute are
given the implicit ones "1", "2", etc. Remaining choices that have not
explicitly specified a value for the dtmf attribute will not be
assigned DTMF values (and thus cannot be matched via a DTMF keypress).
When the accept attribute of choice is set to "exact", or is not set
and the accept attribute of its enclosing menu is set to "exact", or
neither choice's accept attribute nor menu's is set, then the text of
the choice 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
choice element phrase for matching this element.
The messageexpr attribute is an ECMAScript expression evaluating to the
variable _message inside the catch element which catches the event
being thrown.
If the event handler called after matching a choice with an event or
eventexpr 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.
If the form item is initialized to a value via evaluation of the expr
attribute, the form item will not be visited unless the form item
variable is cleared.
If the slot attribute is absent, the interpreter uses the value
associated with the name attribute of the field to map the grammar slot
to the form item variable.
The field 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.
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.
When the accept attribute of an option element is set to "exact", the
PCDATA of the option defines the exact phrase to be recognized for the
option to be selected.
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.
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.
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.
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.
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
When <filled> is a child of a <form>, and the mode
attribute is set to "any", the filled is executed when any of the form
items specified in the namelist has been filled.
When <filled> is a child of a <form>, and the mode
attribute is set to "all", the filled is executed when all of the form
items specified in the namelist have been filled.
A link may specify a message or messageexpr attribute providing
additional context about the event being thrown. The message is
available as the value of the _message variable within the scope of the
catch element the interpreter selects to handle the event.
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.
A grammar element can contain child XML elements, such that those
elements taken in context of the enclosing grammar element comprise a
proper SRGS grammar.
A document containing a grammar 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.
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.
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.
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.
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
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.
In a form, variables declared by var and by form items are initialized
every time the form is entered. These initializations take place in
document order.
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.
var and script elements that are children of the application root
document's vxml element create their variables at application scope.
They are no longer accessible when another application is entered.
var and script elements that are children of the document's vxml
element create their variables at document scope. They are no longer
accessible when another document is entered.
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.
var and script elements that are children of block, filled and catch
elements (including synonyms for catch, such as nomatch) create their
variables at anonymous scope.
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.
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 var and script elements.
The elements of application.lastresult$ will be sorted from highest
confidence score to lowest, with ties resolved by sorting by the
precedence relationship among the grammars producing the
interpretations.
The number of elements in application.lastresult$ is never more than
the value of the property "maxnbest", and never less than one, unless
the value of application.lastresult$ itself is undefined.
If the value of application.lastresult$ is not undefined,
application.lastresult$ itself will contain the properties confidence,
utterance, inputmode and intepretation corresponding to those of
application.lastresult$[0].
Assuming no cond or count attribute specified, given a field level
event handler, the interpreter must select it when the corresponding
event is thrown.
Assuming no cond or count attribute specified and no field-level event
handler, given a form-level event handler, the interpreter must select
it when the corresponding event is thrown.
Assuming no cond or count attribute specified and no field- or
form-level event handler, given a document-level event handler, the
interpreter must select it when the corresponding event is thrown.
Assuming no cond or count attribute specified and no field-, form-, or
document-level event handler, given an application-level event handler,
the interpreter must select it when the corresponding event is thrown.
If the cond attribute of the most inner-scoped event handler evaluates
to false, the interpreter must not select it and instead select the
next qualifying event handler.
When the accept attribute of choice is set to "approximate", or is not
set and the accept attribute of its enclosing menu is set to
"approximate", then the text of the choice element defines an
approximate recognition phrase, as defined under "Grammar Generation"
in section 2.2.
The type attribute, if present, specifies the name of one of the
following builtin grammar types from Appendix P: boolean, date, digits,
currency, number, phone, time.
[optional] A field containing two builtin grammar 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.
A VoiceXML document can initiate a transfer to another entity using the
transfer tag, such that the Interpreter remains connected to the
original caller and interpretation resumes upon termination of the
transfer.
A VoiceXML document can initiate a transfer to another entity using the
transfer 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.
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.
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.
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.
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.
If the originating caller hangs up during a bridged transfer, a
'connection.disconnect.hangup' event is thrown and the transfer name
variable remains undefined.
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'.
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'.
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'.
Upon termination of bridge transfer, the shadow variable
'name$.duration' (where name is the name attribute of the transfer
element) is set to the number of seconds from the time the destination
entity was connected to and the transfer was terminated.
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'.
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'.
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.
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".
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;
A bridged transfer can contain DTMF grammars such that the interpreter
listens to the original caller for the duration of the transfer,
terminating the transfer as soon as DTMF input matches an active DTMF
grammar.
The form item 'object' has a guard condition specified with the cond
attribute. A form item is visited if it is not filled and its cond is
not specified or evaluates, after conversion to boolean, to true.
The input item transfer may contain the filled element. Filled elements
contain an action to execute after the result input item variable is
filled in.
Upon termination of a bridged transfer due to the caller matching an
active DTMF grammar ('near_end_disconnect'), application.lastresult$ is
assigned to the DTMF result.
Upon termination of a bridged transfer due to the caller matching an
active speech grammar ('near_end_disconnect'),
application.lastresult$.utterance is assigned the same value as the
transfer's utterance shadow.
If a bridged transfer is terminated due to a reason other than the
caller matching an active speech or DTMF grammar
('near_end_disconnect'), application.lastresult$ is undefined.
When the accept attribute of an option element is set to "approximate",
the user may say a subphrase of the specified PCDATA for the option to
be selected.
If the caller has insufficient permission to perform a call transfer
(e.g. not allowed to make long distance calls, not permitted to make
any transfers, etc.), destination URL is malformed, a
error.connection.noauthorization error is thrown.
The name (session.connection.protocol.name) also represents the
subobject name for protocol specific information. For instance, if
session.connection.protocol.name is 'q931',
session.connection.protocol.q931.uui might specify the user-to-user
information property of the connection.
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.
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.
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.
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.
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.
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.
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.
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.
A form may contain form items, which are subdivided into input items (
<field>, <record>, <transfer>, <object>,
<subdialog>) and control items (<block> and
<initial>).
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.
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).
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).
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.
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.
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.
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.
If a menu's scope 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).
If a menu's dtmf attribute is set to "true", the first nine choices
that have not explicitly specified a value for the dtmf attribute are
given the implicit ones "1", "2", etc. Remaining choices that have not
explicitly specified a value for the dtmf attribute will not be
assigned DTMF values (and thus cannot be matched via a DTMF keypress).
When the accept attribute of choice is set to "exact", or is not set
and the accept attribute of its enclosing menu is set to "exact", or
neither choice's accept attribute nor menu's is set, then the text of
the choice 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
choice element phrase for matching this element.
The messageexpr attribute is an ECMAScript expression evaluating to the
variable _message inside the catch element which catches the event
being thrown.
If the event handler called after matching a choice with an event or
eventexpr 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.
If the form item is initialized to a value via evaluation of the expr
attribute, the form item will not be visited unless the form item
variable is cleared.
If the slot attribute is absent, the interpreter uses the value
associated with the name attribute of the field to map the grammar slot
to the form item variable.
The field 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.
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.
When the accept attribute of an option element is set to "exact", the
PCDATA of the option defines the exact phrase to be recognized for the
option to be selected.
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.
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.
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.
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.
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
When <filled> is a child of a <form>, and the mode
attribute is set to "any", the filled is executed when any of the form
items specified in the namelist has been filled.
When <filled> is a child of a <form>, and the mode
attribute is set to "all", the filled is executed when all of the form
items specified in the namelist have been filled.
A link may specify a message or messageexpr attribute providing
additional context about the event being thrown. The message is
available as the value of the _message variable within the scope of the
catch element the interpreter selects to handle the event.
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.
A grammar element can contain child XML elements, such that those
elements taken in context of the enclosing grammar element comprise a
proper SRGS grammar.
A document containing a grammar 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.
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.
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.
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.
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
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.
In a form, variables declared by var and by form items are initialized
every time the form is entered. These initializations take place in
document order.
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.
var and script elements that are children of the application root
document's vxml element create their variables at application scope.
They are no longer accessible when another application is entered.
var and script elements that are children of the document's vxml
element create their variables at document scope. They are no longer
accessible when another document is entered.
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.
var and script elements that are children of block, filled and catch
elements (including synonyms for catch, such as nomatch) create their
variables at anonymous scope.
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.
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 var and script elements.
The elements of application.lastresult$ will be sorted from highest
confidence score to lowest, with ties resolved by sorting by the
precedence relationship among the grammars producing the
interpretations.
The number of elements in application.lastresult$ is never more than
the value of the property "maxnbest", and never less than one, unless
the value of application.lastresult$ itself is undefined.
If the value of application.lastresult$ is not undefined,
application.lastresult$ itself will contain the properties confidence,
utterance, inputmode and intepretation corresponding to those of
application.lastresult$[0].
Assuming no cond or count attribute specified, given a field level
event handler, the interpreter must select it when the corresponding
event is thrown.
Assuming no cond or count attribute specified and no field-level event
handler, given a form-level event handler, the interpreter must select
it when the corresponding event is thrown.
Assuming no cond or count attribute specified and no field- or
form-level event handler, given a document-level event handler, the
interpreter must select it when the corresponding event is thrown.
Assuming no cond or count attribute specified and no field-, form-, or
document-level event handler, given an application-level event handler,
the interpreter must select it when the corresponding event is thrown.
If the cond attribute of the most inner-scoped event handler evaluates
to false, the interpreter must not select it and instead select the
next qualifying event handler.