tl;dr: Lies dir sowas wie
http://little-boxes.de/little-boxes-teil1-online.html durch, dann dürfte sehr schnell klar werden, was wie funktioniert.
Wustersoss schrieb:
Dem Browser ist das Schnuppe, der lädt den HTML-Code und danach das Stylesheet und wendet die Angaben des Stylesheets auf die Elemente an.
Bei Elementen wie img oder a nutzt der Browser nicht lediglich CSS, sondern auch sein eingebautes semantisches Verständnis von HTML. Allein mit CSS kannst du ein Element nicht dazu bringen, dass es als Bild gerendert wird (Eigenschaft background-image zählt nicht) oder als Verlinkung. Es gibt sicher noch wesentlich mehr Beispiel dafür.
Du kannst also wenn es dir gefällt das Address-Element nehmen und bestimmen das es nun als Überschrift dienen soll.
Das ist aber eigentlich die falsche Vorstellung, denn genau das kannst du
nicht. (Ich kann mir aber natürlich denken, wie du das meinst.) Du kannst erreichen, dass ein address-Element in Schriftgröße 20 pt und fett dargestellt wird, aber das macht es nicht zu einer Überschrift, sondern nur zu einer eigenartig formatierten Adresse. Dass das Element aussieht wie Überschriften normalerweise aussehen, spielt absolut keine Rolle.
Das ist wie mit Formatvorlagen in einer Textverarbeitung. Wenn du dort etwa automatisch ein Inhaltsverzeichnis generieren lassen willst, wird die Textverarbeitung dort nur diejenigen Abschnitte einfügen, die mit „Überschrift“-Formatvorlagen (dem Attribut
istÜberschrift) markiert sind. Da ist es völlig egal, ob die in Arial, 20 pt, fett formatiert sind oder in Comic Sans, 6 pt, froschgrün.
Vielleicht ein hanebüchenes Beispiel aus dem Alltag: Es gibt einen Polizisten und einen Feuerwehrmann. Semantisch betrachtet hat der Polizist das Attribut
istPolizist, der Feuerwehrmann das Attribut
istFeuerwehrmann. Jetzt tauschen sie die Uniformen (die visuelle Darstellung). Das ändert nichts daran, dass der Polizist nach wie vor das Attribut
istPolizist besitzt und der Feuerwehrmann
istFeuerwehrmann. Ihre Bedeutung ist nicht von der Präsentation abhängig.
HTML-Elemente (h1, h2, p, …) dienen dazu, dem jeweiligen Inhalt solche
istXyz-Attribute zuzuweisen.
Wenn jetzt eine Suchmaschine oder ein anderer auslesender Client (etwa ein Tool, das aus den Überschriften ein Inhaltsverzeichnis erstellen möchte) daherkommt und entscheiden möchte, was in einem HTML-Dokument was ist, tut er das nicht anhand der Formatierung (also des Aussehens), sondern einzig über diese Attribute.
Computeralgorithmen können bei sowas nur nach der Semantik gehen, weil sie zu „dumm“ sind, zu wissen, dass vermutlich der dicke, rote, kurze Text die Überschrift ist und der dünne, kleinere, längere der Fließtext.
Noch ein Beispiel: Wenn du in einem Eingabeformular deinen Vor- und deinen Nachnamen eingeben sollst und die beiden Felder versehentlich vertauschst, heißt du für die Anwendung nicht mehr Thomas Mustermann, sondern Mustermann Thomas. Ein Computer kann prinzipiell nicht auf kreativer Basis entscheiden, dass wohl eher „Mustermann“ der Nachname ist und „Thomas“ der Vorname.
Warum ist das für Seitenbetreiber relevant, wo doch Menschen die Seiten ansehen und keine Computer? Weil es die Computer sind, die das Interface bereitstellen, die den Inhalt also erst mal verarbeiten. Ein Browser könnte etwa bei Rechtsklick auf eine Adresse eine Funktion anbieten, die Adresse automatisch in eine Kontaktliste aufzunehmen. Das kann er aber eben nur dann, wenn du ihm sagst, was eine Adresse ist (address-Element). Die Beispiele sind endlos.
Relevant wird das auch dann, wenn du bedenkst, dass nicht jeder Client frei definierbare visuelle Formatierungen unterstützt. Ein Client, der Webseiten vorliest, kann beispielsweise nur dann sagen „Hier kommt eine Überschrift, sie lautet ‚Semantik ist toll‘. Weiter vorlesen oder zu nächster Überschrift springen?“, wenn er Überschriften semantisch identifizieren kann.
Weitere Vorteile semantischer Auszeichnung hat Wustersoss bereits genannt.
Bubbsi schrieb:
Warum sollte man auf die Lage von Zeilenumbrüchen keinen Einfluss nehmen?
Das ist, wie wenn du in einer Textverarbeitung an jedem Zeilenende „Enter“ drückst, statt die Anwendung den Umbruch automatisch setzen zu lassen. Falls du das machst, hör damit auf. Dir verspringt so nur alles, wenn du die Seitenränder anpasst oder nachträglich Inhalt hinzufügst.
Wir leben nicht mehr im Zeitalter der Schreibmaschine. :)