Frage zum Wiki-Artikel „image“
nix
- html
- sonstiges
Witzig? Irritierend? Seltsam? Wie auch immer: habe gerade beim Herumspielen („wie verhält sich Element x wenn ich … mache und wie unterscheidet es sich dabei von y“) mal eben so aus einem <img …/>
ein <image>…</image>
gemacht. Und im Inspektor (egal, ob FF oder Safari) vergeblich danach gesucht. Denn: da erscheint weiterhin ein <img …/>
. Obendrein stört es sich nicht mal daran, wenn “Mr. Hyde” weiter mit src=…
gefüttert wird. Dafür ärgert den, wenn “Dr. Jekyll” zu wenige Angaben bzgl. der Größe (und sei es ein auto
) hinterlegt hat. Dann bleibt er im Verborgenen, legt sich an der Stelle die eine oder andere Null zu.
Anders gesagt: die Inspektoren machen aus Code wie
<image ???="…" ></image>
ein
<img ???="…" >
wobei „???“ entweder „src“ oder „href“ ist.
Ja, ich weiß, ich habe (hatte) da kein <svg> </svg>
drum rum gebaut. Aber wie schnell kann einem so etwas passieren — und wie lange kann man, vlt. vor lauter „die Ilsebill, die will nicht…“ auf (mindestens?) einem Auge „jagdblind“, diesen Gestaltwandler ignorieren übersehen? img
oder image
, ist doch das Gleiche⁉︎ Obwohl: Wat den Een sin Uhl, is den Annern sin Nachtigall? ⇒ Wat den Een sin Henry, is den Annern sin Edward⁈ — Na ja, im Original war die Differenz ja auch deutlich geringer als es Jason Flemyng aufmaskiert wurde …
Ich weiß schon: mir machen solche Sachen irgendwie Spaß. Und der Teil, den ich dabei an der Tastatur auslebe … 😇 + 😈!
Hallo nix,
let me google that for you…
MDN behauptet, dass in der HTML Spec stehe, dass <image> im HTML Kontext ein Synonym für <img> sei.
Auf die Schnelle habe ich diese Stelle in der Spec nicht gefunden. Aber damit wäre erklärt, was bei dir passiert.
Rolf
@@Rolf B
let me google that for you…
MDN behauptet
Du brauchst Google, um zu MDN zu kommen? Also ich hab ja MDN in meinem Browser als Suchmaschine: 😏
dass in der HTML Spec stehe, dass <image> im HTML Kontext ein Synonym für <img> sei.
Auf die Schnelle habe ich diese Stelle in der Spec nicht gefunden.
Ich auf die Schnelle auch nicht. Hat etwas gedauert. In 13.2 Parsing HTML documents steht unter 13.2.4.2 The stack of open elements:
Note: An image
start tag token is handled by the tree builder, but it is not in this list because it is not an element; it gets turned into an img
element.
Unter 13.2.6.4.7 The "in body" insertion mode:
A start tag whose tag name is "image"
Parse error. Change the token's tag name to "img" and reprocess it. (Don't ask.)
😄
Aber damit wäre erklärt, was bei dir passiert.
Wenn im HTML <image>
steht, lässt sich das Element in CSS nicht mit image
ansprechen, wohl aber mit img
: Beispiel. Das Bild hat den inset
-Rahmen, dotted
wirkt nicht.
🖖 Живіть довго і процвітайте
Servus!
Witzig? Irritierend? Seltsam? Wie auch immer: habe gerade beim Herumspielen („wie verhält sich Element x wenn ich … mache und wie unterscheidet es sich dabei von y“) mal eben so aus einem
<img …/>
ein<image>…</image>
gemacht.
Ja, auf der Seite der MDN für das image-Element steht:
Note: The HTML spec defines <image> as a synonym for <img> while parsing HTML. This specific element and its behavior only apply inside SVG documents or inline SVGs.
Yes and no. As you point out <image> has been a synonym for <img> for a long time. I believe it was an early Netscape browser that first did this, possibly to compensate for user error, or possibly because there was dispute at the time whether the element should actually be called <image> or <img>.
@@Gunnar Bittersmann hatte das mal im SELF-Forum erwähnt, finde die Stelle aber nicht mehr.
Und Deine Frage war?
Herzliche Grüße
Matthias Scharwies
@@Matthias Scharwies
@@Gunnar Bittersmann hatte das mal im SELF-Forum erwähnt, finde die Stelle aber nicht mehr.
Hui, da erinnerst du dich an was, was ich schon längst vergessen habe.
Bei meiner Recherche hab ich den Artikel The Origin of the IMG Tag gefunden und darin die Ankündigung von Marc Andreesen und nachfolgende Diskussion.
Das war der Ursprung eines Kapitalfehlers von HTML, der sich nicht mehr berichtigen lässt: Das img
-Element hätte niemals als leeres Element festgelegt werden dürfen. Inhalt (Alternativtext) gehört ins Element, nicht in ein Attribut – so wie es dann später bei object
und iframe
gemacht wurde.
Und Deine Frage war?
Seit wann stellt nix Fragen?
🖖 Живіть довго і процвітайте
@@Gunnar Bittersmann
Bei meiner Recherche hab ich den Artikel The Origin of the IMG Tag gefunden und darin die Ankündigung von Marc Andreesen und nachfolgende Diskussion.
Das war der Ursprung eines Kapitalfehlers von HTML, der sich nicht mehr berichtigen lässt: Das
img
-Element hätte niemals als leeres Element festgelegt werden dürfen. Inhalt (Alternativtext) gehört ins Element, nicht in ein Attribut – so wie es dann später beiobject
undiframe
gemacht wurde.
Siehe Slide 70 in Jeremy Keith’ Präsentation „Of Time And The Web“ auf der border:none 2023 in Nürnberg. Stattdessen haben wir das auf dem nächsten Slide Gezeigte bekommen.
🖖 Живіть довго і процвітайте
Hallo Gunnar,
Schon interessant, was vor 30 Jahren alles angedacht... und dann nicht gebaut wurde. Sogar <include> 😆
Rolf
Die Frage war, nachdem Doktur und Alter Ego zusammen gekommen sind, ob dann <image>
nicht vielleicht crs=…
(oder gar …=src
?) als Parameter erwareten sollte. Aber nein, eine Extra-Bratwurst href
muß es sein …!
Anders gesagt: wenn selbst jene, die schon mal da waren, nach dem Weg fragen müssen …
@@nix
Die Frage war, nachdem Doktur und Alter Ego zusammen gekommen sind, ob dann
<image>
nicht vielleichtcrs=…
(oder gar…=src
?) als Parameter erwareten sollte.
„Parameter“? Wie bitte? HTML ist keine prozedurale Programmiersprache. Es gibt in HTML keine Parameter. Es gibt Attribute, die ein Element näher beschreiben.
scr
wäre als Alias nett – ein häufiger Tippfehler. Spaß beseite, HTML sollte nicht mit Aliassen vollgemüllt werden. Warum das bei img
mit image
gemacht wurde – wie die Spec jetzt sagt: “Don’t ask.”
Aber nein, eine Extra-Bratwurst
href
muß es sein …!
Ich kann deinem verklausulierten Gedankengang nicht folgen.
🖖 Живіть довго і процвітайте
Parameter oder Attribut? Nun, kommt darauf an, wer da hin sieht. Für den „Sklaven“, der daraus irgend etwas malen darf (mir fallen da gerade Pratchetts Foto-Apparate ein …) sieht das vmtl. anders aus als für „unsereinen“. Ähnlich wird „unsere“ Semantik für die Software auch mal Syntax.
Und: ja, Aliase braucht man wirklich nicht. Und wer das anders sehen mag: ein guter Texteditor und ein paar Reguläre Ausdrücke hlfen weiter. Und wenn ich schon nicht fragen soll: die stellen mit „Abschluß-Tag: (nahezu) obsolet“ finde ich (bzw. mein Texteditor) schon öfter mal nicht so gelungen. Um den/die Browser nicht zu Fehlschlüssen zu provozieren muß man sie ja doch selber einsetzen. Sicher, lästige Tipparbeit. Aber: die Browser können ja noch (mehr oder weniger begründet) raten. So ein Editor aber … "<(?P<tag>\w+)(?:\s[^>])>.+</\s(?P=tag)>" da jedenfalls nicht mitspielen. So gesehen wäre ein „<del>img</del><ins>image</image>“ durchaus interessant.
Verklausuliert? Zwei Seelen in einer Brust oder zwei Erscheinungsformen in einem Tag? Oder eben Dr. Jekyll und Mr. Hyde. Wobei der eine bei diesen „außergewöhnlichen Gentlemen“ doch ganz schön aufgeblasen daher kommt. Original war der doch … leider! … realistischer.
Hallo nix,
SVG ist nicht HTML und irgendwer meinte, diesen Unterschied betonieren zu müssen.
Deshalb ist es <img src="..."> und <image href="...">.
<image> im HTML Kontext wird behandelt, als ob da <img> stünde. Deswegen muss es dann auch <image src="..."> sein. Und weil es HTML ist, benötigt dieses <image>-Element auch kein Ende-Tag.
Andersrum geht's übrigens nicht: <img> im SVG-Kontext ist kein Alias für <image>.
Rolf
Moin,
SVG ist nicht HTML und irgendwer meinte, diesen Unterschied betonieren zu müssen.
Deshalb ist es <img src="..."> und <image href="...">.
<image> im HTML Kontext wird behandelt, als ob da <img> stünde. Deswegen muss es dann auch <image src="..."> sein. Und weil es HTML ist, benötigt dieses <image>-Element auch kein Ende-Tag.
Andersrum geht's übrigens nicht: <img> im SVG-Kontext ist kein Alias für <image>.
mit XML-Namensräumen und entsprechender Unterstützung der verarbeitenden Software wäre das alles kein Problem gewesen, denn dann könnte sich SVG das img
aus dem XHTML-Namensraum holen bzw. HTML das image
aus dem SVG-Namensraum. Die Attribute blieben dabei natürlich weiterhin gleich.
Viele Grüße
Robert
Ja, hab’s schon verstanden. Das war dann doch nur irritierend. Wenigstens für mich. (Anstelle von FYI doch mehr, weitgehend, „FMI“.)
Denn in der Übersicht oder an ähnlichen Orten taucht <image> nicht auf. Und weil es dann auch noch anders gefüttert werden will, war mich nicht klar, ob sich die Entwickler da etwas (eine Scherz oder eine Erleichterung?) erlaubt hatten. Und wenn, dan was?
Aber wenn das jetzt sowieso, wenn anscheinend auch „etwas schräg“, so definiert ist …
Hallo nix,
in der HTML Elemente Übersicht kann <image> auch nicht auftauchen, weil es ein SVG-Element ist. Deswegen steht es hier.
Auf der HTML Elementeübersicht möchte ich diesen Quirk eigentlich nicht gerne aufnehmen.
Ich aber habe hier eine Anmerkung gemacht, und ich denke, ich mache das hier auch noch.
Und - hey - die HTML Spec Autoren hinterlassen Ostereier 🥚🥚🥚!
In dem Kapitel 13.2.6.4.7, wo auch dieses berüchtigte "don't ask" steht, findet sich ein eigener Abschnitt dieses Inhaltes:
- (handle) an end tag whose tag name is "sarcasm"
- Take a deep breath, then act as described in the "any other end tag" entry below.
Rolf
Servus!
Hallo nix,
in der HTML Elemente Übersicht kann <image> auch nicht auftauchen, weil es ein SVG-Element ist. Deswegen steht es hier.
Auf der HTML Elementeübersicht möchte ich diesen Quirk eigentlich nicht gerne aufnehmen.
Nein, wirklich nicht!
Ich aber habe hier eine Anmerkung gemacht, und ich denke, ich mache das hier auch noch.
Da eigentlich auch nicht. Die Referenz sollte „dem schnellen Überblick“ dienen und dieses Missverständnis ist eher marginal.
Evtl. könnte man es unter "Beachten Sie:" notieren. In einer Abwägung, wie relevant ein fehlendes alt-Attribut im Vergleich zu diesem alle Jubeljahre vorkommenden Missverständnis ist, würde ich es unter "Siehe auch" als Erklärung zu einem Link auf SVG/Element/image packen.
Herzliche Grüße
Matthias Scharwies
in der HTML Elemente Übersicht kann <image> auch nicht auftauchen, weil es ein SVG-Element ist. Deswegen steht es hier.
Drum hatte ich das „noch kein SVG drum rum“ ja auch erwähnt. Der erste (und dann zweite, irritierte) Blick sollte ja nur der Klärung dienen, ob die „Klammerung“ der HTML-Elemente ordentlich war. Und dann taucht da plötzlich etwas auf, das in meinem Quelltext überhaupt nicht …