untief.org

Personennamen mit Microformats 1 auszeichnen

veröffentlicht
2012-07-20
verschlagwortet
HTML
microformats

Personennamen kann man in HTML5 auf diese Weise auszeichnen:

<span translate="no" lang="en">John Doe</span> arbeitet bei ACME.

Mit dem Microformat hCard 1.0 lässt sich diese Auszeichnung erweitern.

Überblick: relevante hCard-Properties

Für Personennamen relevante Properties (also Klassennamen) von hCard 1.0 sind:

fn
für den ganzen Namen (in der bevorzugten Schreibweise)
n
für den ganzen Namen, dessen Bestandteile explizit ausgezeichnet werden
honorific-prefix
für die Anrede und vorangestellte Titel
given-name
für den primären Vornamen
additional-name
für zusätzliche Vornamen (etwa Zwischen- bzw. Mittelnamen)
family-name
für den Nachnamen
honorific-suffix
für angehängte Titel

Aufbau

Das Containerelement einer hCard muss die Klasse vcard erhalten.

Die Klassen fn und n müssen beide genau 1-mal innerhalb des Elements mit der Klasse vcard vorkommen (allerdings darf n in zwei Ausnahmefällen weggelassen werden). Diese beiden Klassennamen dürfen dem selben Element gegeben werden. Die übrigen Properties müssen alle Kindelementen des Elements mit der Klasse n zugeordnet werden.

Ausnahmen, bei denen man auf n verzichten darf

Die Klasse n darf nur dann weggelassen werden, wenn der Name aus genau zwei Wörtern besteht. Dann allerdings muss der Name in einer dieser beiden Konstellationen geschrieben sein:

Wenn der Name nur aus einem Wort besteht, dann muss zusätzlich zu fn auch n angegeben werden, ansonsten wird dieser Name als Nickname interpretiert. Wenn der Name aus mehr als zwei Wörtern besteht, muss ebenfalls zusätzlich n angegeben werden, ansonsten wäre eine Zuordnung der einzelnen Namensbestandteile nicht möglich.

Unschön: zusätzliches span für die Klasse vcard

Wie bereits erwähnt: Jede hCard muss durch die Klasse vcard eingeleitet werden. Allerdings darf man dem Element mit dieser Klasse nicht auch zusätzlich hCard-Properties wie z. B. fn geben. Dafür müssen also in jedem Fall Kindelemente verwendet werden. Bei komplexeren hCards stellt das kein Problem dar: man kann die Klasse vcard in der Regel dem übergeordneten Blockelement geben. Da wir aber nur Personennamen auszeichnen wollen, kann durchaus der Fall auftreten, dass innerhalb eines Paragraphen mehrere Namen von verschiedenen Personen genannt werden – jede dieser Personen braucht natürlich eine eigene hCard. Das heißt also, wir müssen das span-Element, das den Namen enthält, mit einem zusätzlichen span-Element umschließen:

<span class="vcard"><span translate="no" lang="en" class="fn">John Doe</span></span> arbeitet bei ACME.

Bei diesem Beispiel darf man auf n und die explizite Auszeichnung der Namensbestandteile verzichten, da die Schreibweise des Namens einer der oben beschriebenen Ausnahmen entspricht. So sähe das Beispiel mit n aus:

<span class="vcard"><span translate="no" lang="en" class="fn n"><span class="given-name">John</span> <span class="family-name">Doe</span></span></span> arbeitet bei ACME.