• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Navigation ausklappbarer Teil

Eine optische Verschiebung ins Nirvana spielt für Screenreader dagegen keine Rolle. Das Menü lässt sich immer durchtabben (auch ohne title).

genau. Deshalb werden die Submenüs auch praktischerweise z.B. mit position:absolute; und left:-9999px aus dem Viewport geschoben.
Dem Screenreader ist das wurscht, er liest in diesem Falle selbstverständlich vor.

Das Gleiche gilt für Skiplinks inkl. Skiplinktabs oben und unten auf der Seite, die auf die Art ausgeblendet und für die Durchtabber auch wieder eingeblendet werden.
Es wird vorgelesen. :D
 
Sach mal willst du mich für blöd verkaufen?
Die Untermenüpunkte können nicht angeklickt werden, weil sie nicht vorgelesen werden.
Bei display:none; existieren die Untermenüpunkte für den Screenreader nicht.

Das funktioniert nur wenn der Hauptmenüpunkt beim Anklicken zu einer sogenannten Brückenseite führt, wo die Untermenüpunkte noch mal alle aufgeführt sind.
Genau das ist die Vorgehensweise bei meinem Vorschlag.
 
oh mann _Thor_, du hast immer recht, oder?
Um jeden Preis, auch wenn du mal nicht recht hast. :lol:
Wenn du das so siehst, bitte.

Was spricht denn ausserdem gegen folgenden Titel, für die Screenreader, die den Inhalt bei vorhandenem Titel nicht mehr anzeigen?
HTML:
<a href="" title="Übersichtsseite mit Untermenüs des Punktes xyz"></a>
Vielleicht noch etwas anders formuliert, aber damit sollte jeder wissen was gemeint ist.
 
Wenn du es geschickt anstellst, ist das Menü auch ohne Javascript voll nutzbar. :) Zum Beispiel, indem du die eingeklappten Elemente zunächst voll sichtbar definierst und erst mit Hilfe von Javascript versteckst. Sollte jemand Javascript ausgeschaltet haben, so sind die Element eben sofort sichtbar. Per Tastatur lässt sich das Menü dann auch wunderbar bedienen.
Zu onclick: Du kannst einem Link trotzdem eine URL zuweisen und diese per Javascript sperren, damit stattdessen das Untermenü aufgeklappt wird.

Ich bin der Ansicht, dass das die Usability mehr steigert, als die gesamte Seite jedes Mal zwecks Aus- und Einklappen vollständig neu zu laden.

Zu deiner Frage:
Wozu baust du Divs ein? Gib doch einfach der Liste eine id.
Die Funktion, den Text anzupassen, brauchst du wahrscheinlich auch nicht.

HTML:
<script language="javascript">
function ausfahren(x) 
{
  if(document.getElementById(x).style.display == 'none')
  {
    document.getElementById(x).style.display="";
  }
  else
  {
    document.getElementById(x).style.display = 'none';
  }
}
</script>
HTML:
<ul class="list">
  <li><a href="index.html" class="act">Home</a></li>
  <li><a href="ueberuns.html">&Uuml;ber Uns</a></li>
  <li><a href="kontakt.php">Kontakt</a></li>
 <li>

<a href="STANDARDSEITE.html" onClick="ausfahren('menu');return false;">Dienstleistungen</a>

<ul id="menu">
<li>
</li>
<span><a href="privatkunden.html"> Privatkunden </a></span>
<li>
</li>
<span><a href="geschaeftskunden.html"> Geschäftskunden </a> </span>
</ul>
</li>


  <li><a href="referenzen.html">Referenzen</a></li>
  <li><a href="anfahrt.html">Anfahrt</a></li>
  <li class="last"><a href="impressum.html">Impressum</a></li>
</ul>
Hier auch ein Beispiel, wie man Links per JS deaktivieren kann (return: false; ). STANDARDSEITE.html wird nur beim draufklicken aufgerufen, wenn JS ausgeschaltet ist.
Um das Problem mit ausgeschaltetem JS, das Thor angesprochen hat, zu umgehen, rufst du per onload="" im body-Tag eine Funktion auf, die alle Ausklapplisten versteckt.

HTML:
<body onload="versteckeListen();">

<script type="text/javascript">
function versteckeListen()
{
   document.getElementById("menu").style.display = 'none';
}
</script>

Danke das hat geklappt.

Wie schaffe ich es jetzt noch, dass die Punkte von Anfang an ausgeblendet werden?
Wenn ich die Seite öffne sind diese nämlich direkt ausgeklappt und lassen sich per Klick einklappen.
Sie sollen aber erst eingeklappt sein.


Danke shconmal an alle hier ;)
 
Zurück
Oben