PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Doctype und Fehlende Bilder


Berni
2007-03-07, 00:19:16
Ich hab hier mal ne kleine Frage, die ich einfach nicht rauskriege:
Wenn ich in einem HTML-Dokument einen Doctype definiere, z.B.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
dann zeigt der Firefox und Opera keine Icons mehr bei fehlenden Bildern an, wenn ich die Definition weglasse aber schon. Der IE ist vollkommen unbeeindruckt (ignoerit den Doctype scheinbar). Kann mir jemand erklären, woran das liegt und vor Allem wie ich das machen kann, dass trotz gesetztem Doctype die fehlenden Bilder als Icon gezeigt werden? Hier bei 3dcenter ist es ja auch so soweit ich das sehe, dass kein Icon angezeigt wird...

hyperterminal
2007-03-07, 05:43:15
Wenn du den obigen DOCTYPE verwendest, dann laufen Firefox und Opera nicht mehr im Quirks Modus. Dadurch werden einige Sachen anders interpretiert.

Bei Heise kannst du dir ansehen, wie die Browser auf die verschiedenen DOCTYPEs reagieren (http://www.heise.de/ix/artikel/2004/03/136/03.shtml).

Was die Bildern betrifft empfehle ich dir, den img-Tags ein alt-Attribut hinzuzufügen. Dann brauchst du auch keine Icons mehr für fehlende Bilder.

darph
2007-03-07, 10:03:01
Ja, Firefox ersetzt ein kaputtes Bild durch den Text im alt-Attribut. Ist es nicht vorhanden oder leer (alt="" - sehr schlau X-D), bleibt der Text halt leer und man sieht gar nichts.

Ist natürlich eine absolut schwachsinnige Eigenschaft des Browsers, den Fehler zu verstecken. Eines der größten Mankos des Firefox. ;(

Gast
2007-03-07, 21:24:49
Ähm, das title-Attribut gibts auch noch, k.a. ob das hier sinnvoll ist.

Gast
2007-03-08, 00:52:38
Ist natürlich eine absolut schwachsinnige Eigenschaft des Browsers, den Fehler zu verstecken. Eines der größten Mankos des Firefox. ;(
Das ist kein Fehler. Ist ein Bild warum auch immer nicht vorhanden, so wird stattdessen der Alternativtext angezeigt. Der Zweck dieses Textes ist es ja eben, das Bild inhaltlich zu beschreiben wenn der Benutzer es nicht sieht. Wenn der Text leer ("") ist, dann hat das Bild keinen Inhalt, sondern dient nur dekorativen Zwecken.

Gast
2007-03-08, 00:58:01
Zu früh abgeschickt...

Wird solch ein dekoratives Bild nicht angezeigt, dann muß IMHO stattdessen kein Platzhalter hingesetzt werden, der trägt dann nämlich auch nichts weiter zur Dekoration bei.
Im Quirksmode wird dieser Platzhalter aber angezeigt, weil die Hersteller offensichtlich davon ausgehen, daß der Autor der Seite nicht weiß was er tut und beispielsweise überhaupt keinen Alternativtext angibt oder dort irgendeinen Schwachsinn einträgt (vorzugsweise den Dateinamen des Bildes oder Leerzeichen).

darph
2007-03-08, 09:40:08
Das ist kein Fehler. Ist ein Bild warum auch immer nicht vorhanden, so wird stattdessen der Alternativtext angezeigt. Der Zweck dieses Textes ist es ja eben, das Bild inhaltlich zu beschreiben wenn der Benutzer es nicht sieht. Wenn der Text leer ("") ist, dann hat das Bild keinen Inhalt, sondern dient nur dekorativen Zwecken.

Wird solch ein dekoratives Bild nicht angezeigt, dann muß IMHO stattdessen kein Platzhalter hingesetzt werden, der trägt dann nämlich auch nichts weiter zur Dekoration bei.
Im Quirksmode wird dieser Platzhalter aber angezeigt, weil die Hersteller offensichtlich davon ausgehen, daß der Autor der Seite nicht weiß was er tut und beispielsweise überhaupt keinen Alternativtext angibt oder dort irgendeinen Schwachsinn einträgt (vorzugsweise den Dateinamen des Bildes oder Leerzeichen).
Nein, das ist imho Unsinn. Es ist kein Feature, es ist ein Bug. Erstens sollte man Bilder, die einzig und allein dem Zwecke des Designs dienen, nicht in's HTML integrieren. Dafür gibt's CSS. Im HTML stellt die logische Struktur des Dokuments zur Verfügung und darin seinen Inhalt. Das Design sollte heutzutage ausschließlich mit CSS realisiert werden - alles Andere ist schlicht rückständig. Wenn ich die Designbilder in meinen HTML-"Code" packe, dann hebe ich die Trennung zwischen Struktur und visueller Repräsentation derselben, die wir mit CSS eingeführt haben, wieder auf. Dann kann ich auch gleich wieder <center><font face=""></font></center> schreiben. Kein Unterschied. Dafür sind Bilder im HTML nicht da. Wenn ich als Betrachter der Website das Design ausschalte, dann will ich die informationstragenden Bilder natürlich noch sehen. Die tollen runden Ecken nun zweckfrei im Raum schwebend zum Beispiel aber nicht. Wenn ich als Developer der Seite ein neues Design geben soll, dann darf ich nicht erst den kompletten HTML-Code von solchen Designelementen reinigen müssen. Eine Webseite muß völlig ohne CSS les- und betrachtbar sein. Okay, dann sieht's scheiße aus, aber ich bekomme dann nur die Informationen, die für das Dokument relevant sind. Der img-Tag trägt Information. Kein Design. Dafür ist HTML nicht da. HTML soll nicht toll aussehen. Es soll Informationen Strukturieren. HTML ist (wie SGML und XML) Datenmodellierung, nicht Datenpräsentation.

Graphiken sind dazu da, Informationen zu transportieren. Diagramme, Photos und so weiter. Und wenn die fehlen, dann will ich als Leser ja darauf hingewiesen werden. Wenn es einen Fehler gibt (und das ist ein kaputtes Bild ohne Zweifel), dann muß ich darauf hingewiesen werden. Den Benutzer einfach nicht darüber zu informieren, daß ein Fehler aufgetreten ist, ist schlechter Stil.

public static void main(String[] args) {
try {
// Start the real program
Program p = new Program();
} catch (Throwable t) {
// Let's do nada, if there's an error.
}
}

Das kann doch nicht gut sein. Der Benutzer muß über Fehler informiert werden. Und dafür ist das Sexy Red X, wie wir's aus dem IE kennen da. Genau dafür. Man könnte auch ein PopUp "Ein Bild konnte nicht geladen werden!" aufpoppen lassen, aber da ist eine kleine Fehlergraphik dann doch etwas subtiler, zumal ein fehlendes Bild ja für gewöhnlich keinen kritischen Fehler darstellt. Aber es ist ein Fehler.

Das alt-Attribut ist nicht für die Fehlerbehandlung da. Es ist nicht die Aufgabe des Redakteurs, Fehlerbehandlung zu betreiben. Das alt-Attribut ist gedacht als alternativer Inhalt für Clients, die Bilder nicht darstellen wollen oder prinzipbedingt nicht können, dazu gehören Suchmaschinen, aber auch Textbrowser wie Lynx und andere informationsbe- und -verarbeitende Software. Für solche Clients stellt das alt-Attriut alternative Information dar, weil sie das Bild selbst nicht verarbeiten können. Blinde, die sich den Text vorlesen lassen oder mit Braille erfassen, sind auf eine sinnvolle Beschreibung dessen, was in dem Bild dargestellt wird, angewiesen. Sie wollen nicht darüber informiert werden, daß da jetzt ein Bild wäre, aber keine Information darüber existiert, was in dem Bild zu sehen ist, weil das Bild ja eh nur eine fancy-Design-Graphik enthält. Dafür ist das alt-Attribut gedacht: Als alternativer Informationsträger für Clients, die Graphiken nicht verarbeiten können. Es ist kein Fehlermanagement und es kann und soll dem Redakteur nicht zugemutet werden, jedesmal zu schreiben: "Wenn Sie das lesen können, ist ein Bild nicht erreichbar. Bitte benachrichtigen Sie den Webmaster über diesen Fehler. Das Bild zeigt übrigens..." und dann folgt erst die Inhaltsbeschreibung des eigentlichen Bildes. Das kann's doch nicht sein (auch und gerade in Bezug auf barrierefreies Web, was nicht nur ein schönes Buzzword ist, sondern durchaus auch sinnbehaftet ist). Sowas zerrupft und verunreinigt den Informationsfluß im Dokument, weil hier das Dokument auf einmal eine Designkomponente erhält und außerdem eine technische Komponente. Dafür wurde es aber nie entwickelt. Es wurde doch explizit entwickelt und später verfeinert, um völlig unabhängig vom darstellenden Medium zu sein. Darum ja auch beim Problemkind Graphik die alternativ-Beschreibung. Genau deshalb gibt's ja noch den title. title und alt sind entgegen weitverbreiteten Glaubens keineswegs gleich. Das Eine bietet ergänzende Informationen zu einem Bild - das andere beschreibt das Bild für diejenigen, die es nicht erfassen können (und damit sind nicht immer Menschen gemeint). Aber trotzdem muß der Betrachter über einen Fehler informiert werden.

Firefox macht das nicht. Der verschweigt einfach, daß da ein Bild sein sollte. Es ist durchaus schon vorgekommen, daß ich den Quelltext einer Seite durchforstet habe, um herauszufinden, wo das Bild ist, weil die Seite keinerlei Anhaltspunkt geliefert hat, daß da eins sein sollte. Das darf man dem Betrachter nicht zumuten. Das fehlen eines Bildes ist ein Fehler. It's as simple as that. "Error: 404 File not found." Und einen Fehler schlicht zu verschweigen ist, behaupte ich mal, eine der Todsünden der Programmierwelt.