2015-11-26 59 views
6

Co przeglądarka powinna robić dokładnie wtedy, gdy nie można wyświetlić pliku img?Co ma się stać, gdy nie można wyświetlić pliku img?

Oficjalne źródła są umyślnie niejasne na ten temat. Mówi się, że tekst alternatywny ma być użyty, ale nie mówią one, jak!
Więc jeśli nie przeszukałem wystarczająco dobrze (i zrobiłem dużo Googlingów, nawet Binged!) Tej informacji nie ma. A przeglądarki różnią się znacznie w tym, co robią.

Jeżeli zdjęcie nie może być załadowany, bo go tam nie ma,

  • Mozilla wyświetla tekst alt inline jako część aktualnego tekstu
  • IE wyświetla tekst alt jako inline-block , poprzedzona ikoną "zepsuty obraz", a w innej czcionce: Chrome wyświetla również blok wbudowany i ikonę "zepsuty obraz", i umieszcza wokół niego obramowanie. Nie zmienia jednak czcionki.

<p>This is my new car. 
 
    <img src="images/mynewcar.jpg" alt="It's a red car, with four wheels."/> 
 
    And that's it.</p>

Teraz po zmianie ustawienia przeglądarek nie załadować obrazy, zmiany zachowań w większości przeglądarek.

  • Chrome nie wyświetla nic, nawet tekst alternatywny.
  • IE nadal wyświetla tekst alternatywny w mniejszej czcionce, ale teraz bez ikony "zepsuty obraz" z przodu.
  • Mozilla nadal wyświetla tekst alternatywny.

Moje pytanie brzmi, która z tych przeglądarek działa prawidłowo?

I przez to nie mam na myśli, "jak myślisz, co jest najlepszym podejściem"? Naprawdę mam na myśli jakie są oficjalne reguły rządzące tym zachowaniem? Czy istnieją strony W3C (lub nawet strony WHATWG), których udało mi się przeoczyć, lub gdzie błędnie zinterpretowałem zasady?

Odpowiedz

3

Wygląda na to, że nie istnieją żadne twarde i szybkie zasady dotyczące tego. Specyfikacja HTML opisuje tylko, jak może wyglądać przeglądarka, aby zachowywać się, ale nie nakłada żadnych wymagań normatywnych na przeglądarki, aby śledzić wspomniane zachowanie względem litery. Specyfikacja CSS nawet go nie dotyka.

Section 10.4.2 of W3C HTML5 opisuje jak img elementy te są świadczone zgodnie z zestawem reguł, które odnoszą się do tego, co img elementy reprezentować.

Section 4.7.1, a drogi w dół, co opisuje element img oznacza w zależności od jego src i alt atrybutami:

Co elementem img reprezentuje zależy od atrybutu src i atrybutu alt.

[...]

Jeśli atrybut src jest ustawiony i atrybut alt jest ustawiona na wartość, która nie jest pusta

Obraz jest kluczowym elementem treści ; Atrybut alt daje tekstowy ekwiwalent lub zamiennik obrazu.

Jeśli obraz jest dostępny i agent użytkownika jest skonfigurowany do wyświetlania tego obrazu, element reprezentuje dane obrazu elementu.

W przeciwnym razie element reprezentuje tekst podany w atrybucie alt. Aplikacje klienckie mogą dostarczać użytkownikowi powiadomienie, że obraz jest obecny, ale został pominięty w renderowaniu.

Tak więc, jeśli obraz jest niedostępny, element img reprezentuje jego tekst alternatywny (ponieważ nie ma obrazu do reprezentacji!).

Więc, wracając do sekcji 10.4.2, stosuje się następujące zasady:

Jeśli element jest elementem img który reprezentuje jakiś tekst i agenta użytkownika nie spodziewałem się tego zmienić
Agent użytkownika ma traktować element jako niezastąpiony element frazowania, którego treścią jest tekst, opcjonalnie z ikoną wskazującą, że brakuje obrazu, aby użytkownik mógł zażądać wyświetlenia obrazu lub zbadać, dlaczego nie renderuje . W nie-graficznych kontekstach taka ikona powinna zostać pominięta.

Wydaje się, że Firefox jest po to oczekiwanie (uwaga: nie wymóg) najściślej, choć czy pole, które jest generowane otrzymuje lub nie otrzymuje, nie jestem pewien. Podobnie jak w przypadku innych przeglądarek - blok inline może być zastąpiony lub niezastąpiony. Zauważ, że HTML mówi "element frazowania", a nie "element inline" lub "element inline-block", ponownie dodając do niejasności całości.

Co robi Chrome, gdy obrazy są wyłączane przez preferencje użytkownika, nie jest tym, co nazwałbym "[dostarczeniem] użytkownikowi powiadomienia, że ​​obraz jest obecny, ale został pominięty w renderowaniu", ale znowu nie jest to wymaganie. Mimo to nie rozumiem, dlaczego Chrome uważa, że ​​to dobry pomysł. Do czego zmienił się tekst alternatywny?

0

Od MDN elementu HTML <img> IMG

Przeglądarki nie zawsze wyświetlać obraz odwołuje elementu. Dzieje się tak w przypadku przeglądarek innych niż graficzne (w tym tych używanych przez osób z zaburzeniami widzenia), jeśli użytkownik nie chce wyświetlać obrazów lub jeśli przeglądarka nie może wyświetlić obrazu, ponieważ jest on nieprawidłowy lub nieobsługiwany, ponieważ jest to rodzaj. W takich przypadkach przeglądarka może zastąpić obraz tekstem zdefiniowanym w atrybucie tego atrybutu tego elementu o numerze alt .

Domyślne zachowanie si wyświetlić zawartość atrybutu alt

zobaczyć this doc ref MDN doc dla ref Można również zapoznać tho this W3C ref

I to http://www.w3.org/TR/2015/NOTE-UNDERSTANDING-WCAG20-20150226/understanding-techniques.html technik zrozumienie dla Kryteriów WCAG Szczęśliwe

+0

Tak, więc MDN również mówi, że można użyć tekstu alternatywnego, ale nie w jaki sposób ma być wyświetlany. Hm. –

+0

> Nie można, ale może ... być używane .. Dodałem też ref z w3c też .. – scaisEdge

+0

Ten akapit wydaje się odnosić się do nie graficznych przeglądarek. – BoltClock