Jak wstawić na stronę obraz z tekstem alternatywnym, podpis pod zdjęciem, dźwięk i film z przyciskami sterowania, ramkę iframe oraz grafikę svg i canvas. Lekcja 3.6 kursu INF.03.
Element multimedialny to obraz, dźwięk albo film osadzony w stronie znacznikiem, który wskazuje plik atrybutem src. Na egzaminie pisemnym wracają trzy rodziny pytań: który zapis wstawi obraz z tekstem alternatywnym, które atrybuty znacznika video dają przyciski sterowania i odtwarzanie w kółko oraz do czego służy alt. W zadaniu praktycznym każdy obraz z arkusza musi mieć tekst alternatywny, a zdjęcie zwykle trzeba wcześniej przeskalować do zadanej szerokości, co robi się w edytorze grafiki, nie w HTML.
Znacznik img
<img> (od image, OBRAZ) to znacznik wstawiający obraz w tym miejscu strony, w którym stoi. Nie ma znacznika zamykającego, bo nie obejmuje żadnej treści: wszystko niesie w atrybutach.
<img src="obrazy/mysz.jpg" alt="Mysz bezprzewodowa w kolorze czarnym">
src (od source, ŹRÓDŁO) podaje ścieżkę do pliku. Zapis wyżej to ścieżka względna: przeglądarka szuka pliku mysz.jpg w podkatalogu obrazy/, leżącym obok index.html. Dwie kropki cofają o katalog wyżej (../obrazy/mysz.jpg), ukośnik na początku prowadzi do katalogu głównego witryny (/obrazy/mysz.jpg). Ścieżka z dysku, taka jak C:/strona/obrazy/mysz.jpg, zadziała tylko na jednym komputerze i na egzaminie jest błędem.
Pułapka: obraz wskazuje się atrybutem src, nie href. href należy do odnośnika <a> i do <link>, więc zapis <img href="kotek.jpg"> nie pokaże niczego. To najczęstsza błędna odpowiedź w pytaniach o wstawianie obrazu.
alt, czyli tekst alternatywny
alt (od alternative text, TEKST ALTERNATYWNY) to opis obrazu słowami. Trafia do trzech odbiorców naraz. Czytnik ekranu, z którego korzysta osoba niewidoma, odczyta go zamiast obrazu. Przeglądarka wyświetli go w miejscu obrazu, gdy pliku nie ma albo ścieżka jest zła. Wyszukiwarka użyje go do opisania zdjęcia, bo samego obrazu nie umie przeczytać.
Opis ma mówić, co widać: alt="Monitor 27 cali na czarnej podstawie", a nie alt="obrazek" ani alt="zdjecie1.jpg". Gdy obraz jest wyłącznie ozdobą (linia oddzielająca, deseń w banerze), wpisuje się pusty tekst alternatywny alt="". To nie to samo, co brak atrybutu: pusty alt mówi czytnikowi „pomiń", brak alt każe mu czytać nazwę pliku.
Pułapka: title nie zastępuje alt. title daje tylko dymek po najechaniu myszą, czytniki ekranu zwykle go pomijają, a walidator i tak zgłosi brak tekstu alternatywnego.
Wymiary, waga i format pliku
width (SZEROKOŚĆ) i height (WYSOKOŚĆ) podają rozmiar obrazu w pikselach, samą liczbą, bez px:
<img src="obrazy/monitor27.jpg" alt="Monitor 27 cali" width="300" height="200">
Podanie obu wymiarów rezerwuje miejsce na stronie, więc tekst nie skacze podczas wczytywania. Jeśli proporcje nie zgadzają się z proporcjami pliku, obraz wyjdzie rozciągnięty. Po podaniu tylko jednego wymiaru przeglądarka wyliczy drugi sama i proporcje zostaną zachowane.
Zmniejszenie obrazu atrybutem width nie zmniejsza pliku: zdjęcie o szerokości 2000 pikseli pokazane jako 300 pikseli nadal waży tyle samo i tyle samo trzeba pobrać. Żeby strona wczytywała się szybciej, plik skaluje się w edytorze grafiki, na przykład w programie GIMP (Obraz, Skaluj obraz). To osobne pytanie w banku i osobny punkt w zadaniu praktycznym.
Dwa atrybuty dodatkowe: title pokazuje dymek z tekstem po najechaniu kursorem, a loading="lazy" (LENIWE WCZYTYWANIE) każe pobrać obraz dopiero wtedy, gdy użytkownik przewinie stronę do jego miejsca.
Formaty, które trzeba rozpoznać:
›
JPG (JPEG): zdjęcia, kompresja stratna, bez przezroczystości.
›
PNG: grafika z ostrymi krawędziami, kompresja bezstratna, obsługuje przezroczystość.
›
GIF: 256 kolorów i prosta animacja.
›
SVG: grafika wektorowa, powiększa się bez utraty jakości, dobra na logo i ikony.
›
WEBP: nowszy format do zdjęć i grafiki, mniejszy plik przy tej samej jakości.
Kompresja, głębia bitowa i modele barw są opisane w dziale grafika. figure, picture i mapa obrazu
<figure> (RYSUNEK) to obraz razem z podpisem, traktowany jako jedna całość. Podpis zapisuje się w <figcaption> (PODPIS RYSUNKU), na początku albo na końcu bloku:
<figure>
<img src="obrazy/monitor27.jpg" alt="Monitor 27 cali na czarnej podstawie" width="300">
<figcaption>Monitor 27 cali, matryca IPS</figcaption>
</figure>
Podpis widzi każdy, tekst alternatywny czyta czytnik ekranu, więc oba są potrzebne i nie powtarzają się słowo w słowo.
<picture> (OBRAZ) pozwala podać kilka plików tego samego zdjęcia i zostawić wybór przeglądarce: w środku stoi kilka znaczników <source> z warunkiem szerokości ekranu albo typem pliku, a na końcu zwykły <img> jako wersja awaryjna. Tak daje się lżejsze zdjęcie na telefon, a większe na monitor.
Mapa obrazu dzieli jeden obraz na klikalne obszary. Obraz dostaje atrybut usemap="#nazwa", a <map name="nazwa"> zawiera znaczniki <area> z kształtem, współrzędnymi i adresem docelowym. Nowe strony robią to rzadko, ale usemap bywa w banku pytań odpowiedzią błędną, podstawianą w miejsce alt.
Dźwięk i film: audio i video
<audio> (DŹWIĘK) i <video> (WIDEO) to znaczniki osadzające na stronie plik dźwiękowy i film. Mają znacznik zamykający, a tekst wpisany między znacznikami pokaże się tylko w przeglądarce, która ich nie obsługuje. Plik wskazuje się atrybutem src albo zagnieżdżonymi znacznikami <source> z atrybutem type, gdy ten sam materiał podajesz w kilku formatach.
<video controls loop poster="obrazy/plakat.jpg" width="480">
<source src="filmy/prezentacja.mp4" type="video/mp4">
<source src="filmy/prezentacja.webm" type="video/webm">
Twoja przeglądarka nie odtworzy tego filmu.
</video>
controls
pokazuje przyciski sterowania
prawie zawsze, bo bez nich nie da się uruchomić materiału
autoplay
uruchamia od razu po wczytaniu
tylko razem z muted
loop
odtwarza w kółko
krótka pętla, na przykład prezentacja produktu
muted
wycisza dźwięk
tło strony oraz warunek działania autoplay
poster
obraz widoczny przed odtworzeniem
tylko video
preload
ile pobrać z góry: none, metadata, auto
oszczędzanie transferu
width, height
rozmiar odtwarzacza w pikselach
tylko video
Formaty dźwięku: MP3 (stratny, odtwarza go wszystko), OGG (stratny, format otwarty), WAV (bezstratny, duży plik). Formaty wideo: MP4 z kodekiem H.264 (bezpieczny wybór), WEBM i OGV (formaty otwarte).
Pułapka: samo autoplay nie zadziała, bo przeglądarki blokują automatyczne odtwarzanie z dźwiękiem. Film rusza sam dopiero z muted. W pytaniu o przyciski sterowania i odtwarzanie w kółko poprawną parą jest controls i loop.
iframe: cudza strona w ramce
<iframe> (od inline frame, RAMKA WEWNĘTRZNA) to okno, w którym wyświetla się inna strona: film z serwisu YouTube, mapa dojazdu, kalendarz.
<iframe src="https://www.youtube.com/embed/abc123" width="560" height="315"
title="Prezentacja klawiatury" allowfullscreen></iframe>
src to adres osadzanej strony, width i height to rozmiar ramki w pikselach, title opisuje jej zawartość dla czytnika ekranu, a allowfullscreen pozwala rozwinąć materiał na cały ekran. Znacznik ma część zamykającą, nawet gdy nic między znacznikami nie stoi. W ramce działa cudzy kod, więc osadza się w niej wyłącznie serwisy, którym ufasz. Stare ramki <frameset> i <frame>, dzielące okno na kilka osobnych dokumentów, są przestarzałe: w HTML5 układ strony robi się znacznikami sekcji i stylami CSS.
svg i canvas
<svg> (od Scalable Vector Graphics, SKALOWALNA GRAFIKA WEKTOROWA) to grafika zapisana wprost w kodzie strony, jako znaczniki kształtów: <rect> (prostokąt), <circle> (koło), <line> (linia), <path> (ścieżka).
<svg width="120" height="60">
<rect x="0" y="0" width="120" height="60" fill="#eeeeee" />
<circle cx="30" cy="30" r="20" fill="#cc6633" />
</svg>
<canvas> (PŁÓTNO) to prostokątny obszar do rysowania, sam z siebie pusty. Obraz powstaje dopiero wtedy, gdy skrypt JavaScript pobierze kontekst rysowania i wyda polecenia.
<canvas id="wykres" width="200" height="100"></canvas>
Bez skryptu strona pokaże w tym miejscu puste pole. Różnica, o którą pytają: kształty SVG są elementami dokumentu, więc da się je stylować w CSS, kliknąć i zmienić skryptem, a canvas zapisuje wyłącznie piksele, więc kliknięcie trafia w całe płótno, nie w narysowaną figurę.
Zdjęcie i film na stronie sklepu
Strona index.html ma już baner, menu, blok boczny i blok główny z listą produktów oraz tabelą cen (lekcja o listach, tabelach i odnośnikach). Do bloku głównego dochodzi karta produktu: zdjęcie z podpisem i film z prezentacją. <section>
<h3>Monitor 27</h3>
<figure>
<img src="obrazy/monitor27.jpg" alt="Monitor 27 cali na czarnej podstawie" width="320">
<figcaption>Monitor 27 cali, 2560 na 1440 pikseli</figcaption>
</figure>
<video controls width="320" poster="obrazy/monitor27.jpg">
<source src="filmy/monitor27.mp4" type="video/mp4">
Film z prezentacją monitora.
</video>
</section>
Pliki leżą w podkatalogach obrazy/ i filmy/, obok index.html. Zdjęcie zostało wcześniej przeskalowane w programie GIMP do szerokości 320 pikseli, więc width powtarza tylko rzeczywisty rozmiar pliku.
Na egzaminie
W części pisemnej pytania z tej lekcji są krótkie i powtarzalne:
1.
Który zapis wstawia obraz z tekstem alternatywnym. Odpowiedzi mieszają src z href oraz alt z title. Poprawny jest zawsze src razem z alt.
2.
Do czego służy alt. Odpowiedź: tekst pokazywany zamiast grafiki i czytany przez programy dla osób niewidomych. Nie jest to podpis pod obrazem ani ścieżka do pliku.
3.
Które atrybuty znacznika video dają przyciski sterowania i odtwarzanie w kółko. Odpowiedź: controls i loop. Warianty z autoplay, muted albo poster są pułapką, bo muted wycisza, a poster daje tylko obraz przed odtworzeniem.
4.
Czym zmniejszyć wagę dużej grafiki. Odpowiedź wskazuje program graficzny, a nie atrybuty HTML i nie właściwości CSS.
5.
Który atrybut łączy obraz z mapą obszarów. Odpowiedź: usemap. W pytaniu o dostępność ten sam usemap stoi jako odpowiedź błędna, obok poprawnego alt.
W zadaniu praktycznym arkusz podaje nazwy plików graficznych, ich położenie i treść tekstów alternatywnych. Punkty przepadają najczęściej na trzech rzeczach: brak alt przy którymś obrazie, obraz wstawiony ścieżką z dysku zamiast względnej oraz grafika o wymiarach innych niż zadane. Skalowanie robi się w programie GIMP przed wstawieniem obrazu na stronę, bo oceniany jest zapisany plik, a nie sposób jego wyświetlenia.
Ściąga
<img src="..." alt="...">
obraz z tekstem alternatywnym, bez znacznika zamykającego
src
ścieżka do pliku, w obrazie nigdy href
alt
opis dla czytnika ekranu i tekst zamiast brakującego obrazu
alt=""
obraz ozdobny, czytnik ma go pominąć
width, height
rozmiar w pikselach, samą liczbą, bez px
title
dymek po najechaniu kursorem
loading="lazy"
pobierz obraz dopiero przy przewijaniu
<figure>, <figcaption>
obraz i widoczny podpis jako całość
<picture>, <source>
inny plik dla innej szerokości ekranu
usemap, <map>, <area>
klikalne obszary na obrazie
<audio>, <video>
osadzony dźwięk i film
controls, loop, muted, poster
przyciski, pętla, wyciszenie, obraz przed startem
<iframe src="..." title="...">
inna strona osadzona w ramce
<svg>
grafika wektorowa jako znaczniki kształtów
<canvas>
płótno rysowane skryptem JavaScript, bez skryptu puste
Pobierz ściągę PDF