A technique for synchronizing a visual browser and a voice browser. A
visual browser is used to navigate through visual content, such as WML
pages. During the navigation, the visual browser creates a historical
record of events that have occurred during the navigation. The voice
browser uses this historical record to navigate the content in the same
manner as occurred on the visual browser, thereby synchronizing to a
state equivalent to that of the visual browser. The creation of the
historical record may be performed by using a script to trap events,
where the script contains code that records the trapped events. The
synchronization technique may be used with a multi-modal application that
permits the mode of input/output (I/O) to be changed between visual and
voice browsers. When the mode is changed from visual to voice, the record
of events captured by the visual browser is provided to the voice
browser, thereby allowing the I/O mode to change seamlessly from visual
to voice. Likewise, the voice browser captures events which may be
provided to the visual browser when the I/O mode is changed from voice to
visual.