Warnungen des CSS-Validators wichtig?
Valentin_
- css
0 warner0 Sven Rautenberg0 Thomas Mell
Hallo Community,
eine Sache vorweg: Einen ganz ähnlichen Beitrag habe ich bereits in einem anderen, relativ alten Thema verfasst. Dort war er allerdings eher abseits des eigentlichen Themas und ich habe auch keine Antwort erhalten, was wohl daran liegt, dass keiner mehr in das Thema geschaut hat. Deshalb eröffne ich nun ein neues Thema, da zu meiner Frage, denke ich, einige was sagen können. Und zwar geht es um eine Aussage, die in dem oben bereits erwähnten Thema gemacht wurde.
Und wenn man Verweise zur Validation setzt sollte da keine Warnung - sei sie auch nur gelb und nicht rot - sein.
Meine Frage dazu: Wie streng seht ihr das? Beim HTML-Validator sehe ich das ein, ich ziele in diesem Thema aber eher auf den CSS-Validator ab. Dem seine Warnungen finde ich nämlich teilweise relativ unsinnig und bin (derzeit) eigentlich auch nicht wirklich gewillt, irgendetwas zu unternehmen, das diese Warnungen nicht mehr erscheinen. In vielen Fällen bekomme ich zum Beispiel die folgende Warnung zu sehen: "Die gleichen Farben für den Vordergrund und den Hintergrund in den zwei Kontexten." Dies ist zum Beispiel der Fall, wenn die Hintergrundfarbe des body-Elements und die Vordergrundfarbe der a-Elemente identisch sind. Bei dieser Warnung bleibt jedoch unbeachtet, dass sich die eigentliche Website in einem Wrapper befindet, dessen Hintergrundfarbe sich sehr wohl von der Vordergrundfarbe der a-Elemente unterscheidet. Lösen könnte man dieses Problem, indem man div#wrapper a { color: ... } anstatt bloß a { color: ... } ins Stylesheet schreibt. Jedoch ist das meiner Meinung nach eine unnötige Verkomplizierung - wenn auch bloß eine kleine. Wie seht ihr das? Sollte man auch auf die "Farbwarnungen" des CSS-Validators Rücksicht nehmen oder kann man die getrost ignorieren? (Valid ist das Stylesheet ja trotz alledem.)
Liebe Grüße.
Wo ist das Problem? Der CSS-Validator hat dir eine Warnung gegeben. Du hast die Warnung ernst genommen, den Sachverhalt überprüft und festgestellt, dass die Situation, vor der gewarnt wird, nicht eintreffen kann. Fertig! Genau dazu war die Warnung doch da!
Fazit: Natürlich sind Warnungen wichtig! Wenn ich ins Wasser springen will und mich jemand vorher warnt, ich könnte von Haien zerfleischt werden, nehme ich das auch ernst. Wenn ich nach sorgfältiger Prüfung feststelle, dass in meinem Pool keine Haie sind, springe ich trotzdem einfach rein statt mir einen Haikäfig mitzunehmen und so vor Hai-Warnungen generell gefeit zu sein.
Wo ist das Problem? Der CSS-Validator hat dir eine Warnung gegeben. Du hast die Warnung ernst genommen, den Sachverhalt überprüft und festgestellt, dass die Situation, vor der gewarnt wird, nicht eintreffen kann.
In dem von mir gebrachten Zitat wurde gesagt, dass man alle Warnungen beseitigen sollte. (Das Zitat bezog sich allerdings auf den HTML-Validator.) Und genau dazu wollte ich Stellungnahmen. Reicht es aus, wenn man nach sorgfältiger Überprüfung feststellt, dass das Problem nicht eintreffen kann und die Warnung einfach stehen lässt oder sollte man alles daran setzen, sämtliche Warnungen zu beseitigen. Da liegt das Problem.
Hi,
In dem von mir gebrachten Zitat wurde gesagt, dass man alle Warnungen beseitigen sollte. (Das Zitat bezog sich allerdings auf den HTML-Validator.)
beim HTML-Validator sind Warnungen meiner persönlichen Erfahrung nach in den allermeisten Fällen Hinweise auf tatsächliche Fehler, die der Validator lediglich nicht als solche erkennen konnte, oder auf theoretische Probleme, die in der Praxis tatsächlich auftreten können. Diese zu beheben ist gewöhnlich sehr sinnvoll. Bei CSS ist die Sache anders gelagert: Viele Warnungen beziehen sich auf die Accessability, die ein Programm gar nicht erkennen kann und sich daher auf Indizien beschränken muss. Nur der Mensch kann entscheiden, welche Auswirkungen der Code haben wird.
Und genau dazu wollte ich Stellungnahmen. Reicht es aus, wenn man nach sorgfältiger Überprüfung feststellt, dass das Problem nicht eintreffen kann und die Warnung einfach stehen lässt oder sollte man alles daran setzen, sämtliche Warnungen zu beseitigen. Da liegt das Problem.
Ich denke, bei Warnungen reicht die sorgfältige Überprüfung immer aus. Tendenziell führt es dazu, dass HTML-Warnungen behoben und CSS-Warnungen belassen werden. Bitte hieraus aber keine Gesetzmäßigkeit ableiten ;-)
Cheatah
In dem von mir gebrachten Zitat
woher stammt das überhaupt?
wurde gesagt, dass man alle Warnungen beseitigen sollte. (Das Zitat bezog sich allerdings auf den HTML-Validator.)
"sollen" heißt nicht "müssen". Das ist ein Vorschlag um auf der sichereren Seite zu sein.
Und genau dazu wollte ich Stellungnahmen.
zum Zitat kann ich mangels Urheber- und zusammenhangskenntnisse nichts sagen.
Reicht es aus, wenn man nach sorgfältiger Überprüfung feststellt, dass das Problem nicht eintreffen kann und die Warnung einfach stehen lässt oder sollte man alles daran setzen, sämtliche Warnungen zu beseitigen. Da liegt das Problem.
das dürfte durch mein letztes Posting beantwortet sein. Sollte ich mich dort unklar ausgedrückt haben: nach sorgfältiger und gewissenhafter Prüfung kannst du eine Warnung auch einfach ausschlagen!
Moin!
Und wenn man Verweise zur Validation setzt sollte da keine Warnung - sei sie auch nur gelb und nicht rot - sein.
Meine Frage dazu: Wie streng seht ihr das? Beim HTML-Validator sehe ich das ein, ich ziele in diesem Thema aber eher auf den CSS-Validator ab. Dem seine Warnungen finde ich nämlich teilweise relativ unsinnig und bin (derzeit) eigentlich auch nicht wirklich gewillt, irgendetwas zu unternehmen, das diese Warnungen nicht mehr erscheinen.
Und damit handelst du vollkommen korrekt. Die Warnungen sind Hinweise auf _mögliche_ Problemsituationen, aber keine FEHLER.
In vielen Fällen bekomme ich zum Beispiel die folgende Warnung zu sehen: "Die gleichen Farben für den Vordergrund und den Hintergrund in den zwei Kontexten." Dies ist zum Beispiel der Fall, wenn die Hintergrundfarbe des body-Elements und die Vordergrundfarbe der a-Elemente identisch sind.
Genau das ist der Klassiker. Der CSS-Validator kann aber auch nicht anders, da er ja nur das CSS prüft. Er bräuchte allerdings sowohl das zugehörige HTML als auch eine Rendering-Engine. um feststellen zu können, ob tatsächlich ein Problem besteht.
- Sven Rautenberg
Hi,
Genau das ist der Klassiker. Der CSS-Validator kann aber auch nicht anders, da er ja nur das CSS prüft. Er bräuchte allerdings sowohl das zugehörige HTML als auch eine Rendering-Engine. um feststellen zu können, ob tatsächlich ein Problem besteht.
Er hat das zugehörige HTML da er sowohl das style-Element als auch die style-Attribute berücksichtigt.
Eine Rendering-Engine brauch ein CSS-Validator nicht, da zuerst das CSS interpretiert und dann gerendert wird (das macht wohl jeder Browser so) ;-)
Der CSS-Validator kann (oder eher könnte) also auf jeden Fall anders, er ist nur Mangel und Fehlerhaft programmiert.
Bestes Beispiel ist folgendes:
p { color:red; }
p { background-color:blue; }
Einmal meckert er die fehlende Vordergrund- und einmal die Hindergrundfarbe an...
Weiterhin berücksichtigt er überhaupt keine HTML-Attribute wie z. B. color, face, size, background usw. obwol diese laut CSS-Specs. als "CSS-Daten" verarbeitet werden müssen:
<font color="red" style="background-color:blue;">
Hier dürfte er keinen Mucks zum Thema Vorder/Hintergrundfarbe absondern.
Solche Beispiele könnte man Endlos bringen, als Validator kann man den Müll aber nun wirklich nicht bezeichnen.
Es ist halt der einzige CSS-Validator, also halten wir es wie die Fliegen - freßt Sch..., millionen Fliegen können sich nicht irren ;-))
Viele Grüße
Thomas
Hi,
Er hat das zugehörige HTML
höchstens dann, wenn man ihm anstelle der CSS-Ressource eine HTML-Seite vorwirft.
cu,
Andreas
Hallo Thomas
Er hat das zugehörige HTML da er sowohl das style-Element als auch die style-Attribute berücksichtigt.
Aber nicht immer, er prüft auch reines CSS, als Datei oder Textschnipsel.
Oder willst du ihm vorwerfen, dass er so freundlich ist, den Inhalt des style-Elements selbst aus dem HTML zu fädeln, statt dich zu zwingen, es selbst zu tun? ;-)
Eine Rendering-Engine brauch ein CSS-Validator nicht, da zuerst das CSS interpretiert und dann gerendert wird (das macht wohl jeder Browser so) ;-)
Aber auch nicht viel weniger.
Er müsste den DOM-Baum aufbauen und das CSS zuweisen, um alle Vererbungen zu erfassen, dann anhand aller möglicher Viewport- und Schriftgrößen die resultierenden Werte für Größen, Positionen und Ebenen aller Elemente bestimmen, feststellen welches Element (auch nur teilweise) den Hintergrund eines anderen bildet. Erst dann könnten zuverlässige Aussagen über die Notwendigkeit der Zuweisung einer Farbe oder Hintergrundfarbe erfolgen.
Das wäre dann mehr, als ein Browser leisten muss, der jeweils nur die gerade aktuelle Viewport- und Schriftgröße berücksichtigen muss.
Der CSS-Validator kann (oder eher könnte) also auf jeden Fall anders, er ist nur Mangel und Fehlerhaft programmiert.
Bestes Beispiel ist folgendes:
p { color:red; }
p { background-color:blue; }
Einmal meckert er die fehlende Vordergrund- und einmal die Hindergrundfarbe an...
OK, so intelligent könnte er sein, identische Selektoren zusammenzufassen.
Das würde aber auch einen höheren Aufwand bedeuten, weil er das CSS dann nicht einfach Zeile für Zeile durchgehen könnte, sondern _alles_ komplett zuordnen müsste.
Weiterhin berücksichtigt er überhaupt keine HTML-Attribute wie z. B. color, face, size, background usw. obwol diese laut CSS-Specs. als "CSS-Daten" verarbeitet werden müssen:
Steht in der Spec. auch, dass ein CSS-Validator HTML-Attribute verarbeiten muss?
Hier dürfte er keinen Mucks zum Thema Vorder/Hintergrundfarbe absondern.
Wenn er ein CSS-HTML-Validator wäre.
Solche Beispiele könnte man Endlos bringen, als Validator kann man den Müll aber nun wirklich nicht bezeichnen.
Prüft er das CSS nicht auf korrekten Syntax?
Von welchem HTML-Validator oder XML-Parser wird verlangt, dass er ein entsprechendes Dokument nicht nur entsprechend der DTD prüft, sondern darüberhinaus auch noch zuverlässig feststellt, ob ein Element unnötig ist, der Text doch bitte in ein <p> gehöre, oder ob Attribute zulässige aber unsinnige Werte enthalten.
Die Warnungen des CSS-Validators sollten als das genommen werden, was sie sind, lediglich ein Hinweis, dass eine notwendige oder empfehlenswerte Angabe vergessen sein _könnte_.
Auf Wiederlesen
Detlef
Hi Detlef
Er hat das zugehörige HTML da er sowohl das style-Element als auch die style-Attribute berücksichtigt.
Aber nicht immer, er prüft auch reines CSS, als Datei oder Textschnipsel.
Meine Aussagen beziehen sich nur auf HTML-Dokumente welche CSS verwenden.
Oder willst du ihm vorwerfen, dass er so freundlich ist, den Inhalt des style-Elements selbst aus dem HTML zu fädeln, statt dich zu zwingen, es selbst zu tun? ;-)
Das hast Du falsch verstanden. Ich sagte das im Bezug zur Aussage von Sven "Er bräuchte allerdings sowohl das zugehörige HTML...". Ich wollte nur deutlich machen das dem Validator das HTML zur Verfügung steht.
Eine Rendering-Engine brauch ein CSS-Validator nicht, da zuerst das CSS interpretiert und dann gerendert wird (das macht wohl jeder Browser so) ;-)
Aber auch nicht viel weniger.
Er müsste den DOM-Baum aufbauen und das CSS zuweisen, um alle Vererbungen zu erfassen, dann anhand aller möglicher Viewport- und Schriftgrößen die resultierenden Werte für Größen, Positionen und Ebenen aller Elemente bestimmen,...
Genau das sollte ein Validator machen.
..feststellen welches Element (auch nur teilweise) den Hintergrund eines anderen bildet.
Warnungen zu Hinter/Vordergrundfarben bräuchte er nur bei absolut positionierten Elemente ausgeben. Ansonsten greift die Vererbung etc?!
Erst dann könnten zuverlässige Aussagen über die Notwendigkeit der Zuweisung einer Farbe oder Hintergrundfarbe erfolgen.
Das wäre dann mehr, als ein Browser leisten muss, der jeweils nur die gerade aktuelle Viewport- und Schriftgröße berücksichtigen muss.
Korrigiere mich wenn ich falsch liege, aber laut CSS-Specs. ist es überhaupt nicht notwendig eine Hinter/Vordergrundfarbe anzugeben, wozu dann die Warnungen?
Der CSS-Validator kann (oder eher könnte) also auf jeden Fall anders, er ist nur Mangel und Fehlerhaft programmiert.
Bestes Beispiel ist folgendes:
p { color:red; }
p { background-color:blue; }
Einmal meckert er die fehlende Vordergrund- und einmal die Hindergrundfarbe an...OK, so intelligent könnte er sein, identische Selektoren zusammenzufassen.
Das würde aber auch einen höheren Aufwand bedeuten, weil er das CSS dann nicht einfach Zeile für Zeile durchgehen könnte, sondern _alles_ komplett zuordnen müsste.
Richtig, aber genau das erwarte ich von einen Validator.
Weiterhin berücksichtigt er überhaupt keine HTML-Attribute wie z. B. color, face, size, background usw. obwol diese laut CSS-Specs. als "CSS-Daten" verarbeitet werden müssen:
Steht in der Spec. auch, dass ein CSS-Validator HTML-Attribute verarbeiten muss?
In keiner Spec. der Welt steht wie sich ein Validator verhalten muss (auch nicht bei HTML). Dafür müsste man erst einmal spezifizieren was ein "Validator" überhaupt ist. Meiner Ansicht nach sollte ein Validator ein Dokument dahingehend überprüfen ob es den Angaben einer Spec. entspricht. Deswegen ist der W3C-Validator für mich auch kein Validator sondern ein Syntaxchecker mit DTD-Überprüfung. Das dumme Teil erkennt ja nicht mal falsche Farbwerte in Attribute.
Wenn er ein CSS-HTML-Validator wäre.
Ist er es nicht? Warum berücksichtigt er dann CSS-Angaben in HTML-Dokumenten, s.o.?
Prüft er das CSS nicht auf korrekten Syntax?
Ok, nennen wir das Teil Syntaxchecker, aber bitte nicht Validator.
Von welchem HTML-Validator oder XML-Parser wird verlangt, dass er ein entsprechendes Dokument nicht nur entsprechend der DTD prüft, ...
Gegenfrage, von welchen Validator wird verlangt das er gegen eine DTD validieren muss?
Diesbezüglich existieren keine Vorschriften, nur "könnte", "sollte" etc.
Warum nicht gegen ein Schema validieren oder mit eigenen Heuristiken?
Lese mal http://edition-w3.de/TR/1999/REC-html401-19991224/sgml/intro.html#h-19.1
Die Warnungen des CSS-Validators sollten als das genommen werden, was sie sind, lediglich ein Hinweis, dass eine notwendige oder empfehlenswerte Angabe vergessen sein _könnte_.
Ich habe nichts gegen vorsorgliche Meldungen, aber schlicht falsche Aussagen sollte so ein Teil nicht liefern und das tut es Sehrwohl.
Viele Grüße
Thomas