---
title: "TextTrack | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Interface TextTrack

The **`TextTrack`** interface of the WebVTT API represents a text track associated with a media element.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack)

interface TextTrack {  
    [activeCues](#activecues): [TextTrackCueList](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackCueList/) | null;  
    [cues](#cues): [TextTrackCueList](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackCueList/) | null;  
    [id](#id): string;  
    [inBandMetadataTrackDispatchType](#inbandmetadatatrackdispatchtype): string;  
    [kind](#kind): [TextTrackKind](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.TextTrackKind/);  
    [label](#label): string;  
    [language](#language): string;  
    [mode](#mode): [TextTrackMode](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.TextTrackMode/);  
    [oncuechange](#oncuechange): ((this: TextTrack, ev: Event) \=> any) | null;  
    [addCue](#addcue-1)(cue: [TextTrackCue](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackCue/)): void;  
    [addEventListener](#addeventlistener-1)<[K](#addeventlistenerk) extends "cuechange"\>(  
        type: [K](#addeventlistenerk),  
        listener: (this: TextTrack, ev: [TextTrackEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackEventMap/)\[[K](#addeventlistenerk)\]) \=> any,  
        options?: boolean | AddEventListenerOptions,  
    ): void;  
    [addEventListener](#addeventlistener-2)(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | AddEventListenerOptions,  
    ): void;  
    [dispatchEvent](#dispatchevent-1)(event: Event): boolean;  
    [removeCue](#removecue-1)(cue: [TextTrackCue](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackCue/)): void;  
    [removeEventListener](#removeeventlistener-1)<[K](#removeeventlistenerk) extends "cuechange"\>(  
        type: [K](#removeeventlistenerk),  
        listener: (this: TextTrack, ev: [TextTrackEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackEventMap/)\[[K](#removeeventlistenerk)\]) \=> any,  
        options?: boolean | EventListenerOptions,  
    ): void;  
    [removeEventListener](#removeeventlistener-2)(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | EventListenerOptions,  
    ): void;  
}

#### Hierarchy

-   EventTarget
    -   TextTrack

##### Index

### Properties[](#properties)

[activeCues](#activecues) [cues](#cues) [id](#id) [inBandMetadataTrackDispatchType](#inbandmetadatatrackdispatchtype) [kind](#kind) [label](#label) [language](#language) [mode](#mode) [oncuechange](#oncuechange)

### Methods[](#methods)

[addCue](#addcue) [addEventListener](#addeventlistener) [dispatchEvent](#dispatchevent) [removeCue](#removecue) [removeEventListener](#removeeventlistener)

## Properties[](#properties-1)

### `Readonly`activeCues[](#activecues)

activeCues: [TextTrackCueList](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackCueList/) | null

The **`activeCues`** read-only property of the TextTrack interface returns a TextTrackCueList object listing the currently active cues.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/activeCues)

### `Readonly`cues[](#cues)

cues: [TextTrackCueList](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackCueList/) | null

The **`cues`** read-only property of the TextTrack interface returns a TextTrackCueList object containing all of the track's cues.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/cues)

### `Readonly`id[](#id)

id: string

The **`id`** read-only property of the TextTrack interface returns the ID of the track if it has one.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/id)

### `Readonly`inBandMetadataTrackDispatchType[](#inbandmetadatatrackdispatchtype)

inBandMetadataTrackDispatchType: string

The **`inBandMetadataTrackDispatchType`** read-only property of the TextTrack interface returns the text track's in-band metadata dispatch type of the text track represented by the TextTrack object.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/inBandMetadataTrackDispatchType)

### `Readonly`kind[](#kind)

kind: [TextTrackKind](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.TextTrackKind/)

The **`kind`** read-only property of the TextTrack interface returns the kind of text track this object represents. This decides how the track will be handled by a user agent.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/kind)

### `Readonly`label[](#label)

label: string

The **`label`** read-only property of the TextTrack interface returns a human-readable label for the text track, if it is available.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/label)

### `Readonly`language[](#language)

language: string

The **`language`** read-only property of the TextTrack interface returns the language of the text track.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/language)

### mode[](#mode)

mode: [TextTrackMode](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.TextTrackMode/)

The TextTrack interface's **`mode`** property is a string specifying and controlling the text track's mode: disabled, hidden, or showing. You can read this value to determine the current mode, and you can change this value to switch modes.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/mode)

### oncuechange[](#oncuechange)

oncuechange: ((this: TextTrack, ev: Event) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/cuechange_event)

## Methods[](#methods-1)

### addCue[](#addcue)

-   addCue(cue: [TextTrackCue](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackCue/)): void[](#addcue-1)
    
    The **`addCue()`** method of the TextTrack interface adds a new cue to the list of cues.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/addCue)
    
    #### Parameters
    
    -   cue: [TextTrackCue](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackCue/)
    
    #### Returns void
    

### addEventListener[](#addeventlistener)

-   addEventListener<[K](#addeventlistenerk) extends "cuechange"\>(  
        type: [K](#addeventlistenerk),  
        listener: (this: TextTrack, ev: [TextTrackEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackEventMap/)\[[K](#addeventlistenerk)\]) \=> any,  
        options?: boolean | AddEventListenerOptions,  
    ): void[](#addeventlistener-1)
    
    The **`addEventListener()`** method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
    
    #### Type Parameters
    
    -   K extends "cuechange"
    
    #### Parameters
    
    -   type: [K](#addeventlistenerk)
    -   listener: (this: TextTrack, ev: [TextTrackEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackEventMap/)\[[K](#addeventlistenerk)\]) \=> any
    -   `Optional`options: boolean | AddEventListenerOptions
    
    #### Returns void
    
    Overrides EventTarget.addEventListener
    
-   addEventListener(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | AddEventListenerOptions,  
    ): void[](#addeventlistener-2)
    
    The **`addEventListener()`** method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
    
    #### Parameters
    
    -   type: string
    -   listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/)
    -   `Optional`options: boolean | AddEventListenerOptions
    
    #### Returns void
    
    Overrides EventTarget.addEventListener
    

### dispatchEvent[](#dispatchevent)

-   dispatchEvent(event: Event): boolean[](#dispatchevent-1)
    
    The **`dispatchEvent()`** method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order. The normal event processing rules (including the capturing and optional bubbling phase) also apply to events dispatched manually with dispatchEvent().
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
    
    #### Parameters
    
    -   event: Event
    
    #### Returns boolean
    
    Inherited from EventTarget.dispatchEvent
    

### removeCue[](#removecue)

-   removeCue(cue: [TextTrackCue](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackCue/)): void[](#removecue-1)
    
    The **`removeCue()`** method of the TextTrack interface removes a cue from the list of cues.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/removeCue)
    
    #### Parameters
    
    -   cue: [TextTrackCue](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackCue/)
    
    #### Returns void
    

### removeEventListener[](#removeeventlistener)

-   removeEventListener<[K](#removeeventlistenerk) extends "cuechange"\>(  
        type: [K](#removeeventlistenerk),  
        listener: (this: TextTrack, ev: [TextTrackEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackEventMap/)\[[K](#removeeventlistenerk)\]) \=> any,  
        options?: boolean | EventListenerOptions,  
    ): void[](#removeeventlistener-1)
    
    The **`removeEventListener()`** method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from the target. The event listener to be removed is identified using a combination of the event type, the event listener function itself, and various optional options that may affect the matching process; see Matching event listeners for removal.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
    
    #### Type Parameters
    
    -   K extends "cuechange"
    
    #### Parameters
    
    -   type: [K](#removeeventlistenerk)
    -   listener: (this: TextTrack, ev: [TextTrackEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.TextTrackEventMap/)\[[K](#removeeventlistenerk)\]) \=> any
    -   `Optional`options: boolean | EventListenerOptions
    
    #### Returns void
    
    Overrides EventTarget.removeEventListener
    
-   removeEventListener(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | EventListenerOptions,  
    ): void[](#removeeventlistener-2)
    
    The **`removeEventListener()`** method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from the target. The event listener to be removed is identified using a combination of the event type, the event listener function itself, and various optional options that may affect the matching process; see Matching event listeners for removal.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
    
    #### Parameters
    
    -   type: string
    -   listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/)
    -   `Optional`options: boolean | EventListenerOptions
    
    #### Returns void
    
    Overrides EventTarget.removeEventListener
