Thomas J.S.: Metazeichen: auch das Apostroph

Beitrag lesen

Hallo,

HTML-eigene Zeichen sind nach Definition vermutlich diejenigen, für die HTML einen eigenen Namen hat (benannte Entities).

Nun ja, korrekt wäre wenn wir bei den HTML-eigene-Zeichen von Zeichen sprechen die (sonst) für/in Markup-Deklarationen benuzt werden. ;-)
Zusätzlich gib es in HTML auch die sog. benannte Entities.

Ich habe den Begriff im Gegensatz dazu so aufgefaßt, daß es Zeichen sind, die in HTML eine bestimmte Bedeutung haben (Metazeichen?) und daher unter Umständen maskiert werden müssen

Das ist korrekt. ;-)

Nun, ' hat in HTML eine besondere Bedeutung und muß unter Umständen maskiert werden, nämlich wenn man es in einen Attributwert schreibt, der mit ' umschlossen ist.

Das ist zwar korrekt und wie gesagt es ist zulässig Attributwerte mit »'« zu trennen (wobei das »'« nur als Alternative genannt wird), aber sowohl die SGML- als auch die HTML-Spez. verwenden durchgängig »"« als Attributwerttrenner.
Die HTML-Spez sagt dazu "Single quote marks can be included within the attribute value when the value is delimited by double quote marks, and vice versa."
Also name="dies ist ein 'text'" oder name='dies ist ein "text"'

»»Aus diesem Grund würde dieses Zeichen doch also in eine Liste passen, die überschrieben ist mit: "Wenn in Ihrem Text Zeichen vorkommen, die in HTML eine bestimmte Bedeutung haben, müssen Sie diese Zeichen maskieren.", oder? Es wäre doch im Gegenteil sogar fahrlässig, wenn wichtige Zeichen in solch einer Liste fehlen, da es zu Sicherheitslücken führen kann.

Ich verstehe zwar deine Argumente, sehe die Sache aber anders. SELFHTML ist ja keine Spezifikation und so muss es ja auch nicht auf jede Kleinigkeit eingehen. Die gängige Praxis ist die Verwendung von »"« als Attributwertbegrenzer, und zudem ist das »'« nicht wirklich wichtig. Wenn es im Normalen Text vorkommt darf es problemlos als »'« geschrieben werden. Wogegen <,> und & auch im normalen Text besser maskiert werden sollten.

(Zugegeben, das Semikolon hat auch eine bestimmte Bedeutung in HTML, muß aber dennoch nicht maskiert werden. )

Es hat weder in HTML  noch in XHTML eine besondere Bedeutung, alleinstehend ist es ein schlichtes Interpunktionszeichen. Und manchmal darf man es sogar als Entity-Begrenzer weglassen (obwohl davon schwer abgeraten wird, siehe das zweite "Note" in http://www.w3.org/TR/html401/charset.html#h-5.3 oder die zweite "Anmerung" in http://www.edition-w3.de/TR/1999/REC-html401-19991224/charset.html#h-5.3

Grüße
Thomas