2016-05-13 16 views
2

Mein Code-Schnipsel ist unter: -Warum kann ich das Attribut role = "navigation" im html nav-Tag nicht verwenden?

<nav role="navigation" data-offset-top="100" data-spy="affix" class="navbar navbar-inverse navbar-fixed-top"> 

Wenn ich diesen Code zu validieren, wird es mir eine Warnung geben, aber der gleiche Code ist auf Bootstrap-Dokumentation zur Verfügung.
Hier ist ein Screenshot - bootstrap navbar code

+2

Wo heißt es, dass Sie nicht können? Ziemlich sicher, dass die Warnung das nicht sagt - deshalb ist es nur eine Warnung. – BoltClock

Antwort

4

<nav role="navigation"> ist redundant, so dass es abgeraten wird. Während der Übergangsperioden für einige Elemente wird empfohlen, das Attribut [role] zusätzlich zum neuen Tag zu verwenden, jedoch nur so lange, bis Browser die implizite Semantik für das neue Tag unterstützen.

Dies ist häufiger mit <main role="main"> gesehen, die eine spätere Ergänzung zu HTML war.


Am Ende der w3c validator sagt man nicht nicht die redundante Markup verwenden können, es warnt Sie nur, dass es überflüssig und unnötig ist.

Zum Beispiel Validierung:

<!doctype html> 
<title>example</title> 
<nav role="navigation"></nav> 

Erzeugt die folgende Warnung:

Warnung: Element nav keine Rolle Attribut benötigt.

Wenn es ungültige Markup wäre, würden Sie eine Fehlermeldung erhalten.

+0

Danke für Hilfe. Ich schätze es sehr. –

0

Da role = "navigation" optional ist und nur für Benutzeragenten, die ARIA unterstützen.

In diesem Beispiel enthält die Seite einen oberen Navigationsbereich, der nicht die ARIA-Rolle der Navigation verwendet, und eine Navigation am unteren Rand der Seite, die dies tut. Die Rolle der Navigation wird ab September 2014 empfohlen, aber zu einem späteren Zeitpunkt möglicherweise nicht erforderlich.

Beispiel: https://awkawk.github.io/using_nav.html

+0

fasse bitte das Beispiel in deiner Antwort zusammen –

+0

@ noam-hacker OK, getan – RobertoB

+0

Danke für Hilfe –