HTML::O...ackList(3)
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 & LICENSE π
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
- alpine 3.24: perl-html-object-doc 0.6.0-r1 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms