Das bisher wohl größte Problem bei der Verwendung von Microformats ist (oder besser wahr) die Accessibility durch die etwas zweckentfremdete Verwendung des <abbr />-Tags.

Das so genanntes abbr-design-pattern diente hauptsächlich dazu (es gibt noch einige andere Anwendungsfälle), ein für den Menschen lesbares Datum auch für die Maschine lesbar zu machen und ist Bestandteil von Mikroformaten wie z.B. hCalendar, hAtom oder hReview.

Ein Beispiel: <abbr class="dtstart" title="2009-05-12">heute</abbr>

SelfHTML über das abbr-Element:

zeichnet einen Text aus mit der Bedeutung „dies ist eine Abkürzung“

Selbst wenn man davon ausgeht, dass das Wort heute eine Abkürzung für das volle Datum 2009-05-12 ist, gibt es ein großes Problem mit Screen-Readern. Die meisten Screen-Reader sind so konfiguriert, dass sie statt der Abkürzung, das im title-Attribut angegebene, vollständige Wort lesen.
Im Falle der abbr-design-pattern im oben genannten Beispiel wäre das 2009-05-12 (gelesen „Zweitausendneun minus Fünf minus Zwölf“), also viel missverständlicher als heute.

Das gerade angekündigte value-class-pattern soll dieses (und einige andere) Problem jetzt beheben.

Ein Datum, wie im Beispiel oben, würde mit dem value-class-pattern folgendermaßen aussehen:

<span class='dtstart'>
  <span class='value-title' title='2009-05-12'> </span>
  heute
</span>

Erklärung:

  • dtstart gibt immer noch an, dass es sich bei dem folgenden um ein Datum handelt
  • Die folgende Klasse: value-title gibt an, dass sich dtstart auf das title-Attribut des spans bezieht
  • Im title steht der maschinen-lesbare text

Das neue Pattern beschreibt aber noch eine ganze Reihe an anderen Anwendungsfällen, am besten ihr überfliegt die Seite einfach mal selbst: http://microformats.org/wiki/value-class-pattern

…es sind übrigens alle Microformats-Nutzer aufgerufen, ihre Seiten und Parser auf das neue Pattern umzustellen, also viel Spaß dabei 🙂

Naja, nicht wirklich aber immerhin hat es RDFa bis dato nicht in die HTML5 Spezifikation geschafft. Es gibt zwar einen Milestone

The HTML WG is encouraged to provide a mechanism to permit independently developed vocabularies such as Internationalization Tag Set (ITS), Ruby, and RDFa to be mixed into HTML documents.

…aber wer weiß wie lange das noch dauert. Das heißt wohl, dass die Microformats noch eine gewisse Zeit lang als Übergangslösung her halten müssen. Aber das ist ne andere Geschichte…

Eigentlich wollte ich auf zwei HTML5 – Elemente eingehen, die eine schicke Alternative zu den bisherigen (in vielen Microformats verwendeten) abbr-design-pattern bietet.

Der <time />-Tag

Das time Element ermöglicht das kennzeichnen eines Datums in z.B. Blogposts o.Ä.

The primary use cases for these elements are for marking up publication dates e.g. in blog entries, and for marking event dates in hCalendar markup.

Also:

<time datetime="2006-09-23">a Saturday</time>

statt:

<abbr title="2006-09-23">a Saturday</abbr>

Ein hCalendar könnte dann so aussehen:

<div class="vevent">
  <span class="summary">event title</span>
  <time datetime="2006-09-23" class="dtstart dtend">a Saturday</time>
</div>

Custom data attributes (data-)

Ein custom data attribute ist ein frei benutzbares Attribut um Elemente mit Metadaten anzureichern. Die einzige Vorgabe ist, dass es mit data- beginnen muss. Ein Beispiel:

<div class="monkey" data-arms="2"
     data-legs="2" data-race="chimp">
  Cheetah
</div>

Ideal auch als <abbr />-Ersatz bei z.B. dem Geo-Microformat.

Also:

<div class="geo" data-latitude="49.5483" data-longitude="8.6661">Weinheim</div>

statt:

<abbr class="geo" title="49.5483;8.6661">Weinheim</abbr>

Fazit

(X)HTML (egal ob XHTML2 mit RDFa oder X/HTML5) wird also definitiv ein semantisches Feuerwerk, ganz im Sinne von Tim Berners Lee…

Ich freu mich 🙂

Gestern habe ich durch Zufall den Schuldigen für die abbr-desing-pattern – Misere gefunden… Der Safari ist Schuld!

Ursprünglich war das object-Tag zum Anzeigen des Datums vorgesehen:

<object data="20050125">January 25</object>

Aber…

Unfortunately, to put it mildly, Safari’s <object> support sucks. It doesn’t handle <object> fallbacks, it doesn’t know when not to handle <object> mime types that it doesn’t support, it doesn’t support display:inline on <object>, and it doesn’t do proper intrinsic sizing of <object> replaced elements.

DANKE SAFARI! 😉

Quelle: Tantek’s Thoughts

Dass die abbr-design-pattern nicht das gelbe vom Ei sind (massive Probleme mit Screen-Readern), hat das Web Standards Project (WaSP) schon vor mehr als einem Jahr festgestellt, aber es bedarf meistens etwas Druck von außen damit sich wirklich etwas ändert.

Nach der Ankündigung der BBC, alle Microformats (die das abbr-design-pattern verwenden) von ihren Seiten (speziell bbc.co.uk/programmes) zu nehmen, ist die alte Diskussion wieder in vollem Gange.

Diskutierte Lösungen:

  • <span class="dtstart data-20051010T10:10:10-0100">10 o'clock on the 10th</span>
  • <span class="dtstart{2005-10-10T10:10:10-0100}">10 o'clock</span>
  • <abbr class="dtstart data{2008-06-23}" title=June 23rd, 2008">Today</abbr>
  • <abbr class="fancy data{2008-06-23} dstart" title=June 23rd, 2008">Today</abbr>
  • <span class="dtstart" content="2008-06-23">Today</span> (Nicht XHTML 1.x valide)

Noch mehr Infos zu dem Thema bekommt man im Wiki oder über die Mailing-Liste.

(via hackr)

Eigentlich bringt das iPhone, mit WLAN und einem (fast) vollwertigen Safari, die besten Voraussetzungen um Microformats zu verarbeiten.

Nach der Frage von Rauno

[…] Weißt du von einer Möglichkeit, Microformats aus Firefox in den iPhonekalender zu exportieren? […]

und nach Wojteks Kommentar…

[…] I prefer bookmarklets but this will come handy for sure too. […]

habe ich mir überlegt, es sollte doch möglich sein, Microformats mit einem Bookmarklet direkt auf dem iPhone nutzbar zu machen…

Prinzip ist einfach, Bookmarklet (z.B. von Leftlogic oder Technorati) im normalen Safari Bookmarken, iPhone Safari mit normalem Safari über iTunes syncen, das wars… (wem das zu schnell ging kann sich das hier nochmal in Ruhe am Beispiel eines del.icio.us Bookmarklets anschauen.)

Das Bookmarklet funktioniert super:

IMG_0056.JPG

…aber der §$%!& iPhone Safari kann keine vCard oder iCalendar Dateien verarbeiten!

IMG_0057.JPG

Mach ich irgendwas falsch? Sogar mein popliges Sony Ericsson Handy erkennt vCards und weiß dass sie ins Adress-Buch gehören!

Naja… Wie schon im Titel erwähnt: Es könnte so einfach sein.

(Dickes Danke an Florian (.dean) fürs testen und die Screenshots und an Marco, dessen iPhone ich kurz entführen durfte)

Vor ungefähr einem Jahr habe ich schonmal über einen Microformats Bluetooth-Export mit Hilfe von Tails-Export geschrieben. Da sich aber nach und nach der Operator als DAS Microformats-Addon für den Firefox durchgesetzt hat, wurde natürlich auch das Bluetooth-Script portiert.

Das Mac-Script findet man auf der Seite von Michael Kaply (direkter Link).

“Send to Bluetooth Device” action for sending ICS and VCF files via Bluetooth. Works with the hCard and hCalendar microformats.

…und seit letztem Monat gibt es auch ein Windows-Script von Thom Shannon (direkter Link).

I’ve modified the Mac only bluetooth user script for operator to work on windows. It’s based on this script, and originally inspired by Johns hack of Tails.

Safari Microformats plugin

Neben zwei Notlösungen, Microformats in Safari zu nutzen, gibt es jetzt eine weitere Version für das Cocoa Plugin System SIMBL.

Das Safari Microformats plugin erkennt die Microformats hCard und hCalendar und zeigt sie über ein kleines Microformats-Logo in der Adresszeile an.

Safari Microformats plugin

Per Klick auf das Logo, lassen sich die gefundenen Formate bequem in ein entsprechendes, lokal installiertes Programm wie iCal oder Address Book importieren. Wer Growl installiert hat, erhält außerdem eine Growl-Meldung, wenn die Daten erfolgreich importiert wurden.
Via: Dataportability Feed

Leider funktioniert das Plugin nur mit der aktuellen Version von Safari (V. 3) in Verbindung mit Mac OS X Leopard, deshalb konnte ich es auch noch nicht testen.
Wenn ihr Fragen zum Plugin habt, versuchts einfach mal bei Manuela Hoffmann.