Gedanken zum Webdesign

Die Herderschach-Homepage ist mein erstes Web-Projekt. Zuvor hatte ich bei der Gestaltung der Trainingsmaterialien erste HTML-Erfahrungen gesammelt. Daher weichen diese in ihrem Aussehen etwas von der übrigen Präsenz ab.
In diesem Artikel möchte ich darstellen, von welchen Gedanken ich mich beim Entwickeln der Herderschach-Seiten leiten lasse und meine Meinungen dazu auch gerne als Diskussionsanstoß verstehen.

Meine Grundsätze und Ziele

Bevor ich an die Arbeit ging, war die Grundstruktur der Homepage in meinem Kopf weitgehend fertig. Es bestand Klarheit darüber, welche Inhalte ich anbieten will und wie die Seite aussehen soll. Dieses Konzept hat weitgehend noch heute Gültigkeit. Sehen wir die wichtigsten Aspekte:

Grundgedanken zur Gestaltung

Bei der optischen Gestaltung dieser Seiten lasse ich mich von einer Reihe einfacher Grundsätze leiten.

Tabellenbasiertes Layout – Pro und Contra

Es gab eine Zeit, da galt es als normal, dass man ein mehrspaltiges Layout der Seite herstellte, indem man die Inhalte in eine rahmenlose Tabelle packte. Inzwischen gilt dieses Verfahren als überholt und widerspricht der "reinen Lehre" der Trennung von Inhalt und Layout. CSS-Elemente gelten als zeitgemäßes Gestaltungsmittel und bieten in der Tat weit mehr und flexiblere Möglichkeiten, ein angenehmes Erscheinungsbild der Webseite zu schaffen. Tabellen sollen hingegen den Anwendungsfällen vorbehalten bleiben, in denen es wirklich um die Präsentation tabellarisch geordneter Daten geht.
Ich teile diese Ansicht weitgehend, werde mich ihr aber nicht sklavisch unterwerfen.
Dort wo es mir angebracht erscheint, wird man auch auf meinen Seiten weiterhin rahmenlose Tabellen als Mittel des Spaltenlayouts finden. Für ihre gelegentliche Anwendung sprechen vor allem folgende Gründe:

Natürlich spricht auch manches gegen diese Darstellungsform:

Für komplexere Darstellungen und insbesondere das Einbinden von Bildern in den fortlaufenden Text verwende ich also moderne CSS-Elemente (Stichwort "float"). Einfache Layout-Aufgaben (z. B. bei den Bildergalerien) werde ich hingegen auch weiter tabellenbasiert lösen.

HTML-Strict oder HTML-Transitional?

Zunächst hatte ich alle Seiten in der HTML-Variante "transitional" entworfen. Diese enthält noch eine Reihe von Sprachelementen, die inzwischen vom WWW-Konsortium als "missbilligt" gebrandmarkt sind. Sie wurden durch (in der Regel leistungsfähigere) CSS-Elemente ersetzt. Obwohl man sicher sein kann, dass die gängigen Browser auf lange Sicht auch diese Elemente korrekt anzeigen werden, war es mein Ehrgeiz, eine Seite anzubieten, die im Sinne der HTML-Variante "strict" korrekt ist. Der Aufwand für diese Umstellung war überraschend gering. Lediglich die mit dem Programm Chessbase erstellten nachspielbaren Partien erfüllen die Anforderungen an HTML-strict nicht. Bei einigen Partien (Partie-Rubrik im Hauptteil der Homepage) habe ich mit großem Aufwand eine validierbare Fassung erstellt.

An zwei Stellen stieß die Umstellung auf Grenzen der Machbarkeit, die nur mit Workarounds lösbar waren:

Das Target-Attribut in Verweisen
Die Angabe einer abweichenden Start-Nummer bei einer Aufzählung

Webmasters Leid: Die verschiedenen Browser

Natürlich soll man so entwickeln, dass alle gängigen Browser eine Darstellung bieten, die der Vorstellung des Autors möglichst nahe kommt. Das ist eine Selbstverständlichkeit, aber es wird einem nicht einfach gemacht. Ein kleines Beispiel zeigt, wie 3 der wichtigsten Browser (jeweils in Standard-Einstellung) mit einer recht einfachen Konstruktion umgehen.
Dabei wird innerhalb einer Aufzählungsliste eine der Textzeilen mit einem kleinen Bild eingeleitet. Das Bild ist mit "float:left" innerhalb dieser Zeile positioniert.
Aber alle 3 Browser haben ihre eigene Vorstellung davon, wie es beim Nutzer aussehen soll:

Bild Bild Bild
Internet Explorer
(Version 6 und 7)
Firefox 1.5 Opera 8.52

Alle 3 Darstellungen sind sicher akzeptabel und geben die gewollte Gliederung gut wieder. Ich würde dennoch jene des Firefox bevorzugen. Sie ist optisch ein wenig gefälliger und wohl auch logisch am korrektesten. Der IE zieht das Bild vor den Aufzählungspunkt, obwohl es innerhalb des List-Items notiert ist. Opera lässt bei diesem einen Eintrag das Gliederungszeichen ganz weg. Man mag streiten, ob dies alles noch innerhalb der Gestaltungstoleranz eines Browsers liegt, oder aber einen "Bug" darstellt…
Allerdings zeigen auch die Browser-Entwickler, dass sie lernfähig sind: In Opera 9 entspricht die Darstellung jetzt jener des Internet Explorers (… dann hätten sie es auch gleich richtig machen können).

Ähnlich erging es mir als ich mich entschloss, alle Seiten mit einem dezenten Rahmen zu umgeben. Über das zentrale Stylesheet und eine Border-Definition für den body sollte das problemlos möglich sein. Das war es auch, lediglich die Gecko-Browser (Firefox und Opera) tanzten bei einer einzigen Seite aus der Reihe. Es handelte sich um die Übersicht der Spielerporträts. Diese Seite bestand damals aus drei jeweils links-floatenden div-Containern. Dadurch wurde ein korrektes dreispaltiges Layout erzeugt. Der Internet Explorer hatte auch kein Problem damit, hier einen Rahmen zu zeichnen. Die beiden anderen Browser beendeten den Rahmen aber schon vor dem ersten floatenden DIV-Container, obwohl natürlich ein Ende des body hier nicht gegeben war. Die folgenden Bilder zeigen den Effekt in zwei verschiedenen Browsern. In diesen Bildern wurde der Rahmen zur Verdeutlichung breiter gewählt.

Bild Bild Bild
Internet Explorer 7
oberer Rand
Internet Explorer 7
korrekter unterer Rand
Firefox 2.0 und Opera 9.2
Die Umrandung endet mitten in der Seite
am ersten floatenden DIV.

So blieb mir nur, das dreispaltige Layout hier durch eine Tabellenkonstruktion abzubilden – nicht schön, aber sicher akzeptabel. Dann haben alle gängigen Browser auch kein Problem mit dem Rahmen.

Features, die nur von einem Teil der Browser unterstützt werden, kann ich nur einsetzen, wenn sie für das Funktionieren der Webseite nicht essentiell sind. Vor allem die CSS-Unterstützung ist nicht bei allen Browsern so gegeben, wie man sich das wünscht. Dennoch konnte ich nicht widerstehen, bei der Formatierung der Navigations-Buttons den Child-Selektor anzuwenden, der vom Internet Explorer erst ab Version 7 erkannt wird. Außerdem spendierte ich diesen Buttons abgrundete Ecken – ein Vorgriff auf CSS-3, welches bisher nur Mozilla-basierte Browser (also z. B. der Firefox) interpretieren können.

JavaScript

Der Einsatz von JavaScript zur Seitengestaltung wird oft als Sicherheitsrisiko gesehen. Deshalb stellen manche sehr vorsichtigen Menschen ihre Browser so ein, dass sie prinzipiell keine JavaScript-Anweisungen ausführen. Wer sich etwas besser auskennt, definiert eine Gruppe von Webseiten als "vertrauenswürdig" und lässt auf diesen Seiten die JavaScript-Ausführung zu. Die Herderschach-Seite sollte zu diesem Bereich vertrauenswürdiger Seiten gehören.
Lange Zeit kam JavaScript auf unserer Seite nur in 3 Zusammenhängen vor:

Noch mehr JavaScript

Je mehr ich mich mit JavaScript beschäftigte, um so mehr faszinierte mich die Möglichkeit, dem Leser unserer Seiten auch echten Mehrwert durch JavaScript anzubieten. Im History-Bereich befand sich nämlich eine Tabelle aller in den Schulschach-Teams eingesetzten Spieler mit ihren Bilanzen. Mir schwebte die Möglichkeit vor, dem Besucher eine Möglichkeit anzubieten, diese Tabelle (und eine weitere mit den Medaillengewinnern) interaktiv nach jeder beliebigen Spalte (z. B. nach der Anzahl der Siege oder der prozentualen Ausbeute) zu sortieren.
Im Projekt "SELFHTML" fand ich ein grobes Gerüst für eine solche Idee. Obwohl es noch einen interessanten Bug enthielt, war dies ein guter Ausgangspunkt für tieferes Eindringen in die JS-Welt. Ich konnte den Bug beseitigen und einige weitere Verfeinerungen vornehmen (z. B. die Sortierung nach einer nicht angezeigten Spalte und das programmierte Berechnen einzelner Werte) und nach einer durcharbeiteten Nacht und einem kurzen Gedankenaustausch mit Web-Guru Stefan Münz (Danke!) war eine vorzeigbare Lösung entstanden, die man im History-Bereich dieser Homepage sehen kann. Für Benutzer ohne JavaScript gibt es eine statische Tabelle – alle anderen erhalten das interaktive Angebot.
Ich habe nebenbei viel über JavaScript gelernt und denke, dass sein Einsatz in diesem Fall mehr gerechtfertigt ist, als bei optischen Effekten und Menü-Spielereien.

Organisation der Arbeit

Thomas Binder, letzte Änderung im Mai 2007 – Der Artikel wird bei Gelegenheit ergänzt.