May the plugin force be with you

jQuery dürfte heute mit Abstand die beliebteste Javascript-Bibliothek im Web sein. Sie ist (zumindest in Englisch) gut dokumentiert, ermöglicht auch JS-Anfängern einen relativ leichten, schmerzfreien Einstieg und, was der Hauptgrund für ihre Beliebtheit sein dürfte: Sie ist über Plugins einfach und schnell modular erweiterbar.

Was würde Yoda tun?

Star Wars-Fans kennen den folgenden Dialog:

Is the dark side stronger?

No, no, no. Quicker, easier, more seductive.

Luke und Yoda in „The Empire Strikes Back

Natürlich sind Plugins nicht wirklich die „dunkle Seite“ von jQuery – es spricht überhaupt nichts dagegen, Code weiterzuverwenden. Wozu das Rad neu erfinden? Aber: Man sollte sich gerade angesichts der Masse ein Plugin genau ansehen, ehe man es verwendet – und dabei bestimmte Qualitätsmerkmale unbedingt über einfache Verwendbarkeit stellen, selbst wenn das eventuell der beschwerlichere, weniger verführerische Weg sein sollte.

„Do. Or do not. There is no try.“

„Vernünftige“ Plugins gibt es meistens schon etwas länger, sie werden kontinuierlich entwickelt und gepflegt und haben normalerweise eine halbwegs ausführliche Dokumentation inklusive einer Demo-Seite. Mitunter gibt es auch Links zu Seiten, welche das Plugin bereits verwenden. Vorbildlich: Cycle, das „Schweizer Armeemesser“ für Slideshows (fast) aller Art, glänzt mit irrsinnig vielen, nach Komplexität sortierten Anwendungsbeispielen.

Sauberes, semantisch sinnvolles Basis-Markup, welches bei deaktiviertem Javascript sauber degradiert, zumindest aber die Inhalte zugänglich belässt, sollte ein wichtiges Auswahlkriterium sein – einfach mal die Demos des Plugins ohne Javascript begutachten. Aber Vorsicht: Es gibt Fälle, in denen das Skript selbst alles halbwegs richtig macht, aber das CSS des Demos nicht ideal ist. Das ist z.B. bei einigen der jQuery Tools (Tabs) der Fall.

Stichwort „Zugänglichkeit“: Idealerweise lässt sich das generierte JS-Widget ggf. auch per Tastatur bedienen; möglicherweise, etwa z.T. im Fall der zur jQuery UI gehörenden Widgets, verwendet es sogar schon WAI-ARIA. Sehr hilfreich sind auch Funktionen, wie sie etwa Fancybox bietet, um an verschiedenen Punkten der Skriptausführung eigene Funktionen einzubinden.

„Ready are you? What know you of ready?“

Bisweilen lauert der Teufel im Detail: Fancybox, sicher eines der beliebtesten Lightbox-Skripte, verwendet „ab Werk“ Ballast in Form von proprietären IE-Filtern, welche die Performance bremsen – muss (oder will) man z.B. den IE6 nicht mehr unterstützen, kann man diese aus dem Stylesheet entfernen. Das ansonsten angenehm schlanke Syntax Highlight Plugin springt auf das lang-Atribut an, sieht dafür aber dummerweise ungültige Werte wie lang="html" vor (kann man leicht und valide durch das neue data-*-Attribut ersetzen). Nicht jedes Plugin, welches für sich beansprucht, barrierefrei zu sein, ist es wirklich – der Artikel zu Dirk Ginaders Accessible Tabs liefert dazu wertvolle Einblicke (und ein beispielhaftes Plugin).

Kurz gesagt gilt bei der Suche nach dem passenden jQuery-Plugin (oder auch nur Code-Schnipsel), was auch ansonsten stets gelten sollte: Erst sorgfältig prüfen, ob es den Anforderungen genügt – dann verwenden. Oder um ein letztes Mal Master Yoda zu Wort kommen zu lassen:

Control, control. You must learn control.

Yoda in „The Empire Strikes Back