# JSF-Navigationsmenü



## eSK (30. Apr 2008)

Hallo Leute,

ich habe vor kurzem mit JSF angefangen und auch schon einige (kleinere) Dinge realisiert (z.B. Authentifizierung und Facelets). Jetzt wollte ich den nächsten Teil angehen: Das Navigationsmenü. Leider habe ich noch absolut keine (saubere) Idee, wie ich das realisieren soll. Könnt ihr mir da Tipps oder vielleicht sogar Beispiele geben, wo ihr das unterbringen würdet?

Ich denke da an ein "Aufklappmenü" (also eine Haupt- und eine Unterebene). Gibt es sowas vielleicht sogar schon fertig zum anpassen (man muss das Rad ja nicht neu erfinden)?

Vielen Dank im Voraus!


----------



## number8 (30. Apr 2008)

Gibt es sowas nicht u.a. in der Tomahawk Bibliothek? Nennt sich jsCookMenu.


----------



## eSK (30. Apr 2008)

> Renders a Javascript Menu



Damit kann ich´s leider nicht verwenden, meine Anwendungen müssen der BITV entsprechen...


----------



## maki (30. Apr 2008)

Was BITV mit JavaScript zu tun?

Kenne keine Menu  Bibl. die keine JS nutzt.


----------



## Prismapanda (30. Apr 2008)

nimm aus dem Tomahawk Projekt die t:navigation2 Komponente (wird auch schön mit Listenelementen gerendert).
Aber wenn JS ein Problem ist, ist JSF vielleicht auch gar nicht das richtige für dich...


----------



## eSK (30. Apr 2008)

maki hat gesagt.:
			
		

> Was BITV mit JavaScript zu tun?
> 
> Kenne keine Menu  Bibl. die keine JS nutzt.



Die BITV schreibt vor, dass die Bedienung einer Seite auch mit abgeschaltetem JavaScript möglich sein muss.



und was JSF betrifft: Ich habe noch nicht allzuviele Ausgaben gesehen, bei der man die JS-Ausgaben nicht umgehen könnte 

Vielen Dank für den Tipp, ich schaue mir das mal an.


----------



## maki (30. Apr 2008)

Soweit ich weiss sagt die BITV nichts über die eingesetzten Technologien aus, sondern nur über die Inhalte, hab mich aber noch nicht näher damit beschäftigt.

Bei JSF  rendern sehr viele Komponenten ihr eigenenes JS, ob du da weiterkommst?

Nachtrag: 
Sogar commandButton und commandLink rendern JS: http://wiki.apache.org/myfaces/JavascriptWithJavaServerFaces

Ohne JS kein JSF.


----------



## eSK (30. Apr 2008)

Deshalb nutze ich auch nicht mehr die Sun RI, sondern myFaces, da kann man viel JS abschalten. Öffentlich zugängliche Seiten werden damit auskommen müssen (oder ich muss mir eigene Renderer bauen), der Rest kann ruhig JS beinhalten.

Ein paar Punkte der BITV (nicht abschließend):

Inhalt und Layout sind komplett voneinander getrennt
Die Inhalte sind auch ohne Layout (Stylesheets), ohne JavaScript, in Textbrowsern oder mittels Screenreadern verständlich.
Farben und Kontraste sind für Sehschwache optimiert.
Die Schriftgröße ist frei wählbar (skalierbar).
Seiten- und Spaltenbreite passen sich automatisch an die gewählte Schriftgröße an
Zur eindeutigen Bezeichnung von Links sind zusätzliche Informationen (Link-Title) verfügbar.
Fremdsprachige Begriffe, Abkürzungen und Fachausdrücke sind um eine kurze Erläuterung ergänzt.
Daten-Tabellen sind für den Einsatz von Screenreadern optimiert
Nachtrag: Noch ein paar Anweisungen, die ich im Intranet gefunden habe:

Die vollständige Bedienbarkeit ab einer Bildschirmauflösung von 800 x 600 Pixel ist gewährleistet (mittlerweile auf 1024x768 erhöht)
Frames finden keine Verwendung
Für die Gestaltung und Positionierung von Elementen werden Stylesheets verwendet
Die Webanwendung ist auch ohne Stylesheets nutzbar
Die Markup-Sprache HTML ist korrekt eingesetzt
Beispiele: 
- Zur reinen Texteinrückung werden keine Listen und Listenelemente verwendet
- <H1> bis <H6> werden entsprechend der Seitenstruktur verwendet und NICHT zur Gestaltung eingesetzt
Abkürzungen und fremdsprachige Ausdrücke sind ausgezeichnet (<ACRONYM> bzw. <SPAN lang=...>
Hintergrund und Schrift heben sich kontrastreich voneinander ab 
Eine dem Inhalt angemessene, einfache und klare Sprache wird benutzt
Die Schriftgrößen sind variabel
Für Überschriften werden die Überschriftentags von <H1> bis <H6> benutzt
Es werden keine Unterstreichungen verwendet 
Es sind keine animierten Grafiken vorhanden
Grafiken sind mit aussagekräftigen Alternativtexten beschrieben (Ausnahme: Grafiken ohne informative Funktionen, z.B. Abstandshalter, Farbflächen)
Mit Farbe dargestellte Informationen sind auch ohne Farbe nutzbar bzw. stützen sich nicht ausschließlich auf Farbangaben (z.B. „der rot eingerahmte Kasten enthält Infos ..“)
Problematische Farbkombinationen (z.B. rot/grün, blau/gelb, zyan/weiss, blau/violett) werden vermieden
Grafische Bedienelemente sind mit aussagekräftigen Alternativtexten versehen, die auch das Ziel des Links bezeichnen
Orientierungshilfen zur allgem. Anordnung und Konzeption sind vorhanden (z.B. Inhaltsverzeichniss, Sitemap)
Das Ziel von Hyperlinks ist eindeutig identifizierbar (z.B. keine Verwendung allgemeiner Textlinks wie "mehr...", "weitere Informationen" etc.)
Bei Links auf nicht-HTML-Seiten (z.B. PDF) ist erkennbar, dass sich andere Programme öffnen.
Linkziele, die nicht im gleichen Browser öffnen, werden durch informative <title>-Attribute klargestellt (z.B. Link öffnet PDF-Datei in neuem Fenster) (grundsätzlich gilt es, neue Fenster zu vermeiden!)
Das Angebot ist auch ohne Maus, also nur mit der Tastatur bedienbar
Auf automatische Popup-Fenster wird verzichtet, das Öffnen neuer Fenster erfolgt mit Ankündigung
Es werden keine verschachtelten Tabellen verwendet
Bei Datentabellen sind Zeilen- und Spaltenüberschriften gekennzeichnet; zur Kennzeichnung werden <TD> für Datenzellen und <TH> für Überschriften verwendet 
Formularfelder sind durch das Element <FIELDSET> gruppiert und damit in logische Blöcke eingeteilt.
Die jeweilige Gruppe wird benannt durch den Einsatz des <LEGEND> - Elements
Angebotene Dokumente / Downloads entsprechen ebenfalls den Anforderungen der BITV (Bsp.: "tagged PDF")
Webseiten sind auch verwendbar, wenn clientseitige Scripte, Applets oder programmierte Objekte im Browser abgeschaltet sind oder der Browser sie nicht unterstützt.
Es sind keine flackernden, blinkenden oder sich bewegende Elemente (z.B. Laufschriften) vorhanden


----------



## maki (30. Apr 2008)

Ok, danke... 

zum Glück ist die BITV bei uns in keinster Weise relevant, und ich bin froh darüber, nachdem ich einen Eindruck davon hatte.

Kennst du Seiten im Internet welche BITV umgesetzt haben? Würde mir so etwas gerne mal live ansehen.


----------



## eSK (30. Apr 2008)

Die BITV wird derzeit (gottseidank) wieder überarbeitet (oder zumindest ist das geplant). An sich finde ich sie nicht schlecht, viele Sachen erfüllt man durch Standardeinhaltung und gesunden Menschenverstand, ein paar Dinge sind zwar mühsam aber dennoch lohnenswert. Das einzige, was mich stört, ist das "Verbot" von JavaScript. Schließlich ist JavaScript kein Buch mit sieben Siegeln bzw. ein geschlossenes System so wie Flash (dessen "Verbot" durchaus Sinn macht) - und das Screenreader das nicht lesen können, selbst wenn man es ordentlich macht, ist für mich kein Argument.. dann sollen die Hersteller es gefälligst einbauen. Mit derselben Argumentation hätte man ja auch HTML verbieten können...

Mal sehen, was das "Review" bringt.

Richtig umgesetzt hat es leider niemand (glaube ich), das liegt aber auch an der Masse der Bestimmungen... gut dabei ist allerdings http://www.einfach-fuer-alle.de

Zum Testen: www.erigami.com/bitv.html


----------



## maki (30. Apr 2008)

Danke,

mit JS sieht die erste Seite ganz passabel aus, der zweite erinnert mich an das Web der  90'er Jahre.

Aber wie will man "Web 2.0" (=AJAX) ohne JS umsetzen?

Eine Überarbeitung ist dringend nötig imho, ist anscheinend von sehr IT-fremden Leuten aufgestellt worden, JS ist sogar erlaubt wenn es um das switchen von CSS Styles geht...

Naja, soweit ich kann, werde ich mich davon fernhalten


----------



## eSK (30. Apr 2008)

Naja Web 2.0 ist nur ein Buzzword, das hat mit AJAX erstmal nichts zutun - die beiden "Begriffe" sind nur gleichzeitig populär geworden.

... aber ich bin auch für eine Erlaubnis von JS, auch wenn es doof klingt, aber das gehört nunmal zum Fortschritt und dann sollen sich die Screenreaderhersteller auch daran halten und mit "fortschreiten".


----------

