17

ARIA ロールに関するいくつかのストレージ仕様をカバーしました。ARIA の役割を持っているのに禁止されているのはなぜですか?ulmenumenuitemli

ulliおよび HTML5 の要素を ARIA のロール、および とnav組み合わせて使用​​するナビゲーション バーについて説明したいと思います。navigationmenumenuitem

<!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 バリデータは、ここで私を悩ませます:

要素 li の属性 role の値 menuitem が正しくありません。

4

5 に答える 5

20

じゅっかはここでは間違っていますW3C バリデーターは、WHATWG LS に対してチェックするのではなく、W3C HTML 仕様に対してチェックします。W3C HTML 仕様は、W3C Validator の適合性チェック要件の信頼できるソースです。

HTML 仕様で許可されていないことに関してmenuitemは、これはバグだと思います。そのため、バグを報告しました。現在、解決するためにバグ キューに入っています。

W3C バリデーターwai-ariaに対するバグも HTMLドキュメントに提出しました。バリデーターが修正されるまでは、WAI-ARIA 仕様に従ってロールを使用し、バリデーターを無視することをお勧めします。

補遺:

ARIA の HTML への統合の歴史を振り返ってみると、許可されなかった理由menuitemが見つからなかったので、見落としだったと思います。上記のバグを修正して解決しました。

于 2013-05-26T13:34:49.157 に答える
3

次の HTML マークアップは、ARIA 仕様自体 (リンクしたもの) にあり、LI(ネストされた、偶数の) メニュー項目として使用されていることを明確に示しています。あなたが使用している特定のマークアップがそれを不適合に強制していると推測していますが、それはただの予感です。

<ul role="menubar">

 <!-- Rule 2A: "File" label via aria-labelledby -->
  <li role="menuitem" aria-haspopup="true" aria-labelledby="fileLabel"><span id="fileLabel">File</span>
    <ul role="menu">

      <!-- Rule 2C: "New" label via Namefrom:contents -->
      <li role="menuitem">New</li>
      <li role="menuitem">Open…&lt;/li>
      …
    </ul>
  </li>
  …
</ul>
于 2013-05-25T18:08:45.173 に答える
0

W3C バリデーターは、HTML5 ルールを適用する際に、WHATWG の「Living HTML standard」(の一部のバージョン) に対して実際にチェックします。これは現在、3.2.7 WAI-ARIA節で、「親が ol または ul 要素である li 要素」について述べています。 」 以下: 「役割は、listitem、menuitemcheckbox、menuitemradio、option、tab、または treeitem のいずれかでなければなりません」.

これは、「Using WAI-ARIA in HTML」W3C ドラフトの 2.9 Recommendations Tableのルールに対応しています。

于 2013-05-25T21:21:27.760 に答える
0

私は同様のDOMを使用していましたが、liサブメニューの役割をプレゼンテーションに変更すると、ページが検証されました。おそらく意味的には正しくありませんが、私の状況では重要ではありません。

于 2013-05-27T05:56:52.137 に答える