|
|
Obwohl oncontextmenu kein gültiges Attribut ist und Validome das auch entsprechend bemängelt, erscheint bei folgendem Code eine Warnung, dass man den Content-Script-Type angeben muss, wenn man Event-Handler nutzt.
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Validator-Test</title>
</head>
<body oncontextmenu="foo">
<p>Test</p>
</body>
</html> |
Offenbar wird oncontextmenu abseits des Standards als Event-Handler eingestuft. Gerade die Kombination der Meldungen ist doch sehr verwirrend. Ist das Absicht? IMO sollte der CST-Hinweis nicht erscheinen, es ist einfach ein unzulässiges Attribut und sollte außer einer entsprechenden Meldung nicht weiter beachtet werden.
Interessant ist auch, dass die ungültigen Attributnamen offenbar manuell eingepflegt wurden, ein onfoo="bar" erzeugt keinen CST-Hinweis.
|
|
| 23.07.2006 01:21:51 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Hallo, dieses Verhalten ist uns bekannt und ist zum Teil nicht zu beheben. Die Meldung bezüglich nicht erlaubten Event-Handlern wird vom SGML bzw. Schemaparser gemeldet. Diese ist abhängig vom Element und dem Event-Handler. Somit wird z. B. ein onsubmit nur im form-Tag erlaubt. Die Meldung bezüglich Content-Script-Type wird heuristisch generiert. Dazu wird überprüft ob überhaupt Event-Handler vorhanden sind, unabhängig von den Elementen. Der einfachheit halber haben wir so ziemlich alle Handler eingepflegt die es gibt, schon um Zukunfssicher zu sein (wer weiß welche Handler noch dazukommen) -> http://msdn.microsoft.com/library/defau ... rame=true. Dieser Teil des Parsers wird aber auch nochmal überarbeitet, damit sind wir nicht wirklich Glücklich. Wenn Du Lust hast kannst Du gerne eine Auflistung aller Elemente mit den jeweils erlaubten Event-Handlern machen - und das für alle Dokumententypen ;-))
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 23.07.2006 13:34:16 |
|
|
|
Wozu ist denn die Heuristik gut? Prüft ihr nicht einfach ob irgendein Element ein on...-Attribut aus der besagten Liste besitzt?
Wie auch immer, der Sinn, in die Liste auch Attribute abseits der Standards aufzunehmen erschließt sich mir nicht. Sollten die tatsächlich einmal hinzukommen, kann man die Liste doch immer noch ergänzen? Gerade wenn ihr da eh noch mal ran wollt, ist das doch unnötiger Aufwand gewesen.
Solch eine Liste hätte ich ja vielleicht sogar noch erstellt, allerdings wäre es unklug die zulässigen Attribute doppelt zu führen, wo doch über die DTDs/Schemata bereits alles definiert ist. Da ist es tatsächlich besser bei der Validierung ein Flag zu setzen, wenn ein gültiges on...-Attribut gefunden wurde und dann anstelle der Heuristik gegen das Flag zu prüfen.
|
|
| 25.07.2006 00:04:23 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Hi, natürlich stehen die Regeln in den DTD’s und Schemata, nur leider teilt uns der SGML-Parser diese Regeln nicht mit (der Schemaparser schon, wenn auch umständlich). Deshalb muss man unabhängig von den Parsern mit Heuristiken arbeiten (DOM o.ä.). Und für diese Heuristiken bräuchten wir die besprochene Liste, zumal so etwas viel performanter ist als die Grammer (wie auch immer) nachmals zu parsen und zu verarbeiten. Diesen Aufwand haben wir uns aber bewusst gespart, es handelt sich ja nicht um einen „richtigen“ Fehler sondern um eine kleine Hässlichkeit ;-) Die Heuristik arbeitet nicht mit einen Flag. Es werden so oder so alle Attribute überprüft, z. B. wegen den Attributwerten bei HTML, Textankern und andere Sachen die nicht per DTD/Schema überprüft werden können. Stolpern wir dabei über einen Event-Handler wird ein Fehler ausgegeben wenn kein Header und kein meta-Tag vorhanden ist. Diese Heuristik ist „billig“ da kein „schwerer“ Parser benötigt wird der das validieren unnötig verlangsamen würde (und keine nennenswerte Vorteile bringt). Wie gesagt, wenn Du so eine Liste machen möchtest (am besten als PHP-Arraybaum oder XML) dann los ;-))
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 25.07.2006 16:33:15 |
|
Wechsel zu
Die letzten Beiträge aus diesen Forum
|
|