Hallo Felix,
3. Warum ein i-Element?
Weil <i> für Icon steht. NICHT! Aber viele glauben das. Der Vorteil: man spart 6 Zeichen gegenüber <span>. Der Nachteil: der Inhalt wird typischerweise kursiv dargestellt (was man mit CSS entfernen kann), aber wenn man das <i> nur als Container nutzt, dem über eine Klasse ein Background-SVG verpasst wird, fällt es gar nicht auf.
Der Grund für diesen Irrglauben ist nicht zuletzt das Beispiel, das Facebook gibt. Und in der Spec steht:
The I element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, a thought, a ship name, or some other prose ...
Das klingt doch gut! Ein Icon ist eine alternative Darstellung für Text, es hebt sich vom normalen Text ab, also warum nicht <i> für Icon? Bei Stackoverflow hat tatsächlich jemand geschrieben, dass das i Element der Semantik eines Icons deutlich näher wäre als ein span Element und dass er es deshalb nutzen würde.
Aber wenn man die Spec bis zum Ende liest:
... whose typical typographic presentation is italicized.
und das ist ein Icon nicht. <i> enthält Text, und ist als italic, nicht als iconic zu verstehen. Und im vorliegenden Fall ist das Icon nicht mal eine alternative Darstellung, sondern Dekor - ein Lastwagen. Vermutlich soll er das Marquee ziehen.
Rolf
sumpsi - posui - clusi