obrazy dekoracyjne, np. gradienty tła przycisków lub obrazy tła w sekcjach treści lub na całej stronie; mają charakter prezentacyjny i powinny być stosowane w kodzie CSS. Obraz, który dodaje kontekst do dokumentu, ma charakter treści i powinien być umieszczonego za pomocą kodu HTML.
Główną metodą dołączania obrazów jest użycie tagu <img>
z tagiem src
odwołujący się do zasobu obrazu, i atrybut alt
opisujący obraz.
<img src="images/eve.png" alt="Eve">
Zarówno atrybut srcset
w elemencie <img>
, jak i element <picture>
umożliwiają dołączenie wielu źródeł obrazów za pomocą atrybutu
z powiązanymi zapytaniami o multimedia, z których każde zawiera zastępcze źródło obrazu, umożliwiając wyświetlanie najbardziej odpowiedniego pliku graficznego na podstawie
rozdzielczości, możliwości przeglądarki i rozmiaru widocznego obszaru. Atrybut srcset
umożliwia przesłanie wielu wersji obrazu
na podstawie rozdzielczości, a wraz z atrybutem sizes
– rozmiar widocznego obszaru przeglądarki.
<img src="images/eve.png" alt="Eve"
srcset="images/eve.png 400w, images/eve-xl.jpg 800w"
sizes="(max-width: 800px) 400px, 800px" />
Możesz to też zrobić za pomocą elementu <picture>
oraz elementów podrzędnych <source>
, które domyślnie przyjmuje ustawienie <img>
.
<picture>
<source src="images/eve.png" media="(max-width: 800px)" />
<source src="images/eve-xl.jpg" />
<img src="images/eve.png" alt="Eve" />
</picture>
Oprócz tych wbudowanych metod tworzenia elastycznych obrazów HTML umożliwia też
wydajność renderowania za pomocą różnych atrybutów. tagu <img>
, a tym samym tagów przesyłania w formie graficznej <input type="image">
,
może zawierać atrybuty height
i width
, aby ustawić format obrazu w celu ograniczenia przesunięcia układu treści. Atrybut lazy
umożliwia leniwe ładowanie.
HTML umożliwia też uwzględnianie obrazów SVG bezpośrednio za pomocą interfejsu <svg>
, choć w formacie SVG
obrazy z rozszerzeniem .svg
(lub w postaci data-uri) można umieszczać za pomocą elementu <img>
.
Każdy obraz na pierwszym planie powinien zawierać co najmniej atrybuty src
i alt
.
Plik src
to ścieżka i nazwa pliku umieszczonego obrazu. Atrybut src
służy do podania adresu URL obrazu.
Następnie przeglądarka pobiera zasób i wyświetla go na stronie. Ten atrybut jest wymagany przez atrybut <img>
; bez tego nic nie ma
do wyrenderowania.
Atrybut alt
zawiera tekst alternatywny dla obrazu i opis obrazu dla osób, które nie widzą tego zdjęcia.
ekranu (wyszukiwarki i technologie wspomagające osoby z niepełnosprawnością, a nawet Alexę, Siri i Asystenta Google), który może być wyświetlany przez przeglądarkę
jeśli obraz się nie załaduje. Oprócz użytkowników, którzy korzystają z powolnych sieci lub mają ograniczoną przepustowość, tekst alt
jest bardzo przydatny w języku HTML.
e-maili, bo wielu użytkowników blokuje obrazy w aplikacjach pocztowych.
<img src="path/filename" alt="descriptive text" />
Jeśli obraz jest w formacie SVG, dodaj też atrybut role="img"
, który
jest konieczne ze względu na VoiceOver błędy.
<img src="switch.svg" alt="light switch" role="img" />
Tworzenie skutecznych opisów obrazów alt
Atrybuty Alt powinny być krótkie i zwięzłe, zawierające wszystkie istotne informacje przekazywane przez obraz, a jednocześnie pomijane informacje, które są zbędne w stosunku do innej zawartości dokumentu lub w inny sposób nie są przydatne. Pisząc tekst, ton powinien być odzwierciedlają styl witryny.
Aby utworzyć skuteczny tekst alternatywny, wyobraź sobie, że czytasz całą stronę osobie, która go nie widzi. Za pomocą
semantyczny element <img>
, użytkownicy czytników ekranu i boty będą wiedzieć,
że element jest obrazem. Użycie tekstu „To jest obraz/zrzut ekranu/zdjęcie” jest bezsensowne. w alt
. Użytkownik nie wyrazi zgody
wiedzą, że istnieje obraz, ale muszą wiedzieć, jakie informacje zawiera.
Zazwyczaj nie odpowiadałoby to sformułowaniu „To jest ziarniste zdjęcie psa w czerwonej czapce”. Trzeba pokazać, o czym jest obraz, przedstawianie w kontekście reszty dokumentu; i to, co podasz, będzie się zmieniać w zależności od kontekstu. i zawartości otaczającego tekstu.
Na przykład zdjęcie psa może być opisane na różne sposoby w zależności od kontekstu. Jeśli Kulka jest awatarem obok
opinii na temat karmy dla psów Yuckymeat, wystarczy alt="Fluffy"
.
Jeśli zdjęcie jest częścią strony adopcyjnej w witrynie schroniska dla zwierząt, grupą docelową będzie potencjalny pies.
elementu nadrzędnego. Tekst powinien opisywać informacje przedstawione na zdjęciu, które są istotne dla użytkownika i które nie są zduplikowane
w otaczającym tekście. Dłuższy opis, np. alt="Fluffy, a tri-color terrier with very short hair, with a tennis ball in her
mouth"
, jest odpowiedni. Tekst na stronie o adopcji zawiera zwykle informacje o gatunku, rasie, wieku i płci zwierzęcia do adopcji.
więc nie trzeba go powtarzać w tekście alternatywnym. Ale w biografii psa nie ma prawdopodobnie długości włosów, kolorów,
czy preferencji dotyczących zabawek. Pamiętaj, że nie omówiliśmy zdjęcia: przyszły właściciel psa nie musi wiedzieć, czy pies jest
w pomieszczeniach i na zewnątrz albo z czerwoną obrożem i niebieską smyczą.
Jeśli używasz obrazów do tworzenia ikon, ponieważ atrybut alt
określa dostępną nazwę, przekazuj znaczenie ikony.
a nie opis obrazu. Na przykład atrybut alt ikony lupy to search
. Ikona, która wygląda
tak jak dom ma tekst alternatywny: home
. Opis ikony dyskietki 5-calowej: save
. Jeśli używane są 2 ikony Fluffy
aby wskazać sprawdzone metody i antywzorce, dla uśmiechniętego psa w zielonym berecie można było ustawić wartość alt="good"
, podczas gdy pies warczący
w czerwonym berecie może brzmieć alt="bad"
. Mimo to używaj tylko standardowych ikon, a jeśli używasz niestandardowych ikon, takich jak
tych dobrych i złych, należy dołączyć legendę i zadbać o to, aby ikony były jedynym sposobem na odszyfrowanie znaczenia elementów interfejsu użytkownika,
Jeśli obraz jest zrzutem ekranu lub wykresem, zamiast opisywać wygląd, napisz, czego można się z niego dowiedzieć. Choć obraz może być wart tysiąca słów, opis powinien zwięźle informować o wszystkim, czego się nauczysz.
Pomiń informacje, które użytkownik już zna z kontekstu i jest informowany o nich w treści. Przykład:
Jeśli jesteś na stronie samouczka dotyczącej zmiany ustawień przeglądarki, a strona dotyczy klikania ikon w Chrome, URL
widoczne na zrzucie ekranu. Ogranicz alt
do omawianego tematu – jak zmienić ustawienia. alt
może być
„Ikona ustawień znajduje się na pasku nawigacyjnym pod polem wyszukiwania”. Nie dodawaj „zrzutu ekranu” lub „warsztaty uczenia maszynowego”
ponieważ użytkownik nie musi wiedzieć, że jest to zrzut ekranu, i nie musi wiedzieć, gdzie użytkownik techniczny surfował po pisaniu tekstów.
zgodnie z instrukcjami. Opis obrazu wynika z kontekstu, w jakim przesłano obraz.
Jeśli zrzut ekranu pokazuje, jak znaleźć numer wersji przeglądarki na stronie chrome://version/
, podaj ten adres URL w polu
zawartość strony jako instrukcje, a w atrybucie alt należy podać pusty ciąg znaków, ponieważ obraz nie zawiera żadnych informacji
w otaczającym je tekście.
Jeśli zdjęcie nie zawiera żadnych dodatkowych informacji lub ma charakter czysto dekoracyjny, atrybut powinien nadal tam znajdować się, tak jakby był pustym ciągiem znaków.
<img src="svg/magazine.svg" alt="" role="none" />
Na stronie MachineLearningWorkshop.com znajduje się 7 obrazów na pierwszym planie, dlatego 7 obrazów z atrybutami alt: przełącznik światła w jajku wielkanocnym, ikonę ręczną, dwa zdjęcia biograficzne Hala i Ewy oraz 3 awatary miksera, odkurzacza i tostera. czysto ozdobny obraz na pierwszym planie, który wygląda jak czasopismo. Strona zawiera też dwa obrazy tła, Mają one również charakter dekoracyjny, a dodawane przez CSS – są niedostępne.
Czasopismo, które ma tylko charakter dekoracyjny, ma pusty atrybut alt
oraz role
o wartości none
, ponieważ obraz jest sam
prezentacje SVG. Jeśli obrazy SVG mają znaczenie, powinny one zawierać element role="img"
.
<img src="svg/magazine.svg" alt="" role="none" />
Na dole strony znajdują się 3 opinie. W każdej z nich znajduje się obraz autora plakatu. Zwykle tekst alt
to nazwa
osoby na zdjęciu.
<img src="images/blender.svg" alt="Blendan Smooth" role="img" />
Ponieważ jest to żart, należy więc pokazać użytkownikom niedowidzącym, co może nie być dla nich jasne, aby nie przegapili
poczucie humoru; używamy pierwotnej funkcji maszyny jako elementu alt
, a nie nazwy znaku:
<img src="images/blender.svg" alt="blender" role="img" />
Zdjęcia nauczycieli to nie tylko awatary: zdjęcia biograficzne, które mają bardziej szczegółowy opis.
Gdyby to była prawdziwa witryna, można by było opisać minimalnym kadrem nauczyciela, tak aby przyszły uczeń mógł ich rozpoznać, kiedy wchodzą do klasy.
<img src="svg/hal.svg" role="img"
alt="Hal 9000; a camera lens containing a red dot that sometimes changes to yellow." />
Ponieważ to jest strona z żartem, zamiast tego podaj informacje istotne w jego kontekście:
<img src="svg/hal.svg" role="img"
alt="Hal 9000, the sentient AI computer from 2001: a Space Odyssey depicted as a camera lens with a red dot that changes to yellow when hovered." />
Jeśli czytasz tę stronę znajomemu przez telefon, nie będzie mu interesować, jak wygląda czerwona kropka. W tym przypadku parametr w odniesieniu do historii filmu.
Pisząc opis, zastanów się, jakie informacje zawarte na obrazie są ważne i istotne dla użytkownika.
to uwzględnić. Pamiętaj, że zawartość atrybutu alt
obrazu różni się w zależności od kontekstu. Wszystkie informacje zawarte w obrazie
aby użytkownik, który ją zobaczył, miał dostęp do treści i był związany z kontekstem, nic więcej. Zachowaj zwięzłość, precyzję
i użyteczne.
Atrybuty src
i alt
to minimalne wymagania dotyczące obrazów umieszczonych na stronach. Musimy omówić jeszcze kilka innych atrybutów.
Obrazy elastyczne
Widoczny obszar ma niezliczone rozmiary. Dostępne są też różne rozdzielczości ekranu. Nie chcesz tracić szansy na uzyskanie – obraz jest wystarczająco szeroki, by zmieścił się na dużym ekranie. Można też jednak zapewnić wyższą rozdzielczość. na małych urządzeniach, które mają czterokrotnie większą rozdzielczość ekranu. Istnieje kilka sposobów wyświetlania różnych obrazów na podstawie rozmiaru widocznego obszaru i rozdzielczości ekranu.
<img> srcset
atrybut
Atrybut srcset
umożliwia sugerowanie wielu plików graficznych,
gdy przeglądarka wybiera obraz do wyświetlenia na podstawie wielu zapytań o multimedia, w tym rozmiaru widocznego obszaru i rozdzielczości ekranu.
W jednym elemencie <img>
może występować tylko 1 atrybut srcset
, ale ten atrybut srcset
może prowadzić do wielu zdjęć. srcset
akceptuje listę wartości rozdzielonych przecinkami, z których każdy zawiera adres URL zasobu, po którym następuje spacja
deskryptory dla tej opcji obrazu. Jeśli używasz deskryptora szerokości, musisz też dodać atrybut sizes
z elementem multimedialnym
rozmiar zapytania lub rozmiar źródła dla każdej opcji srcset
innej niż ostatnia. Zapoznaj się z sekcjami z informacjami na temat elastycznych obrazów z atrybutem srcset
oraz składni opisowej.
Jeśli występuje dopasowanie, obraz srcset
będzie miał pierwszeństwo przed obrazem z kategorii src
.
<picture>
i <source>
Innym sposobem udostępniania wielu zasobów i umożliwiania przeglądarce wyrenderowania najbardziej odpowiednich zasobów jest użycie
<picture>
. Element <picture>
jest kontenerem
element dla wielu opcji obrazów wymienionych w nieograniczonej liczbie <source>
i 1 wymagany element <img>
.
Atrybuty <source>
to srcset
, sizes
, media
, width
i height
.
Atrybut srcset
jest wspólny dla atrybutów img
, source
i link
, ale ogólnie wygląda nieco inaczej w źródle
, ponieważ zapytania o media mogą być wymienione w atrybucie media elementu <srcset>
. <source>
obsługuje też formaty obrazu zdefiniowane w atrybucie type
.
Przeglądarka weźmie pod uwagę każdy element podrzędny <source>
i wybierze najlepsze dopasowanie. Jeśli nie zostaną znalezione pasujące wyniki, URL
atrybutu src
elementu <img>
jest zaznaczony. Nazwa na potrzeby ułatwień dostępu pochodzi z atrybutu alt
zagnieżdżonego elementu <img>
.
Warto też przeczytać sekcje z informacjami o elemencie <picture>
i składni standardowych treści.
Dodatkowe funkcje związane z wydajnością
Leniwe ładowanie
Atrybut loading
informuje przeglądarkę z obsługą JS, jak wczytać obraz. Wartość domyślna eager
oznacza, że obraz jest
ładowane od razu podczas analizowania kodu HTML, nawet jeśli obraz znajduje się poza widocznym widocznym obszarem. Przez ustawienie loading="lazy"
ładowanie obrazu jest odłożone do czasu, gdy prawdopodobnie znajdzie się w widocznym obszarze. „Prawdopodobnie” jest określana przez przeglądarkę na podstawie odległości
znajduje się w widocznym obszarze. Ta wartość jest aktualizowana, gdy użytkownik przewija stronę. Leniwe ładowanie pomaga oszczędzać przepustowość i CPU, co poprawia wydajność
dla większości użytkowników. Jeśli JavaScript jest wyłączony, ze względów bezpieczeństwa domyślnie dla wszystkich obrazów jest ustawiona wartość eager
.
<img src="switch.svg" alt="light switch" loading="lazy" />
Format obrazu
Przeglądarki zaczynają renderować kod HTML po jego otrzymaniu, wysyłając żądania dotyczące zasobów. Oznacza to, że przeglądarka
już renderuje kod HTML, gdy napotka tag <img>
i wysyła żądanie. A ładowanie obrazów może trochę potrwać.
Domyślnie przeglądarki nie rezerwują miejsca na obrazy o rozmiarze innym niż wymagany do renderowania tekstu w języku alt
.
Element <img>
zawsze obsługiwał atrybuty bez jednostek height
i width
. Te usługi przestały być używane
CSS. CSS może definiować wymiary obrazu, często ustawiając pojedynczy wymiar, np. max-width: 100%;
, aby zachować współczynnik proporcji.
Kod CSS jest zwykle uwzględniony w elemencie <head>
, dlatego jest analizowany przed napotkaniem wartości <img>
. Jednak bez wyraźnej listy height
lub
współczynnik proporcji zarezerwowanego miejsca to wysokość (lub szerokość) tekstu alt
. Większość deweloperów podaje tylko szerokość,
otrzymywanie i renderowanie obrazów prowadzi do skumulowanego przesunięcia układu, co niekorzystnie wpływa na wskaźniki internetowe.
Aby rozwiązać ten problem, przeglądarki obsługują formaty obrazu. Dodanie atrybutów height
i width
do elementu <img>
działa jak
wskazówkami dotyczącymi rozmiarów, które informują przeglądarkę o współczynniku proporcji i umożliwiają wybór odpowiednich
ilość miejsca, która będzie zarezerwowana na potrzeby
renderowania obrazów. Poprzez podanie wartości wysokości i szerokości obrazu przeglądarka
zna format obrazu. Gdy przeglądarka napotyka pojedynczy wymiar, np. 50%, oszczędza miejsce
dla obrazu zgodnego z wymiarami CSS, a drugi wymiar z zachowaniem współczynnika proporcji szerokości do wysokości.
<img src="switch.svg" alt="light switch" role="img" width="70" height="112" />
Jeśli kod CSS został prawidłowo skonfigurowany tak, aby zapewnić elastyczność, obrazy nadal będą elastyczne. Tak, w zestawie bez jednostek
Wartości height
i width
zostaną zastąpione przez CSS. Celem dodania tych atrybutów jest zarezerwowanie miejsca
z odpowiednim współczynnikiem proporcji, poprawiając wydajność dzięki ograniczeniu przesunięcia układu. Zajmuje to mniej więcej tyle samo
dopiero po wczytaniu obrazu, ale interfejs nie przeskoczy go po odtworzeniu obrazu na ekranie.
Inne funkcje związane z obrazami
Element <img>
obsługuje też zmienne crossorigin
, decoding
, referrerpolicy
, a w przeglądarkach opartych na Blink –
Atrybuty fetchpriority
. Rzadko używany, jeśli obraz jest częścią mapy po stronie serwera, dodaj atrybut logiczny ismap
i umieść <img>
w linku dla użytkowników bez wskazywania urządzeń.
Atrybut ismap
nie jest wymagany (a nawet obsługiwany) w <input type="image" name="imageSubmitName">
jako x
i y
.
miejsca kliknięcia są wysyłane podczas przesyłania formularza. Jeśli występują, do nazwy wejściowej są dołączane wartości. Przykład:
gdy użytkownik kliknie obraz, wraz z formularzem zostanie przesłane np. &imageSubmitName.x=169&imageSubmitName.y=66
i ją przesłać. Jeśli zdjęcie nie ma atrybutu name
, wysyłane są wartości x i y: &x=169&y=66
.
Sprawdź swoją wiedzę
Sprawdź swoją wiedzę o obrazach.
Które 2 atrybuty powinny zawsze mieć obraz na pierwszym planie?
size
src
alt