Hallo, Michael,
Ich verwende für so etwas immer
<h1 style="display:none">
ah - Suchmaschinen-Spamming!
Aus dem Zusammenhang kürzen gilt nicht. :) Außerdem verwende ich es nicht so wie im Beispiel, das war nur das Beispiel für Chräckers Seiten.
Ich möchte die WCAG-AAA-Konformität schaffen, deswegen möchte ich Text und nicht nur eine Grafik (wenn auch mit alt-Attribut) im h1-Element haben. Es hat ganz praktische Gründe, Google dürfte den alt-Text wie normalen Text werten, weshalb nicht (nur) Google der Grund des Versteckens ist - denn wieso sollte ich eine sinnvolle Überschrift, über welche ich auch gefunden werden will, verstecken? Ich preise meine Seite doch nicht mit etwas an, was sie nicht enthält.
Bsp. http://home.t-online.de/home/dj5nu/sterne.html:
<h1><img ... alt="[Die Sterne-Logo]" title="Die Sterne-Logo" /><span class="inv"><br />Die Sterne</span></h1>
mit .inv {display:none;}.
(Dabei fällt mir ein, ich könnte das Logo auf die Startseite verlinken. Von wegen intuitive Bedienung und so.)
Weiterhin lege ich die Struktur meiner Seiten (bzw. dieser Seite) so an, dass die h1-Elemente eines Seitenzusammenhangs immer gleich sind (in dem Falle: "Die Sterne"), auch kommt auf dieser Seite das h2-Element nur einmal vor, diese beinhaltet dann den Unterrubriknamen:
<title>Die Sterne auf Molilys Homepage / Aktuelles</title>
<h1>[Bild alt="Logo"] Die Sterne</h1>
<h2>Aktuelles</h2>
(<h3>...</h3>)+
Natürlich kalkuliere ich, dass die Suchwörter im h1-Element stecken, aber es ist mehr oder weniger eine davon unabhängige Überlegung, bei der Sterne-Fanseite das Logo in dem h1-Element unterzubringen. In dciwam war vor einiger Zeit eine Diskussion darüber, wie man intelligent Seitentitel und den Inhalt des h1-Elements wählen sollte, ich bin der Meinung, dass title=h1 sein sollte, weil der Seitentitel von den Benutzern nicht wirklich registriert wird.
Nun ist es bei der Sterne-Seite noch anders, es wäre sinnfrei, den Seitentitel "Die Sterne auf Molilys Homepage" sichtbar zu machen (<h1>Die Sterne auf Molilys Gomepage - Aktuelles</h1>), da es ein Logo mit selbiger Bedeutung gibt. Da ich aber nicht mit <h1>Aktuelles</h1> anfangen kann, habe ich die umständlichere Variante gewählt, damit die Seite zugänglich und strukturiert zugleich ist. Im Übrigen ist die Reihenfolge folgende:
<h1>Die Sterne</h1>
[Navigation]
[Inhaltsverzeichnis]
<h2>Aktuelles</h2>
Dies ist eine Kompromisslösung, da das Inhaltsverzeichnis unter der voll skalierbaren Navigation hängt. Eigentlich plädiere ich immer für
<h1>Die Sterne</h1>
[Navigation]
<h2>Aktuelles</h2>
[Inhaltsverzeichnis]
oder allgemein für
<h1>Die Sterne - Aktuelles</h1>
[Navigation]
[Inhaltsverzeichnis]
Ich verstecke also keine Überschriften um sie zu verstecken, sondern um sie sichtbar zu machen. Wenn du verstehst, was ich meine. ;) Wenn jemand nach "sterne" und "tourtermine" sucht, ist es für mich nur ein Nachteil, dass dieses wichtige spezielle Keyword erst im h2-Element steht, also ist meine Lösung sicherlich nicht für Google optimiert. Das liegt auch daran, dass man zu "Sterne" oder "Die Sterne" tausende Seiten findet, welche nichts mit der Musikgruppe zu tun haben.
Ich meinte auch nur, Chräcker sollte unsichtbare Überschriften einfügen, weil seine Seiten gar keine Struktur haben.
Wenn du die WCAG ungefähr kennst, weiß du, dass man Trennzeichen zwischen Links setzen sollte, damit sie Screen Reader und Braille Displays voneinander unterscheiden (AFAIR). Deshalb benutze ich unsichtbare Elemente sehr oft, damit die Links der Navigation auch ohne Stylesheets voneinandern getrennt sind.
Du kannst ja mal die Styles bei obiger Seite ausschalten und siehst dann, dass die CSS-lose Seite dennoch eine zugängliche Navigation hat (wobei das Inhaltsverzeichnis einen Fehler hat, zwischen den Links sind keine Trennzeichen, muss ich noch ändern).
Also wenn ich ein Crawler wäre, dann würde ich mir da so meine Gedanken machen ...
Zum einen glaube ich nicht, dass ein Suchmaschinenbot CSS ausliest. Er müsste alle CSS-Selektoren, class, id und style kennen, müsste externe Formatvorlagen crawlen und auswerten. Er müsste mehr als nur display und visibility überprüfen, es könnte ja auch einfach ein Element über der Überschrift liegen, oder color=background-color, oder, oder, oder... an DHTML noch gar nicht gedacht.
Es gibt, wie ich beschrieben habe, dutzende sinnvolle Möglichkeiten für display. Kein Crawler kann mit einfachen Mitteln zwischen Spamming und legitimem Gebrauch differenzieren.
Ein simples <h1 style="display:none"> ist natürlich verdächtig, aber vielleicht handelt es sich um media="print" und der Autor will aus irgendeinem Grund, dass der Elementinhalt nicht gedruckt wird... bspw. weil er schon im title-Element und somit meist im Seitenkopf genannt wird - das nur als weiteres Beispiel. Bei mir ist es auch der Unterschied zwischen verschiedenen Darstellungstechniken.
Grüße,
Mathias