diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.cpp index c140d77a3f..64af6ffe38 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.cpp @@ -48,6 +48,12 @@ void HTMLTrackElement::attribute_changed(FlyString const& name, Optional } else if (name.equals_ignoring_ascii_case("srclang"sv)) { m_track->set_language(value.value_or({})); } + + // https://html.spec.whatwg.org/multipage/media.html#dom-texttrack-id + // For tracks that correspond to track elements, the track's identifier is the value of the element's id attribute, if any. + if (name.equals_ignoring_ascii_case("id"sv)) { + m_track->set_id(value.value_or({})); + } } } diff --git a/Userland/Libraries/LibWeb/HTML/TextTrack.cpp b/Userland/Libraries/LibWeb/HTML/TextTrack.cpp index b0a060b97b..7e53d03622 100644 --- a/Userland/Libraries/LibWeb/HTML/TextTrack.cpp +++ b/Userland/Libraries/LibWeb/HTML/TextTrack.cpp @@ -64,6 +64,17 @@ void TextTrack::set_language(String language) m_language = language; } +// https://html.spec.whatwg.org/multipage/media.html#dom-texttrack-id +String TextTrack::id() +{ + return m_id; +} + +void TextTrack::set_id(String id) +{ + m_id = id; +} + // https://html.spec.whatwg.org/multipage/media.html#handler-texttrack-oncuechange void TextTrack::set_oncuechange(WebIDL::CallbackType* event_handler) { diff --git a/Userland/Libraries/LibWeb/HTML/TextTrack.h b/Userland/Libraries/LibWeb/HTML/TextTrack.h index ecd54ce00f..cfb703ccfe 100644 --- a/Userland/Libraries/LibWeb/HTML/TextTrack.h +++ b/Userland/Libraries/LibWeb/HTML/TextTrack.h @@ -33,6 +33,9 @@ public: String language(); void set_language(String); + String id(); + void set_id(String); + void set_oncuechange(WebIDL::CallbackType*); WebIDL::CallbackType* oncuechange(); @@ -44,6 +47,8 @@ private: Bindings::TextTrackKind m_kind { Bindings::TextTrackKind::Subtitles }; String m_label {}; String m_language {}; + + String m_id {}; }; Bindings::TextTrackKind text_track_kind_from_string(String); diff --git a/Userland/Libraries/LibWeb/HTML/TextTrack.idl b/Userland/Libraries/LibWeb/HTML/TextTrack.idl index 0b372f2a5c..e8d81f720b 100644 --- a/Userland/Libraries/LibWeb/HTML/TextTrack.idl +++ b/Userland/Libraries/LibWeb/HTML/TextTrack.idl @@ -13,7 +13,7 @@ interface TextTrack : EventTarget { readonly attribute DOMString label; readonly attribute DOMString language; - [FIXME] readonly attribute DOMString id; + readonly attribute DOMString id; [FIXME] readonly attribute DOMString inBandMetadataTrackDispatchType; [FIXME] attribute TextTrackMode mode;