Die Tabelle im Texteditor

A B C
Stadt Addis Abeba Berlin Canberra
Land Bhutan Costa Rica
Fluss Amazonas Brahmaputra Colorado

Auf dieser Seite möchte ich von der Tabelle erzählen, von ihrer Struktur und davon, wie sie auf die Welt kommt. Die Heldin der Geschichte spielt die Tabelle dort oben. Eigentlich geht es aber nicht um genau jene Tabelle, sicher nicht um Addis Abeba oder Bhutan. Es geht um Tabellen im Allgemeinen und ihre Genese im einfachen Texteditor.

Was ist ein Texteditor?

Ein Texteditor ist ein Computerprogramm zum Bearbeiten von Text, sagt Wikipedia. Gemeint sind aber keine Programme zur Textverarbeitung wie Microsoft Words, LibreOffice Writer oder Pages für den Mac. In einem einfachen Texteditor arbeitet man nicht mit Schriftgrößen, Schriftarten oder Farben; es gibt keinen Blocksatz und auch keine Tabellenfunktion.

Ein Texteditor ähnelt einer Schreibmaschine – man arbeitet mit rohem Text: Buchstaben, Zahlen, Sonderzeichen; von links nach rechts, Zeile für Zeile. Anders als bei klassischen Schreibmaschinen kann man allerdings ändern, was man geschrieben hat. Wer einmal eine SMS tippte, benutzte einen Texteditor. Notepad ist durch seine Verbreitung mit Windows ein weit bekannter (wenn auch ärmlicher) Texteditor.

Es heißt, alle Programme und Daten im Rechner bestünden aus Nullen und Einsen. Im Computer werden Informationen tatsächlich in Form von Bits, kleinsten Informationseinheiten mit zwei möglichen Zuständen, verarbeitet und gespeichert. Doch nur wenige Leute basteln auf jener Bitebene. Zwischen der Bitebene und allem, was Du auf dem Bildschirm siehst, liegen mehrere Verarbeitungsstufen. Oft ist eine oder sind mehrere davon in Textform verfasst, die man in einem Texteditor lesen und ändern könnte.

E-Mails werden in Textform versendet, Webseiten werden in Textform geladen. In einem Texteditor kann man eine simple Einkaufsliste tippen oder aber Computerprogramme erstellen. Die Grundlagen eines Großteils dessen, was für uns heute Bedeutung hat, werden im Texteditor erschaffen. Mittlerweile kann man selbst Gegenstände in einem Texteditor schreiben und von einem 3D-Drucker ausdrucken lassen.

Weil Text Basis von so vielem ist, sind Texteditoren einfache, aber mächtige Werkzeuge. Und es gibt unzählige von ihnen! Um Text zu verfassen, braucht man kein spezielles Programm einer bestimmten Firma. Im Notfall taugt eben auch eine Schreibmaschine.

Tabelle mit Tastenanschlägen „zeichnen

Ein erster Ansatz ist, Striche und Leerzeichen zwischen den Worten in der Tabelle so anzuordnen, dass im Texteditor ein Abbild der Tabelle entsteht. Eines vorweg: Bei aller oberflächlichen Ähnlichkeit hat dieser Ansatz nichts mit der tatsächlichen Entstehung unserer Protagonistin zu tun.

      | A           | B           | C
------+-------------+-------------+-----------
Stadt | Addis Abeba | Berlin      | Canberra
------+-------------+-------------+-----------
Land  |             | Bhutan      | Costa Rica
------+-------------+-------------+-----------
Fluss | Amazonas    | Brahmaputra | Colorado

Vorteil dieses Ansatzes ist, dass die Tabelle im Texteditor übersichtlich und nahezu genauso aussieht, wie wir sie haben wollen. Das wird allerdings teuer erkauft: Es kostest reichlich Aufwand, bis alle Worte und Striche mithilfe von Leerzeichen passend ausgerichtet sind. Würde man eine klassische Schreibmaschine einsetzen, müsste man die Buchstaben im Vorfeld auszählen und dann gewissenhaft nach Plan tippen.

Auch das nachträgliche Ändern verlangt Arbeit. Wenn wir als Land mit A „Aserbaidschan“ eintragen, passt es nicht in den von Leerzeichen freigehaltenen Raum, sondern schiebt „Bhutan“ und „Costa Rica“ nach rechts. Um das auszugleichen, müssen wir die ganze Spalte A verbreitern, indem wir hinter der Spaltenüberschrift, „Addis Abeba“ und „Amazonas“ jeweils Leerzeichen sowie in die horizontalen Linien zusätzliche Querstriche einfügen.

Was wäre, wenn wir lange Einträge in die Tabellenfelder packen wollten, die nicht sinnvoll in eine Zeile passen? Wir müssten künstlich Zeilenumbrüche in die Texte einfügen, die neue Probleme verursachen, wenn sich die Spaltenbreite wieder ändert. Wir müssten auch irgendwie zwischen diesen zusätzlichen Zeilenumbrüchen und jenen mit inhaltlicher Relevanz, die etwa einen gedanklichen Absatz markieren, unterscheiden können.

Tabelle in (X)HTML

Der zweite Ansatz, die Tabellenstruktur durch HTML- oder XHTML-Tags wie <td> zu realisieren, mag sich optisch sehr vom vorigen Ansatz unterscheiden; konzeptionell überwiegen aber die Gemeinsamkeiten. Die Tabelleneinträge werden beispielsweise in der gleichen Reihenfolge wiedergegeben.

<table>
  <tr>
    <td></td>
    <th>A</th>
    <th>B</th>
    <th>C</th>
  </tr>
  <tr>
    <th>Stadt</th>
    <td>Addis Abeba</td>
    <td>Berlin</td>
    <td>Canberra</td>
  </tr>
  <tr>
    <th>Land</th>
    <td></td>
    <td>Bhutan</td>
    <td>Costa Rica</td>
  </tr>
  <tr>
    <th>Fluss</th>
    <td>Amazonas</td>
    <td>Brahmaputra</td>
    <td>Colorado</td>
  </tr>
</table>

Ein großer Vorteil gegenüber dem ersten Ansatz ist, dass uns das Ausrichten mit Leerzeichen und Strichen erspart wird. (Die Einrückungen habe ich hier nur für ein leichteres Verständnis vorgenommen; man könnte auch auf sie verzichten, weil für die Darstellung allein die Abfolge der Tags und Worte zählt.) Eine HTML-Tabelle zu ändern ist genauso unproblematisch wie lange Einträge in ihre Tabellenfelder zu packen.

Die Übersichtlichkeit leidet allerdings: Wenn wir wissen wollen, zu welcher Spaltenüberschrift „Brahmaputra“ gehört, braucht es Zeit, bis wir das zugehörige Feld <th>B</th> finden. Die Krux mit der HTML-Tabelle ist, dass sie uns einerseits von einer exakten Ausrichtung befreit, die Tabellenfelder ihre Bedeutung prinzipiell aber weiterhin durch ihre Position erhalten. Aus dieser Dualität erwächst Unübersichtlichkeit.

Dass die Position für die Bedeutung maßgeblich ist, erfordert außerdem, dass leere Tabellenfelder vermerkt werden: <td></td>. Ohne sie würde die Zuordnung mancher Felder zu den Spalten nicht mehr stimmen. Andererseits ein Vorteil der auf die Position ausgerichteten Struktur: Man kann durch Angabe zusätzlicher Attribute benachbarte Zellen miteinander verbinden, sodass man „Luxemburg“ nur einmal in ein großes Feld schreiben bräuchte, welches die Zeilen Stadt und Land überspannt.

Das Primat der Position bewirkt auch, dass man mit HTML-Tabellen Inhalte gut anordnen kann, bei denen mit der Position keine Bedeutung, sondern nur eine ästhetische Entscheidung verbunden ist. Tabellen so zur Gestaltung statt zur Vermittlung tabellarischer Daten zu verwenden, widerspricht allerdings dem Zweck von HTML-Tabellen. Im HTML5-Standard steht daher, man solle das nicht tun.

Zum Beispiel für Besucher, die wegen einer Sehbehinderung Vorleseprogramme verwenden, stellen zweckfremd genutzte Tabellen Hürden dar. Dennoch wurde dieser Einsatz von Tabellen einst in manchem HTML-Kurs als Standardlösung fürs Unterteilen von Seiten gelehrt.

Hat die HTML-Tabelle etwas mit unserer Tabelle am Anfang des Artikels zu tun? Ja! Dein Browser hat die Tabelle just in dieser HTML-Form heruntergeladen und daraus dann erstellt, was Du nun oben sehen kannst. Eingegeben und auf den Server hochgeladen habe ich die Tabelle allerdings in einer anderen Form …

Zuordnungsliste mit zwei Schlüsselwörtern

Erst auf dem Server wurde die Tabelle vom Aneamal-HTML-Konverter aus der von mir verfassten Form in die HTML-Variante übersetzt. Ich tippte die Tabelle, wie Aneamal es vorsieht, als Zuordnungsliste mit zwei Schlüsselwörtern je Eintrag:

<Stadt><A> Addis Abeba
<Stadt><B> Berlin
<Stadt><C> Canberra
<Land><B>  Bhutan
<Land><C>  Costa Rica
<Fluss><A> Amazonas
<Fluss><B> Brahmaputra
<Fluss><C> Colorado

In dieser Liste spielt die Reihenfolge der Zeilen quasi keine Rolle. Man könnte sie zufällig durcheinander würfeln, ohne etwas Wesentliches zu ändern. In diesem Sinne ist die Aneamal-Zuordnungsliste sehr robust. Die Bedeutung erschließt sich nicht durch die Position, sondern direkt durch Verbindung eines Eintrages mit seinen Schlüsselwörtern. Das macht die Liste leicht verständlich.

Sparsam ist diese Darstellung bei nicht vollständig ausgefüllten Tabellen: Wir haben kein Land mit A? Dann braucht dafür anders als bei den zuvor betrachteten Ansätzen keine einzige Taste gedrückt zu werden. Die Aneamal-Zuordnungsliste ist außerdem problemlos erweiterbar: Man hängt einen neuen Eintrag mit seinen Schlüsselwörtern einfach ans Ende an oder fügt ihn an anderer Stelle ein.

Die Aneamal-Zuordnungsliste ist noch in einem anderen Sinn erweiterbar: Während wir bislang immer eine zweidimensionale Struktur abbildeten, lässt sich die Zuordnungsliste auch auf höherdimensionale Strukturen anwenden. Statt zweier Schlüsselwörter nimmt man mehrere wie im folgenden Beispiel, in dem Personen nach drei Kriterien eingetragen sind: dem Betätigungsfeld, der Staatsangehörigkeit und ihrem Geschlecht.

<Politik><Deutschland><Frau> Angela Merkel
<Politik><Deutschland><Mann> Cem Özdemir
<Politik><Frankreich><Frau> Ségolène Royal
<Politik><Frankreich><Mann> Nicolas Sarkozy
<Schauspielerei><Deutschland><Frau> Martina Gedeck
<Schauspielerei><Deutschland><Mann> Armin Rohde
<Schauspielerei><Frankreich><Frau> Sophie Marceau
<Schauspielerei><Frankreich><Mann> Jean Reno

Nachteil der Aneamal-Zuordnungsliste in zwei und mehr Dimensionen: Schlüsselwörter werden wiederholt genannt, sodass sich im Vergleich mit durch die Position bestimmten Tabellenvarianten der Schreibaufwand erhöhen kann. Einen Kompromissansatz, der ein wenig von der Robustheit dieser Zuordnungsliste gegen eine Verringerung des Schreibaufwandes eintauscht, zeige ich in den Kleinigkeiten des Monats September.