To jest ten, z którym wcześniej nie musiałem się zmierzyć. Muszę używać tagów alt na wszystkich obrazach w witrynie, w tym tych używanych przez atrybut CSS background-image.
O ile wiem, nie ma takiej właściwości CSS, więc jaki jest najlepszy sposób na zrobienie tego?
title
atrybutu do elementu (ów) z obrazem (ami) tła, ale to nie ma sensu dla wszystkich elementów. Dlaczego musisz to zrobić? Czy próbujesz obsłużyć obrazy, które się nie ładują, czy też próbujesz wyświetlić etykietę tych, które się ładują?<div>
nawet jeśli nie potwierdza, że nadal masz w nim klucz, a Google to uwielbia.Odpowiedzi:
Obrazy tła z pewnością mogą przedstawiać dane! W rzeczywistości jest to często zalecane, gdy prezentacja ikon wizualnych jest bardziej zwarta i przyjazna dla użytkownika niż równoważna lista notatek tekstowych. Takie podejście może przynieść korzyści przy każdym użyciu obrazków .
Często zdarza się, że ikony ofert hoteli wyświetlają udogodnienia. Wyobraź sobie stronę, na której wymieniono 50 hoteli i każdy hotel miał 10 udogodnień. Sprite CSS byłby idealny do tego rodzaju rzeczy - lepsze wrażenia użytkownika, ponieważ jest szybszy. Ale jak zaimplementować tagi ALT dla tych obrazów? Przykładowa witryna .
Odpowiedź jest taka, że w ogóle nie używają
alt
tekstu, ale zamiast tego używajątitle
atrybutu na zawierającym element div.HTML
CSS
Zgodnie z W3C (patrz linki powyżej), atrybut tytułu służy temu samemu celowi, co atrybut alt
Tytuł
alt
źródło
W tym artykule Yahoo Developer Network ( link zarchiwizowany ) sugeruje się, że jeśli bezwzględnie musisz użyć obrazu tła zamiast elementu img i atrybutu alt, użyj atrybutów ARIA w następujący sposób:
Przypadek użycia w artykule opisuje, w jaki sposób Flickr zdecydował się na użycie obrazów tła, ponieważ znacznie poprawiono wydajność na urządzeniach mobilnych.
źródło
Myślę, że powinieneś przeczytać ten post Christiana Heilmanna. Wyjaśnia, że obrazy tła są TYLKO dla estetyki i nie powinny być używane do prezentowania danych, a zatem są wyłączone z zasady, że każdy obraz powinien mieć tekst zastępczy.
Fragment (moje podkreślenie):
Zgadzam się z nim.
źródło
background-size
ibackground-position
ze zwykłym<img>
tagiem? Dzięki temu pozycjonowanie obrazów tła jest dość elastyczne, np. W responsywnej przestrzeni bohatera, gdzie obraz prawdopodobnie zawiera krytycznie ważną wiadomość.Jak wspomniano w innych odpowiedziach, nie ma (obsługiwanego) atrybutu alt dla znacznika DIV tylko dla znacznika img.
Prawdziwe pytanie brzmi: dlaczego musisz dodać atrybut alt do wszystkich obrazów tła witryny? Opierając się na tej odpowiedzi, pomoże ci to określić, którą trasę obrać w swoim podejściu.
Wizualne / tekstowe: jeśli po prostu próbujesz dodać tekstową wartość zastępczą dla użytkownika, jeśli obraz się nie załaduje, po prostu użyj atrybutu tytułu. Większość przeglądarek zapewnia wizualną wskazówkę (okno komunikatu), gdy użytkownik najedzie kursorem na obraz, a jeśli obraz nie zostanie załadowany z jakiegokolwiek powodu, zachowuje się tak samo, jak atrybut alt prezentujący tekst, gdy obraz się nie powiedzie. Ta technika nadal pozwala witrynie przyspieszyć czas ładowania, zachowując obrazy ustawione na tło.
Czytniki ekranu: opcja w środku drogi, ta różni się, ponieważ technicznie utrzymywanie obrazów jako tła i stosowanie podejścia atrybutów tytułu powinno działać zgodnie z powyższą wskazówką: „Oprogramowanie użytkownika audio może wypowiadać informacje o tytule w podobnym kontekście”. Jednak nie gwarantuje to działania we wszystkich przypadkach, w tym niektórzy czytelnicy mogą to wszystko razem zignorować. Jeśli zdecydujesz się na takie podejście, możesz również spróbować dodać etykiety arii, aby upewnić się, że czytniki ekranu je wychwycą.
SEO / Wyszukiwarki: Oto duży, jeśli byłeś podobny do mnie, dodałeś obrazy tła, wszystko było dobrze. Kilka miesięcy później klient (a może Ty sam) zdał sobie sprawę, że tracisz część najlepszego złota SEO, ponieważ nie masz alternatyw dla swoich obrazów. Należy pamiętać, że atrybut tytułu nie ma żadnego znaczenia dla wyszukiwarek , z moich badań i jak wspomniano w artykule tutaj: https://www.searchenginejournal.com/how-to-use-link-title-attribute-correctly /. Jeśli więc dążysz do SEO, musisz mieć tag img z atrybutem alt. Jednym z możliwych sposobów jest po prostu załadowanie bardzo małych rzeczywistych obrazów w witrynie z atrybutami alt, w ten sposób uzyskujesz całe SEO i nie musisz ponownie dostosowywać istniejącego CSS. Może to jednak prowadzić do dodatkowego czasu ładowania w zależności od rozmiaru, a Google rzeczywiście patrzy na ścieżkę obrazów podczas indeksowania. Krótko mówiąc, jeśli wybierasz się tą drogą, po prostu zaakceptuj to, co należy zrobić i dołącz rzeczywiste obrazy zamiast używać tła.
źródło
Ogólne przekonanie jest takie, że nie powinieneś używać obrazów tła dla rzeczy o znaczącej wartości semantycznej, więc tak naprawdę nie ma właściwego sposobu przechowywania danych alt z tymi obrazami. Ważne pytanie brzmi: co zamierzasz robić z tymi danymi alternatywnymi? Czy chcesz, aby był wyświetlany, jeśli obrazy się nie ładują? Czy potrzebujesz go do jakiejś automatycznej funkcji na stronie? Możesz przechowywać dane dowolnie, używając zmyślonych właściwości css, które nie mają znaczenia (mogą powodować błędy?) LUB dodając ukryte obrazy, które mają obraz i znacznik alt, a następnie, gdy potrzebujesz obrazów tła alt, możesz porównać obraz ścieżki, a następnie obsłuż dane w dowolny sposób, używając niestandardowego skryptu do symulacji potrzebnych. Nie ma sposobu, by przeglądarka automatycznie obsługiwała jakiś atrybut alt dla obrazów tła.
źródło
Klasycznym sposobem osiągnięcia tego jest umieszczenie tekstu w div i użycie techniki zastępowania obrazu.
z obrazem tła będącym klasą, do której przypisujesz obraz tła, a ir może być klasą zastępującą obraz HTML5boilerplates, poniżej:
źródło
Ten artykuł z W3C mówi, co ich zdaniem powinieneś zrobić https://www.w3.org/WAI/GL/wiki/ARIATechnique_usingImgRole_with_aria-label_forCSS-backgroundImage
i ma przykłady tutaj http://mars.dequecloud.com/demo/ImgRole.htm
pośród których
Jeśli jednak, tak jak w powyższym przykładzie, element zawierający obraz tła jest po prostu pustym kontenerem, ja osobiście wolę umieścić tam tekst i ukryć go za pomocą CSS; tam, gdzie zamiast tego pokazujesz obraz:
źródło
Oto moje rozwiązanie tego typu problemu:
Utwórz nową klasę w CSS i umieść ją poza ekranem. Następnie umieść tekst alternatywny w kodzie HTML tuż przed właściwością, która wywołuje obraz tła. Może być dowolny znacznik,
H1
,H2
,p
, itd.CSS
HTML
źródło
Nie jest dla mnie jasne, czego chcesz.
Jeśli chcesz, aby właściwość CSS renderowała wartość atrybutu alt, być może szukasz na przykład funkcji atrybutu CSS :
Jeśli chcesz umieścić atrybut alt na obrazie tła, to ... to dziwne, ponieważ atrybut alt jest atrybutem HTML, podczas gdy obraz tła jest właściwością CSS. Jeśli chcesz użyć atrybutu alt HTML, to myślę, że potrzebujesz odpowiedniego elementu HTML, aby go umieścić.
Dlaczego „musisz używać tagów alt na obrazach tła”: czy to z powodów semantycznych, czy z jakiegoś powodu efektu wizualnego (a jeśli tak, to z jakiego powodu lub z jakiego powodu)?
źródło
Możesz to osiągnąć, umieszczając
alt
tag w miejscu, wdiv
którym pojawi się twój obraz.Przykład:
źródło
alt
atrybutu do<div>
alt
atrybut dodiv
!!