为什么`ul`有ARIA角色`menu`但``menuitem`是禁止`li`?

bur*_*rsk 17 html html5 accessibility wai-aria

刚刚介绍了一些关于ARIA角色的策略规范.为什么ul有ARIA角色menu但是menuitem被禁止li

我想描述一个导航栏使用ul,li和HTML5的nav元素结合ARIA角色navigation,menumenuitem.

<!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>
Run Code Online (Sandbox Code Playgroud)

W3的HTML5验证器在这里唠叨我:

元素li上属性角色的错误值menuitem.

Ste*_*ner 20

Jukka 在这里不正确.在W3C验证不检查对WHATWG LS,相反,它会检查对W3C HTML规范.W3C HTML规范是W3C Validator一致性检查要求的权威来源.

关于menuitem不允许按照HTML规范,我相信这是一个错误.因此我提交了一个错误.它现在在我的bug队列中得到解决.

我已经在HTML doc中提交了针对W3C验证器wai-aria的错误.在确定验证器的时间之前,我建议您根据WAI-ARIA规范使用角色并忽略验证器.

附录:

我回顾过ARIA集成到HTML中的历史,找不到任何理由menuitem不被允许,所以相信这是一个疏忽.我修复并解决了上面提到的错误.

  • 我们真的需要在<li>元素上指定role ="menuitem",超出<ul role ="menu">吗?它非常冗长,似乎是现有<li>语义的冗余. (2认同)