Co to jest `source` w HTML?

W HTML <source> to specjalny tag służący do definiowania alternatywnych źródeł plików multimedialnych dla elementów takich jak <audio>, <video> oraz <picture>. Pozwala on przeglądarce na wybór najbardziej odpowiedniego pliku w zależności od obsługiwanych formatów lub warunków wyświetlania.

Czym jest znacznik <source>?

  • Znacznik <source> – umożliwia zdefiniowanie wielu wersji tego samego pliku multimedialnego (np. różne formaty wideo lub audio), z których przeglądarka wybiera ten najlepiej obsługiwany;
  • obowiązkowo używany jest wewnątrz elementów: <audio>, <video>, <picture>;
  • to tzw. element pusty (void element) – nie zawiera własnej treści i zawsze występuje jako samodzielny tag (bez tagu zamykającego).

Najważniejsze atrybuty <source>

  • src – adres pliku źródłowego (np. ścieżka do pliku .mp3, .mp4, .webp);
  • type – typ MIME pliku (np. „audio/mpeg”, „video/mp4”, „image/webp”), co ułatwia przeglądarkom prawidłową interpretację danych;
  • media – warunek mediowy (media query), pozwala określić, kiedy dane źródło powinno być użyte (najczęściej z <picture> dla responsywnych obrazów);
  • srcset – zestaw adresów obrazów o różnych rozdzielczościach lub wariantach, wykorzystywany z <picture>.

Przykłady zastosowań

Wideo z alternatywnymi formatami

Pozwala to na lepszą kompatybilność z różnymi przeglądarkami:

<video controls>
    <source src="movie.mp4" type="video/mp4">
    <source src="movie.webm" type="video/webm">
    Twoja przeglądarka nie obsługuje wideo.
</video>

Przeglądarka wybierze pierwszą obsługiwaną wersję pliku.

Dźwięk – różne formaty audio

<audio controls>
    <source src="song.ogg" type="audio/ogg">
    <source src="song.mp3" type="audio/mpeg">
    Twoja przeglądarka nie obsługuje audio.
</audio>

W tym przypadku, jeśli przeglądarka nie obsługuje formatu OGG, skorzysta z MP3.

Obrazy responsywne z <picture>

Idealne do serwowania np. innego rozmiaru lub formatu obrazu na komputerach i urządzeniach mobilnych:

<picture>
    <source srcset="image-800.webp" type="image/webp" media="(min-width: 800px)">
    <source srcset="image-400.webp" type="image/webp" media="(max-width: 799px)">
    <img src="image-fallback.jpg" alt="Opis obrazka">
</picture>

Przeglądarka wybiera odpowiedni wariant na podstawie szerokości ekranu i obsługi WebP.

Charakterystyka i dobre praktyki

  • Brak zawartości – tag <source> nie zawiera żadnego tekstu czy innych elementów, same atrybuty decydują o jego działaniu;
  • Kolejność ma znaczenie – przeglądarka analizuje tagi <source> od góry i wybiera pierwszy obsługiwany format;
  • Współpraca z fallbackiem – warto umieszczać domyślne treści (np. tradycyjny <img>, tekst informujący o braku wsparcia elementu) jako ostatni element wewnątrz <audio>, <video>, <picture>.

Typowe zastosowania

  • przygotowanie pluriformatycznych plików audio i wideo, tak by każdy użytkownik, niezależnie od przeglądarki, mógł odtworzyć multimedia,
  • serwowanie obrazków responsywnych lub o różnej jakości w zależności od urządzenia i warunków wyświetlania,
  • zwiększenie wydajności strony i komfortu użytkownika – obrazy czy filmy są ładowane wyłącznie wtedy, gdy są faktycznie potrzebne w danym środowisku.

Podsumowując – tag <source> w HTML to uniwersalne narzędzie pozwalające programiście zadbać o kompatybilność i optymalizację serwowania multimediów na stronie WWW. Efektywne użycie tego znacznika, wraz z odpowiednimi atrybutami, pozwala na stworzenie serwisów nowoczesnych, dostępnych i przyjaznych dla każdego użytkownika, niezależnie od konfiguracji przeglądarki czy urządzenia.

Programista i twórca serwisu Creative Coding, absolwent Politechniki Warszawskiej (WEiTI). Od 10+ lat łączy front‑end, grafikę generatywną i narzędzia dla twórców; opublikował 120+ projektów i artykułów, prowadził warsztaty dla 2 000+ uczestników. Pracuje z JavaScriptem, Three.js, P5.js i GLSL, bada wydajność i dokumentuje procesy, tworząc praktyczne przewodniki dla osób łączących kod z obrazem, dźwiękiem i interakcją.
Zostaw komentarz

Komentarze

Brak komentarzy. Dlaczego nie rozpoczniesz dyskusji?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *