HTML::O...ackList(3)

πŸ“¦ version 0.6.0, in alpine 3.24

Hey bestie πŸ’– you're reading HTML::O...ackList(3) from the User Contributed Perl Documentation crew, and it's giving HTML Object DOM Track List Class realness. Grab a strawberry πŸ“ and let's go.

✨ NAME ✨

HTML::Object::DOM::TextTrackList β€” HTML Object DOM Track List Class. Periodt.

🌸 SYNOPSIS 🌸

Use it like this, bestie:

use HTML::Object::DOM::TextTrackList;
my $list = HTML::Object::DOM::TextTrackList->new ||
    die( HTML::Object::DOM::TextTrackList->error, "\n" );

Getting a video element's text track list:

my $textTracks = $doc->querySelector( 'video' )->textTracks;

Monitoring track count changes:

$textTracks->onaddtrack = \&updateTrackCount;
$textTracks->onremovetrack = \&updateTrackCount;

sub updateTrackCount
{
    my $event = shift( @_ );
    my $trackCount = $textTracks->length;
    drawTrackCountIndicator( $trackCount );
}

πŸ”₯ VERSION πŸ”₯

v0.2.0

πŸ’… DESCRIPTION πŸ’…

The "TextTrackList" interface is used to represent a list of the text tracks defined by the "<track"> element, with each track represented by a separate textTrack object in the list. It inherits from HTML::Object::EventTarget.

πŸ¦‹ INHERITANCE πŸ¦‹

Here's the family tree, no cap:

+-----------------------+     +---------------------------+     +-------------------------+     +----------------------------------+
| HTML::Object::Element | --> | HTML::Object::EventTarget | --> | HTML::Object::DOM::List | --> | HTML::Object::DOM::TextTrackList |
+-----------------------+     +---------------------------+     +-------------------------+     +----------------------------------+

πŸ‘‘ PROPERTIES πŸ‘‘

Inherits properties from its parent HTML::Object::DOM::List.

⭐ length

The number of tracks in the list.

Example:

my $media = $doc->querySelector( 'video, audio' );
my $numTextTracks = 0;

if( $media->textTracks )
{
    $numTextTracks = $media->textTracks->length;
}

See also Mozilla documentation at https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/length.

🌈 METHODS 🌈

Inherits methods from its parent HTML::Object::DOM::List.

πŸ’œ addEventListener

Set a new event listener for the provided event type. See HTML::Object::EventTarget.

πŸŽ€ children

Set or get an array object of elements.

🧚 forEach

Provided with a callback code reference and this will call it for each child element.

See "foreach" in Module::Generic::Array.

πŸ“ getTrackById

Returns the TextTrack found within the "TextTrackList" whose id matches the specified string. If no match is found, "undef" is returned.

Example:

my $theTrack = $TextTrackList->getTrackById( $id );

See also Mozilla documentation at https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/getTrackById.

πŸ’€ EVENTS πŸ’€

πŸ”” addtrack

Fired when a new text track has been added to the media element. Also available via the onaddtrack property.

Example:

my $mediaElement = $doc->querySelector( 'video, audio' );

$mediaElement->textTracks->addEventListener( addtrack => sub
{
    my $event = shift( @_ );
    say( "Text track: ", $event->track->label, " added" );
});

my $mediaElement = $doc->querySelector( 'video, audio' );

$mediaElement->textTracks->onaddtrack = sub
{
    my $event = shift( @_ );
    say( "Text track: ", $event->track->label, " added" );
};

See also Mozilla documentation at https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/addtrack_event.

πŸ”„ change

Fired when a text track has been made active or inactive. Also available via the onchange property.

Example:

my $mediaElement = $doc->querySelectorAll( 'video, audio' )->[0];
$mediaElement->textTracks->addEventListener( change => sub
{
    my $event = shift( @_ );
    say( "'", $event->type, "' event fired" );
});

my $mediaElement = $doc->querySelector( 'video, audio' );
$mediaElement->textTracks->onchange = sub
{
    say( "'", $event->type, "' event fired" );
};

See also Mozilla documentation at https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/change_event.

πŸ—‘οΈ removetrack

Fired when a new text track has been removed from the media element. Also available via the onremovetrack property.

Example:

my $mediaElement = $doc->querySelector( 'video, audio' );

$mediaElement->textTracks->addEventListener( removetrack => sub
{
    my $event = shift( @_ );
    say( "Text track: ", $event->track->label, " removed" );
});

my $mediaElement = $doc->querySelector( 'video, audio' );

$mediaElement->textTracks->onremovetrack = sub
{
    my $event = shift( @_ );
    say( "Text track: ", $event->track->label, " removed" );
};

See also Mozilla documentation at https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/removeTrack_event.

🫢 EVENT HANDLERS 🫢

onaddtrack

An event handler to be called when the "addtrack" event is fired, indicating that a new text track has been added to the media element.

Example:

$doc->querySelector( 'video' )->textTracks->onaddtrack = sub
{
    my $event = shift( @_ );
    addToTrackList( $event->track );
};

See also Mozilla documentation at https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/onaddtrack.

onchange

An event handler to be called when the change event occurs.

Example:

my $trackList = $doc->querySelector( 'video, audio' )->textTracks;

$trackList->onchange = sub
{
    my $event = shift( @_ );
     #.... do something
};

See also Mozilla documentation at https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/onchange.

onremovetrack

An event handler to call when the removetrack event is sent, indicating that a text track has been removed from the media element.

Example:

$doc->querySelectorAll( 'video, audio' )->[0].textTracks->onremovetrack = sub
{
    my $event = shift( @_ );
    myTrackCount = $doc->querySelectorAll( 'video, audio' )->[0]->textTracks->length;
};

See also Mozilla documentation at https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/onremovetrack.

πŸ’Œ AUTHOR πŸ’Œ

Jacques Deguest <jack@deguest.jp>

πŸ‘€ SEE ALSO πŸ‘€

Mozilla documentation at https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList.

Copyright(c) 2021 DEGUEST Pte. Ltd.

All rights reserved

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


That's the whole page, bestie πŸ’– β€” perl v5.42.2, dated 2026-02-15, and you were reading HTML::O...ackList(3). Slay ✨

πŸ“¦ where this page comes from