Um Elemente eines HTML Dokuments zu Adressieren, z.B. fuer Event Handler in JavaScript, oder fuer Tests der Benutzerschnittstelle mit Capybara oder Selenium verwendet man ueblicherweise entweder das ID Attribut, oder das Class Attribut.
Beide haben Nachteile, bzw. sind nicht optimal. Ein ID Attribut kann man pro Seite nur ein Mal verwenden. Das Class Attribut ist eigentlich dazu gedacht das Aussehen eines Elements festzulegen und nicht den Zweck anzuzeigen. Dies fuehrt dann dazu das man eine Menge Klassen hat, zu der man keine entsprechende Definition in der CSS Datei findet.
In dem Artikel „Write better cukes with the rel attribute“ schlaegt Steve Klabnik nun vor, dieses Attribut statt dem Class Attribut zu verwenden um Links eine Bedeutung zuzuweisen.
Eigentlich ist es erstaunlich das das Rel Attribut in dieser Hinsicht nicht haeufiger verwendet wird. Denn das Attribut exisitiert seit HTML 1 und ist uns allen vom Link Element gelaeufig. Dort wird es mit dem Wert „stylesheet“ verwendet um CSS-Dateien einzubinden.
Ein Grund fuer die geringe Verwendung mag der sperrige Selektor sein. Der sieht naemlich beispielsweise in jQuery so aus: $(‘a[rel="edit-article"]‘), bei einer Klasse wuerde $(‘.edit-article’) ausreichen.
Ein weiterer Grund ist sicher, dass der Link durch das Rel Attribut, allgemein verstaendlich sein sollte. So das auch die Suchmaschienen, den Link interpretieren koennen und nicht nur der Web Developer, der die Seite erstellt hat. Daher gibt es inzwischen eine recht lange Liste mit registrierten Link Typen.
