Unmaskierte Ampersands (&)

Ladies & Gentlemen, Girls & Boys!

Unglaublich, aber wahr: Dieses Dokument enthält unmaskierte Ampersands ("&", kaufmännische Und-Zeichen)!

Der W3C-Validator hat damit kein Problem; die Seite ist valides HTML 4.01 Transitional.

In HTML muss das Ampersand nicht immer maskiert sein, d.h. es muss nicht immer als Entity & im Quelltext stehen.

Notwendig ist die Maskierung dort, wo der Browser denken könnte, das &-Zeichen sei der Anfang einer Entity, so z.B. innerhalb von URLs im HREF-Attribut von Links.

Gemäss der HTML 2.0 Specification wird ein Ampersand nur als Markup betrachtet, wenn unmittelbar darauf ein Buchstabe kommt, oder ein Doppelkreuz "#", gefolgt von einer Zahl.

In der HTML 4 Specification steht nichts explizit zu diesem Punkt; der W3C-Validator beurteilt HTML-4-Seiten mit unmaskierten Ampersands als valide.

In XHTML und XML dagegen sind die Regeln anders; Ampersands müssen offenbar immer maskiert sein (ausser eventuell in CDATA-Bereichen?).

Das Testdokument in XHTML 1.0 Strict mit unmaskierten Ampersands ist somit nicht valide.

Fazit

In HTML 2.0 - 4 ist es nicht notwendig, das Ampersand-Zeichen immer zu maskieren, aber auch nicht falsch.
In XHTML 1.0 ist es notwendig, das Ampersand-Zeichen immer zu maskieren.
Um sich zusätzliche Arbeit bei der Umstellung von HTML auf XHTML zu ersparen, ist es sinnvoll, auch in HTML die Ampersands immer zu maskieren.

Links/Quellen:


Thomas Lüthi, luthi@my-mail.ch Webmaster von tiptom.ch und tomogramm.ch