Warum tut `ul` haben ARIA-Rolle `Menü` sondern `menuitem` ist verboten, `li`?
Nur bedeckt, einige strage Spezifikationen in Bezug auf ARIA-Rollen. Warum ul
haben ARIA-Rolle menu
aber menuitem
ist verboten, für die li
?
Möchte ich beschreiben, eine Navigationsleiste mit ul
, li
- und HTML5 - nav
- element in Kombination mit der ARIA-Rollen navigation
, menu
und menuitem
.
<!DOCTYPE html>
<html>
<head><title>ARIA role bug?</title></head>
<body>
<nav role="navigation">
<ul role="menu">
<li role="menuitem"><a href="http://example.com/">example.com</a></li>
</ul>
</nav>
</body>
</html>
W3-HTML5-validator nag ich hier:
Schlechter Wert menuitem für das Attribut role des Elementes li.
- Ich habe im folgenden beantwortet, aber würde auch sagen, dass wenn die navigation besteht aus nur links auf, die auf einer web-Seite und nicht die Interaktion Verhalten im Zusammenhang mit einem Menü und Menü-Elemente sind dann die ARIA-Rollen sollten nicht verwendet werden.Finden Sie das Menü design-pattern für mehr details w3.org/WAI/PF/aria-practices/#menu
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jukka ist falsch hier. Die W3C-validator nicht check gegen die WHATWG LS, stattdessen prüft es gegen die W3C-HTML-Spezifikation. Der W3C-HTML-Spezifikation ist die maßgebliche Quelle für die Konformität Prüfung von Anforderungen für die den W3C-Validator.
In Bezug auf
menuitem
nicht erlaubt wird, gemäß der HTML-Spezifikation, ich glaube das ist ein bug. Und als solche habe ich eingereicht ein bug. Es ist jetzt in meiner bug-Warteschlange gelöst werden.Ich eingereicht haben, einen Fehler gegen die W3C-validator und wai-aria in HTML doc als auch.
Bis zu solchen Zeiten der validator behoben ist, schlage ich vor, Sie die Rollen gemäß den WAI-ARIA-Spezifikation und ignorieren, der validator.
Nachtrag:
Ich blickte zurück auf die Geschichte von ARIA-integration in HTML nicht finden konnte, einen Grund, warum
menuitem
war nicht erlaubt, so glauben Sie, es war ein versehen. Ich gefixt und behoben den Fehler, den ich oben verwiesen.Den folgenden HTML-markup ist in der ARIA-Spezifikation (die, die Sie verbunden), und zeigt deutlich eine
LI
(verschachtelte, auch) als ein menuitem. Ich vermute das insbesondere markup-Code, den Sie verwenden, sodass es nicht konform, aber das ist nur eine Vermutung.Den W3C-validator, die bei der Anwendung HTML5-Regeln, die eigentlich die Kontrollen gegen (eine version von) der WHATWG "Living-HTML-standard", die derzeit sagt, Ziffer 3.2.7 WAI-ARIA, über "li-element, dessen Mutterunternehmen ist ein ol-oder ul-element" Folgendes: "die Rolle muss entweder listitem, menuitemcheckbox, menuitemradio, option, Reiter oder treeitem".
Dies entspricht den Regeln in der "Using WAI-ARIA in HTML" W3C-Entwurf, in 2,9 Empfehlungen Tabelle.
Passed, 1 warning(s)
die Warnung ist, denn dies ist ein Entwurf - Spezifikation, wie gesagt:Using experimental feature: HTML5 Conformance Checker.
War ich mit einer ähnlichen DOM und ändern
li
Untermenü auf die Rolle Präsentation gemacht, die Seite zu validieren. Obwohl vielleicht semantisch falsch, in meiner situation, es ist belanglos.Sollten Sie nicht setzen role="menuitem" auf eine li-element, wenn es enthält eine ein element da ein menuitem-widgets enthalten, nicht intereactive Elemente (e.g links).
Werfen Sie einen Blick auf die aria-Praktiken Beispiele für Menü.
oder