Lekcja 10.4: Napisy i ścieżki tekstowe (<track>)
Zwiększanie dostępności i zasięgu multimediów
Osadzenie audio i wideo to dopiero początek. Aby treści multimedialne były dostępne i zrozumiałe dla jak najszerszego grona odbiorców, w tym osób niesłyszących, niedosłyszących, niewidomych, niedowidzących, a także osób oglądających w hałaśliwym otoczeniu lub uczących się języka, potrzebujemy mechanizmu dodawania ścieżek tekstowych. Do tego właśnie służy znacznik <track>
.
Element <track>
Znacznik <track>
jest używany jako dziecko elementu <audio>
lub <video>
i pozwala na określenie zewnętrznych, zsynchronizowanych czasowo ścieżek tekstowych.
- Jest to element pusty (nie ma znacznika zamykającego).
- Wymaga kilku kluczowych atrybutów do poprawnego działania.
Atrybuty znacznika <track>
kind
: Określa rodzaj ścieżki tekstowej. Najważniejsze wartości:subtitles
: Napisy dla osób słyszących, ale nie rozumiejących języka audio (tłumaczenie dialogów).captions
: Napisy dla osób niesłyszących lub niedosłyszących. Obejmują nie tylko dialogi, ale także opisy ważnych dźwięków (np. [muzyka], [śmiech], [dzwonek telefonu]).descriptions
: Audiodeskrypcja - tekstowy opis scen wizualnych dla osób niewidomych lub niedowidzących (odczytywany przez syntezator mowy lub używany przez inne technologie).chapters
: Tytuły rozdziałów, używane do nawigacji wewnątrz multimediów.metadata
: Dane przeznaczone do przetwarzania przez skrypty, niewidoczne dla użytkownika.
src
(wymagany): Wskazuje adres URL pliku zawierającego ścieżkę tekstową. Najczęściej używanym formatem jest WebVTT (.vtt
).srclang
(wymagany dlakind="subtitles"
): Określa język ścieżki tekstowej za pomocą standardowego kodu języka (np.pl
dla polskiego,en
dla angielskiego,de
dla niemieckiego).label
(wymagany): Tekstowa etykieta ścieżki, która będzie widoczna dla użytkownika w interfejsie przeglądarki (np. w menu wyboru napisów). Powinna być czytelna i jednoznacznie identyfikować ścieżkę (np. "Polskie napisy", "English subtitles", "Audiodeskrypcja").default
: Atrybut logiczny. Jeśli jest obecny, dana ścieżka (np. napisy) powinna być domyślnie włączona, jeśli preferencje użytkownika nie wskazują inaczej. W danej grupie ścieżek tego samego rodzaju (np. kilka wersji napisów) tylko jedna może mieć atrybutdefault
.
Format WebVTT (.vtt)
WebVTT (Web Video Text Tracks) to standardowy format plików tekstowych używany przez znacznik <track>
. Jest stosunkowo prosty i czytelny.
Podstawowa struktura pliku .vtt
:
WEBVTT
00:00:01.000 --> 00:00:05.000
To jest pierwszy napis, który pojawi się między 1 a 5 sekundą.
00:00:06.500 --> 00:00:10.000
A to jest drugi napis.
Może on zawierać wiele linii.
CHAPTER
00:01:00.000 --> 00:05:00.000
Rozdział 1: Wprowadzenie
NOTE To jest komentarz, ignorowany przez parser
00:00:12.000 --> 00:00:15.000 align:start line:0%
[Muzyka w tle]
Ten napis (caption) opisuje dźwięk i jest wyrównany do lewej górnej krawędzi.
- Plik musi zaczynać się od linii
WEBVTT
. - Poszczególne wpisy (cue) są oddzielone pustymi liniami.
- Każdy wpis zawiera znacznik czasu początku i końca (
hh:mm:ss.ttt --> hh:mm:ss.ttt
). - Poniżej znacznika czasu znajduje się tekst napisu/opisu.
- Można dodawać opcjonalne ustawienia (np.
align
,line
) oraz komentarze (NOTE
). - Wpisy dla rozdziałów (
kind="chapters"
) mogą być oznaczone słowem kluczowymCHAPTER
.
Przykład użycia <track> w <video>
<video controls width="640" height="360" poster="film.jpg" preload="metadata">
<source src="film.mp4" type="video/mp4">
<source src="film.webm" type="video/webm">
<!-- Napisy w różnych językach -->
<track kind="subtitles" src="napisy_pl.vtt" srclang="pl" label="Polski" default>
<track kind="subtitles" src="napisy_en.vtt" srclang="en" label="English">
<!-- Napisy dla niesłyszących (Captions) -->
<track kind="captions" src="captions_pl.vtt" srclang="pl" label="Polski [CC]">
<!-- Audiodeskrypcja -->
<track kind="descriptions" src="opis_pl.vtt" srclang="pl" label="Audiodeskrypcja (PL)">
<!-- Rozdziały -->
<track kind="chapters" src="rozdzialy.vtt" srclang="pl" label="Rozdziały">
<!-- Tekst zastępczy -->
Twoja przeglądarka nie obsługuje wideo HTML5 lub formatu WebVTT.
</video>
W tym przykładzie dodaliśmy:
- Dwa zestawy napisów (polski - domyślny, i angielski).
- Polskie napisy dla niesłyszących (captions).
- Polską audiodeskrypcję.
- Polskie nazwy rozdziałów.
Przeglądarka, która obsługuje <track>
, zazwyczaj wyświetli w kontrolkach odtwarzacza menu pozwalające użytkownikowi wybrać, które ścieżki tekstowe chce włączyć.
Zadanie praktyczne (z rozwiązaniem)
Zadanie: Do odtwarzacza wideo z poprzedniej lekcji dodaj polskie napisy. Utwórz prosty plik napisy_testowe.vtt
z co najmniej dwoma wpisami. Użyj znacznika <track>
z odpowiednimi atrybutami (kind="subtitles"
, src
, srclang="pl"
, label="Polski"
). Możesz dodać atrybut default
.
Krok 1: Utwórz plik `napisy_testowe.vtt` (zapisz go w tym samym katalogu co plik HTML lub w podkatalogu, np. `tracks`)
WEBVTT
00:00:02.000 --> 00:00:05.000
Witaj w naszym wideo testowym!
00:00:06.000 --> 00:00:09.500
To jest przykład dodawania napisów za pomocą WebVTT.
Krok 2: Zmodyfikuj kod HTML odtwarzacza wideo
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<title>Wideo z Napisami</title>
<style>
video {
display: block;
margin: 20px auto;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<h1>Wideo testowe z napisami</h1>
<video controls width="480" height="270" poster="migawka.jpg" preload="metadata">
<source src="wideo-testowe.mp4" type="video/mp4">
<source src="wideo-testowe.webm" type="video/webm">
<!-- Dodane napisy -->
<track kind="subtitles" src="napisy_testowe.vtt" srclang="pl" label="Polski" default>
<p>
Twoja przeglądarka nie obsługuje odtwarzania wideo HTML5 lub formatu WebVTT.
Możesz pobrać plik:
<a href="wideo-testowe.mp4" download>Pobierz MP4</a> lub
<a href="wideo-testowe.webm" download>Pobierz WebM</a>.
</p>
</video>
</body>
</html>
Po otwarciu tego pliku HTML w przeglądarce, w kontrolkach odtwarzacza powinna pojawić się opcja włączenia/wyłączenia polskich napisów (mogą być domyślnie włączone ze względu na atrybut default
). Tekst z pliku .vtt
będzie się pojawiał w odpowiednich momentach filmu.
Dodatkowe zadania do samodzielnego wykonania:
- Dodaj drugi plik napisów (np.
napisy_en.vtt
) w innym języku (np. angielskim) i dodaj odpowiedni znacznik<track>
. Sprawdź, czy możesz przełączać się między językami w menu odtwarzacza. - Utwórz plik
.vtt
zkind="chapters"
i dodaj znaczniki czasowe dla kilku sekcji wideo. Sprawdź, czy odtwarzacz oferuje nawigację po rozdziałach. - Spróbuj dodać prostą stylizację do napisów bezpośrednio w pliku
.vtt
(np. używając znaczników jak<b>
,<i>
lub selektorów CSS w blokuSTYLE
- zaawansowane).
Najczęściej zadawane pytania
Do czego służy znacznik <track>?
Do dodawania zewnętrznych, zsynchronizowanych czasowo ścieżek tekstowych (np. napisów, audiodeskrypcji, rozdziałów) do elementów <audio> i <video>.
Jaki format pliku jest używany dla <track>?
Najczęściej używanym i standardowym formatem jest WebVTT (Web Video Text Tracks), który ma rozszerzenie .vtt.
Jakie są rodzaje ścieżek (atrybut `kind`)?
Najważniejsze rodzaje to `subtitles` (tłumaczenia), `captions` (napisy dla niesłyszących), `descriptions` (audiodeskrypcja), `chapters` (rozdziały) i `metadata` (dane dla skryptów).
Do czego służą atrybuty `srclang` i `label`?
`srclang` określa kod języka ścieżki (np. "pl", "en"), jest wymagany dla `kind="subtitles"`. `label` to czytelna dla użytkownika nazwa ścieżki, wyświetlana w menu odtwarzacza.
Jak włączyć napisy domyślnie?
Dodaj atrybut logiczny `default` do odpowiedniego znacznika <track>. Tylko jedna ścieżka danego rodzaju w grupie może być domyślna.