Datastore UI Events guide

Applies to

  • Administrators

Prerequisites

  • Access to the Data Explorer feature in TAO Portal.

  • Knowledge of the Datastore UI Events entity.

Purpose

This document provides a practical guide to the Datastore UI Events datastore in Data Explorer. This entity supports post-exam test taker analysis. Its purpose is to help to understand what type of evidence each datastore contains and how that information can be used to reconstruct a test taker’s behavior during an exam session. 

The guide focuses on the most relevant fields for analyzing progress, interactions, responses, technical issues and proctoring-related incidents. 

How to access the data

  1. Open Data Explorer module.

  2. In the ‘Data Setup: Configure or Load’ dropdown list, select Datastore UI Events.

  3. In the ‘Filters’ tab, filter by the delivery execution id of one specific test of the test taker to investigate. Filter also by the type of UI Event (Dom Event Type) for a more accurate result.

  4. Click Generate.

datastoreUIevents.png

Datastore UI Events details

Datastore UI Events stores front-end user interaction events generated while a test taker is using the TAO test runner and enabled tools. In practical terms, it captures actions such as:

  • interacting with an item,

  • selecting or unselecting a choice,

  • typing in an extended text response,

  • using accessibility tools

Each event is stored as a log entry with a set of common identification fields plus a metadata object.

A key point for reporting is that the metadata is not fixed. It is a free-form object, so:

  • each event type can carry different metadata,

  • different events can expose different properties,

  • the columns generated in Data Explorer for this datastore depend on the type of event that was actually generated by the test taker.

This means the output of a query is not a single rigid schema for all events. Some columns are common to almost all records, while others only appear for specific interactions or tools.

As a result, when you query this datastore in Data Explorer, the available columns and the populated values will vary depending on which event families are included in your query.

Most relevant fields and descriptions

At a high level, Datastore UI Events stores:

Common Data Explorer fields for Datastore UI Events

The following fields are the main fields exposed for this datastore common for all the different types of events.

Data Explorer field

Meaning

deliveryId

Delivery identifier (represents the test)

deliveryExecutionId

The unique identifier of the delivery execution, meaning the specific session for a given test taker and delivery combination. This is one of the key fields for grouping all events generated during the same attempt. 

messageId

The unique identifier for the message or transaction between the client and the API. It can help when tracing how events were transferred or grouped during processing. 

itemId

The identifier of the item in which the event happened. This field is essential to know in which question the event happened

responseId

The identifier of the response linked to the event. 

tenantId

The identifier of the tenant where the event was recorded.

timestamp

The event time, stored as a Unix timestamp 

lastUpdateDate

The date on which the event record was stored or last updated in persistence, also provided as a Unix timestamp. This is a storage-related timestamp, not necessarily the exact moment of the user action. 

domEventType

Frontend event type (depends on the type of question), such as: blur, click, change, copy, custom,  cut, dragstart, dragend, drop, focus, keydown, keyup, paste

metadata

Event-specific detail object

Event detail information and format

Event details are mainly stored in the metadata object and contains the functional detail of the user action, such as:

  • which interaction was affected,

  • which choice was selected,

  • whether a choice was selected or unselected,

  • which key was pressed,

  • what text was typed or pasted,

  • which tool was opened,

  • which tool setting changed,

  • which read aloud action was launched.

The following section contains the metadata properties for the most relevant events for the most common interactions (Choice and Extended Text) and the use of accessibility tools.

Choice interaction

The following section explains the most relevant fields that can appear in Data Explorer exports for Choice interaction events stored in Datastore UI Events. Choice interactions mainly generate click events and keyboard-based selection events. The metadata fields depend on the type of event.

Event metadata field

Description

Data example

metadata_timeStamp

The client-side timestamp stored inside metadata. It represents the time when the event was generated on the frontend.

1776328572292

metadata_componentType

The type of UI component involved in the event. This helps identify what kind of frontend element generated the click.

ChoiceInteraction

metadata_equivalentUserEventType

A normalized or equivalent user action type.

click

metadata_position_clientY

The vertical Y coordinate of the click in the client area. It indicates where the click happened relative to the visible browser client area.

380

metadata_position_clientX

The horizontal X coordinate of the click in the client area. It indicates where the click happened relative to the browser client area.

607

metadata_targetId

The identifier of the target DOM element where the event occurred. This is mainly useful for technical analysis of which frontend element was clicked.

div[3]/ul/li[2]/label/input

metadata_position_screenY

The vertical Y coordinate of the click on the physical screen. It indicates where the click happened in screen coordinates.

390

metadata_position_screenX

The horizontal X coordinate of the click on the physical screen. It indicates where the click happened in screen coordinates.

617

metadata_qtiChoiceIdentifier

The identifier of the selected QTI choice option. This is one of the most important fields for Choice interaction analysis because it tells you which answer choice was involved in the event.

B

metadata_newResponse

The updated response value after the event. This field can show the resulting response state after the click action.

B

metadata_screen_width

The width of the user’s screen at the time of the event. This gives contextual information about the display environment.

1440

metadata_screen_height

The height of the user’s screen at the time of the event.

900

metadata_document_height

The height of the document rendered in the browser at the time of the event.

880

metadata_scope

The functional scope of the event. This indicates the level at which the event applies, for example whether it is related to test-level or item-level context.

test

metadata_window_width

The width of the browser window at the time of the event.

1440

metadata_userAgent

The browser user agent string. This gives technical information about the browser and operating environment from which the event was generated.

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36

metadata_type

The type of custom action recorded in metadata. This is one of the key interpretation fields in the custom extract.

finish

metadata_window_height

The height of the browser window at the time of the event.

900

metadata_document_width

The width of the rendered document at the time of the event.

1420

For a Choice interaction click extract, the most relevant business-level fields are usually:

  • deliveryExecutionId

  • deliveryId

  • itemId

  • responseId

  • timestamp

  • domEventType

  • metadata_qtiChoiceIdentifier

  • metadata_newResponse

These fields help answer the main reporting questions:

  • which test session generated the event,

  • in which item it happened,

  • which choice option was involved,

  • what the response looked like after the click,

  • and when the action happened.

The position fields and target fields are generally more useful for technical context about the user environment rather than direct Choice answer behavior. 

Extended Text interaction (essays)

This section explains the most relevant metadata fields present in Datastore UI Events related to an Extended Text interaction. The metadata fields depend on the type of event.

Event metadata field

Description

Data example

metadata_timeStamp

The client-side timestamp of the event. This represents the moment when the event was generated on the frontend by the test taker’s interaction.

1776328572292

metadata_componentType

The type of UI component involved in the event. This helps identify what kind of frontend element generated the click.

ExtendedTextInteraction

metadata_equivalentUserEventType

A normalized or equivalent user action type.

focus

metadata_targetId

The identifier of the DOM element where the event occurred. Technically, this points to the frontend target element involved in the interaction.

div[2]/label/div[2]/textarea

metadata_format

The format of the text content involved in the event. This field indicates the format context of the Extended Text response, for example whether the content is stored as plain text or in another supported representation. It helps interpret the structure of the response payload.

plain

metadata_newResponse

The updated response value after the event. This is one of the most important fields in the extract because it shows the text content resulting from the interaction at that point in time. In practice, it represents the current state of the response after the action that triggered the event.

The water cycle begins with evaporation.

metadata_pressedKey

The key pressed by the test taker when the event was generated. This field helps identify which keyboard key was associated with the interaction, for example when the event was triggered during typing or while using keyboard shortcuts.

v

metadata_replacedContent

The text content that was replaced during the event. This field is especially relevant for actions such as paste, where existing text may be overwritten by new content. It helps identify what content was removed or substituted.

old text

metadata_position

The character position in the text where the event occurred. This field indicates the index or insertion point within the response content, which is useful for understanding where the edit action took place inside the Extended Text response.

24

metadata_content

The text content directly involved in the event. For example, in a paste-related event, this field can contain the pasted text itself. It provides more detailed information about the specific text fragment associated with the action.

new pasted sentence

For this Extended Text interaction, the most relevant metadata fields are usually:

  • metadata_timeStamp

  • metadata_componentType

  • metadata_equivalentUserEventType

  • metadata_format

  • metadata_newResponse

These fields are the most useful for understanding:

  • when the interaction happened,

  • which editor or component generated it,

  • what type of user action it represents,

  • in what format the response was handled,

  • and what the response content looked like after the action.

Accessibility tools

This section explains the most relevant metadata fields present in Datastore UI Events related to the Accessibility tools. The exact metadata fields depend on the accessibility tool used and the type of event.

Event metadata field

Description

Data example

metadata_timeStamp

The client-side timestamp of the accessibility event. This represents the moment when the event was generated on the frontend by the test taker’s interaction.

1704727354129

metadata_component

The frontend component that generated the accessibility event. Accessibility tool events are generated by the accessibility menu panel.

plugin-a11yMenuPanel

metadata_type

Indicates an action performed on the accessibility panel itself. This field is used for panel open and close events.

panel-open, panel-close

metadata_toolKey

Identifies the accessibility tool whose setting was changed.

pageZoom, contrastTheme, mousePointer, fontFamily, fontSize, lineHeight, letterAndWordSpacing

metadata_toolState_value

Represents the selected value or setting for an accessibility tool. The meaning and possible values depend on the tool identified by metadata_toolKey.

125, whiteOnBlack, courier, 3

metadata_toolState_nonDefault

Indicates whether the selected accessibility setting differs from its default value.

true, false

metadata_toolState_size

Records the selected mouse pointer size. This field is specific to the Mouse Pointer tool.

128

metadata_toolState_color

Records the selected mouse pointer color. This field is specific to the Mouse Pointer tool.

green

metadata_toolState_fontSizeBody

Records the resulting body font size when the Font Size accessibility setting is changed.

2.5rem

metadata_toolState_fontSizeDescriptor

Provides the descriptive name associated with the selected font size.

large

metadata_toolState_lineHeightBodyValue

Records the resulting line-height value when the Line Height accessibility setting is changed.

1.8

metadata_toolState_letterSpacingValue

Records the resulting letter-spacing value when the Text Spacing accessibility setting is changed.

0.0625em

The accessibility events logged include:

  • Accessibility panel opened/closed

  • Zoom level changed

  • Contrast theme changed

  • Mouse pointer changed

  • Font family changed

  • Font size changed

  • Line height changed

  • Text spacing changed

The fields present depend on the event and accessibility tool. The mapping is:

Accessibility event

metadata_toolKey

Tool-specific state fields

Accessibility panel opened/closed

metadata_type

Zoom level changed

pageZoom

value, nonDefault

Contrast theme changed

contrastTheme

value, nonDefault

Mouse pointer changed

mousePointer

size, color, nonDefault

Font family changed

fontFamily

value, nonDefault

Font size changed

fontSize

value, fontSizeBody, fontSizeDescriptor, nonDefault

Line height changed

lineHeight

value, lineHeightBodyValue, nonDefault

Text spacing changed

letterAndWordSpacing

value, letterSpacingValue, nonDefault

For Accessibility tool interactions, the most relevant metadata fields are usually:

  • metadata_timeStamp

  • metadata_component

  • metadata_type — for accessibility panel open/close events

  • metadata_toolKey — for accessibility setting changes

  • metadata_toolState_value

  • metadata_toolState_nonDefault

  • any additional tool-specific fields within metadata_toolState

These fields are the most useful for understanding:

  • when the accessibility interaction happened,

  • which accessibility component generated it,

  • which accessibility tool was used,

  • what setting was selected,

  • whether the setting differs from the default,

  • and what tool-specific configuration resulted from the change.