YellowLeds Weblog v2

Artikel über Webdesign, Webstandards und Serendipity von Matthias Mees

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

2 Kommentare

Jens Grochtdreis

Jens Grochtdreis

Schön sind auch Plugins, die man im ersten Moment als nette Hilfe sieht, die aber am Ende komplett sinnlos sind.

Ich hatte mal ein jQuery-Plugin ausgetestet, das einen Farbverlauf crossbrowser erzeugen sollte. Frag mich nicht, warum ich auf diese ****** Idee kam.

Das Plugin funktionierte super. Also optisch. Denn der Verlauf wurde durch unendlich viele DIVs erzeugt, die jeweils 1px breit oder hoch waren (je nach Verlaufsrichtung) und deren Hintergrundfarbei immer um einen Wert verändert wurde. So kamen tausende DIVs zustande.

Performance? Das ist doch nur was für Sissies. Hauptsache, die Seite sieht toll aus! ;-)

Daß solche Plugins überhaupt erstellt werden ist schon schlimm, daß sie dann aber auch noch auf der offiziellen Pluginseite von jQuery auftauchen ist katastrophal.

Man hat da eindeutig eine Qualitätssicherung versäumt, die aber auch angesichts der schieren Masse sicherlich viel zu aufwändig wäre. Aber zumindest im Nachhinein sollte man solche Plugins einfach rausschmeissen.

Matthias Mees

Matthias Mees

Qualitätskontrolle ist da aussichtslos, sowohl im Nachhinein als auch im Vorfeld. Dafür ist die Menge einfach zu enorm -- das sind ja fast schon Dimensionen wie bei Wordpress-Themes, auch ohne zentrales Repository.

jQuery-Plugins gibt's wie Sand am Meer und an jeder Ecke, da ist keine Kontrolle mehr möglich -- es sei denn beim Anwender selbst. Das ist mühsam, weil man es im Zweifelsfall nur durch Ausprobieren oder Codeeinsicht feststellt.

Hinzu kommen noch diese unsäglichen „50+ best jQuery-Blabla“-Blogposts und die allgemeine Verwirrung bei der Benennung solcher Widgets -- was ist eigentlich der Unterschied zwischen einer Slideshow und einem Carousel? ;-) (Das hattet Ihr ja neulich™ auch in der Technikwürze am Wickel.) Anständige jQuery-Plugins sind heute nahezu ungooglebar, da hilft meines Erachtens leider nur ausprobieren und prüfen.

Kommentar schreiben

Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Markdown-Formatierung erlaubt