Semantics.rs
Semantics.rs/Vizuelna semantika/Alt tekst i entiteti
Pristupačnost + kontekst

Alt tekst: opiši značenje ili funkciju slike.

Alt tekst prvenstveno pruža tekstualnu alternativu kada slika nije dostupna. Takođe pomaže pretraživaču da razume predmet slike, ali ne treba svaku sliku pretvarati u listu brenda, modela, boje, materijala i ključnih reči.

Kako se bira alt vrednost?

Odluka prema funkciji
Vrsta slikePristup
Informativna fotografijaKratko opiši informaciju koju slika dodaje kontekstu.
Funkcionalna slika/linkOpiši akciju ili destinaciju, ne samo izgled.
Dekorativna ili redundantnaKoristi alt="".
Složeni grafikonKratak alt i potpuna informacija u tekstu/tabeli.
Slika tekstaPrenesi tekst ako nije već prisutan kao pravi tekst.
Stablo odluke za alt tekst: da li slika nosi informaciju ili funkciju, sa granama za informativnu fotografiju, funkcionalnu sliku, dekorativnu sliku i složen grafikon
Pojednostavljeno stablo odluke — polazna tačka je uvek funkcija slike na stranici, ne formula za nabrajanje atributa.

Da li naziv fajla mora da ponavlja alt tekst?

Ne. Treba da bude kratak i opisni kada je praktično, ali Google ga opisuje kao veoma blag signal. Stabilnost URL-a i kontekst stranice često su važniji od mehaničkog preimenovanja svake slike.

Primer u ovom sajtu

U testu dve patike alt tekst opisuje razliku u kadru zato što je ta razlika tema sekcije. Na produktnoj stranici isti vizual bi mogao da zahteva tačan, stvarni model i boju.

Isti vizual, tri različita alt teksta

Ne postoji tačan alt tekst za sliku samu po sebi. Postoji tačan alt tekst za sliku na toj stranici, u toj sekciji, u toj ulozi.

Uzmimo istu fotografiju crne patike na svetloj pozadini i stavimo je u tri konteksta.

Ista slika, tri konteksta, tri rešenja
Gde stojiAlt tekstZašto
Produktna stranicaNike Pegasus 41, muška patika za trčanje, crnaKorisnik bira proizvod; tačan model i boja su informacija koju traži
Tekst o testu vizuelne pretrageCrna patika za trčanje izdvojena na svetloj studijskoj pozadiniTema je kadar i pozadina, ne model; naziv modela bi bio šum
Dekorativna slika u zaglavlju blogaalt=""Ne dodaje informaciju; čitač ekrana treba da je preskoči

Ista slika, tri ispravna rešenja. Zato pravilo „uvek navedi brend, model i boju“ ne postoji — u drugom redu bi to bilo pogrešno.

Koliko dugačak alt tekst treba da bude?

Onoliko koliko je potrebno da prenese informaciju ili funkciju, i ni reč više. Za većinu slika to je jedna kratka rečenica.

Predugačak alt tekst je problem pristupačnosti pre nego SEO problem. Čitač ekrana ga izgovara u celini, bez mogućnosti da ga preskoči na sredini. Nabrajanje deset atributa pretvara jednu sliku u dugačku pauzu u čitanju.

Primeri po dužini
PrimerOcena
patikaPrekratko — ne kaže ništa što kontekst već ne kaže
Crna patika za trčanje na svetloj pozadiniDobro za većinu konteksta
patika trcanje crna muska sportska obuca jeftino kupovina online SrbijaNabrajanje ključnih reči; šteti pristupačnosti i ne pomaže

Šta alt tekst ne može da uradi

  • Ne može da nadomesti ono što slika ne pokazuje. Ako se na fotografiji ne vidi materijal, pisanje materijala u alt ne čini sliku informativnijom — ta informacija pripada tekstu stranice.
  • Ne zamenjuje natpis ispod slike. Alt je alternativa za one koji sliku ne vide; figcaption čitaju svi. Za informaciju koja je važna svima koristi natpis.
  • Ne rangira sliku sam po sebi. Kontekst stranice, okolni tekst i naslov sekcije nose više težine nego alt atribut.
  • Ne pomaže ako je slika ključni sadržaj u obliku teksta. Cenovnik kao slika ostaje nedostupan, koliko god alt bio dobar.

Provera u pet koraka

  1. Isključi prikaz slika u pregledaču. Ako stranica i dalje ima smisla, alt tekstovi rade svoj posao.
  2. Pročitaj alt naglas u kontekstu rečenice pre slike. Ako zvuči kao ponavljanje, slika je verovatno dekorativna.
  3. Prebroj dekorativne slike sa nepraznim alt-om. Ikone, razdelnici i pozadine gotovo uvek treba da imaju alt="".
  4. Proveri slike koje su linkovi. Njihov alt mora da opisuje destinaciju, ne izgled.
  5. Nađi slike sa tekstom. Taj tekst mora postojati i kao pravi tekst na stranici.

SVG, ikone i grafika koja nije <img>

Umetnuti SVG nema alt atribut. Alternativni tekst mu se daje kroz role="img" i <title>, ili kroz aria-label.

Ovo je najčešće previđen slučaj, jer se SVG ubacuje direktno u HTML i vizuelno izgleda kao slika, ali za čitač ekrana to je grupa geometrijskih oblika.

<svg viewBox="0 0 100 100" role="img" aria-labelledby="ikona-naslov">
  <title id="ikona-naslov">Preuzmi cenovnik u PDF formatu</title>
  <path d="…"/>
</svg>

Za složenije dijagrame dodaje se i <desc> sa dužim opisom, povezan preko aria-labelledby koji navodi oba identifikatora. Dijagrami na ovom sajtu rađeni su tako.

Grafika i način na koji joj se daje alternativa
SlučajRešenje
Umetnuti SVG koji nosi značenjerole="img" + <title>, po potrebi <desc>
Umetnuti SVG kao ukrasaria-hidden="true" i focusable="false"
SVG učitan kroz <img src="/…svg">Običan alt atribut, kao za svaku sliku
Ikonski fontaria-hidden="true" na ikoni, tekst u susednom elementu
Slika kao CSS pozadinaNema alternative; ako nosi značenje, ne sme biti pozadina
<canvas>Tekstualni sadržaj unutar elementa kao rezerva

alt, aria-label i title — šta se kada koristi

alt je za <img>. aria-label je za elemente koji nemaju vidljiv tekst, poput dugmeta sa ikonom. title nije alternativa ni za jedno od to dvoje.

title atribut se prikazuje kao oblačić pri prelasku mišem, ne postoji na dodirnim ekranima i čitači ekrana ga nedosledno obrađuju. Nikada ga ne koristi kao jedini nosilac informacije.

Isti cilj, tri konteksta
ElementIspravno
Slika u sadržaju<img src="/…" alt="Opis">
Dugme sa ikonom, bez teksta<button aria-label="Zatvori">
Link sa slikom i tekstomSlika dobija alt="", jer tekst linka već opisuje destinaciju
Link samo sa slikomalt opisuje destinaciju, ne izgled slike

Poslednja dva reda su izvor čestog dupliranja. Kada logo u zaglavlju stoji unutar linka ka početnoj i pored njega nema teksta, njegov alt treba da glasi kao naziv sajta — to je destinacija. Ako pored njega već stoji tekst „Početna“, logo dobija prazan alt.

Složeni grafikoni i dugački opisi

Grafikon koji prenosi podatke ne može stati u jednu rečenicu. Kratak alt imenuje šta grafikon prikazuje, a puna informacija ide u tekst ili tabelu koju vide svi.

Loše rešenje je nabijanje svih brojeva u alt. Čitač ekrana tada izgovara niz brojeva bez strukture, bez mogućnosti da se vrati ili uporedi.

Dobro rešenje ima tri sloja: alt koji imenuje grafikon, figcaption koji izvodi zaključak, i tabela ili pasus sa podacima. Na ovom sajtu tako je urađen grafikon udela AI prikaza u kontrolnoj studiji — ispod njega stoji tabela sa istim brojevima.

Tri sloja na primeru stubičastog grafikona
SlojSadržaj
altŠta grafikon prikazuje i koje su krajnje vrednosti
figcaptionZaključak koji čitalac treba da izvuče
Tabela ili tekstSvi podaci, dostupni svima i pretraživi

Alt tekst u katalozima koji se generišu iz baze

Kada se hiljade slika generišu iz baze, alt tekst se ne piše ručno nego kroz šablon. Šablon mora imati rezervnu vrednost i ograničenje dužine, inače proizvodi prazne ili beskrajne opise.

alt = [brend, model, tip_proizvoda, boja]
      .filter(nije_prazno)
      .join(", ")
      || naziv_proizvoda

Tri pravila koja ovaj šablon poštuje. Prvo, redosled ide od najspecifičnijeg ka najopštijem, jer se opis čita s početka. Drugo, prazna polja se izbacuju umesto da ostave dvostruke zareze. Treće, postoji rezervna vrednost kada su sva polja prazna.

Česti problemi u generisanim katalozima
ProblemPosledicaRešenje
Isti alt na svim slikama proizvodaPet fotografija istog artikla ne razlikuju se ničimDodaj ugao ili detalj: „sa strane“, „đon“, „u nošenju“
Alt sadrži šifru artiklaČitač ekrana izgovara niz cifaraŠifra ide u tekst stranice, ne u alt
Prazan alt kada polje u bazi nedostajeSlika postaje nedostupnaRezervna vrednost u šablonu
Alt duži od dvesta znakovaDuga pauza u čitanjuOgraniči broj polja u šablonu

Kako se problem otkriva na celom sajtu

Ručna provera radi na deset stranica, ne na hiljadu. Za veći sajt problem se otkriva pretragom izvornog koda.

# slike bez alt atributa
grep -rn '<img' --include="*.html" . | grep -v 'alt='

# umetnuti SVG bez role ili aria-hidden
grep -rn '<svg' --include="*.html" . | grep -v 'role=\|aria-hidden'

# alt koji sadrži naziv fajla
grep -rno 'alt="[^"]*\.\(jpg\|png\|webp\)"' --include="*.html" .

Treća komanda otkriva najčešći trag automatske obrade — alt vrednost koja je zapravo naziv datoteke. To znači da alt nikada nije napisan, samo popunjen.

Česta pitanja

Da li svaka slika mora da ima alt tekst?

Svaka slika mora da ima alt atribut, ali dekorativne slike treba da imaju prazan alt. Izostavljanje atributa i prazan atribut nisu isto — prazan alt govori čitaču ekrana da sliku preskoči.

Da li alt tekst treba da sadrži ključne reči?

Ne kao cilj. Ako je pojam prirodan deo tačnog opisa, on će se pojaviti sam. Nabrajanje ključnih reči šteti pristupačnosti i ne donosi korist.

Koja je razlika između alt teksta i natpisa ispod slike?

Alt je alternativa za one koji sliku ne vide. Natpis čitaju svi. Informaciju koja je važna svim posetiocima stavi u natpis, ne u alt.

Da li naziv fajla mora da ponavlja alt tekst?

Ne. Opisan naziv je koristan kada je praktičan, ali ga Google opisuje kao veoma blag signal. Stabilnost URL-a slike je važnija od preimenovanja.

Primarni izvori: W3C alt decision tree i Google Image SEO best practices.