1

ページ固有のナビゲーションメニューであるこのメインヘッダー要素があります。ご覧のとおり、h1要素はへのリンクです(メニューはページの上部に固定され、残りはスクロールダウンします)。html <header role = "menubar"> w3バリデーターで検証しない

例:w3 validator

<header role="menubar"> 
    <a href="#top"> 
     <h1>Main Title</h1> 
    </a> 
    <ul role="menu"> 
     <li role="menuitem"> 
      <a href="#presentation">presentation</a> 
     </li> 
     <li role="menuitem"> 
      <a href="#picture">picture</a> 
     </li> 
     <li role="menuitem"> 
      <a href="#downloads">downloads</a> 
     </li> 
    </ul> 
</header> 

私がメッセージとして取得:

Error: Bad value menubar for attribute role on element header.

ヘッダ要素の許容ARIAロールがあるW3 recommendation page for single pagesに私を参照:

banner role (default - do not set) or presentation.

「デフォルト - 設定されていないが本当にオプションではありません、それは理由ヘッダ要素

「バナー」と「プレゼンテーション」の下位互換性ではないであろうと、正しい役割は(bannerpresentationを参照してくださいされていません)

だから私の質問:

  • 私が行うには何を持っていますか?最も簡単なのは、ヘッダ要素 をdiv要素で置き換えることです。しかし、私はそれが意味的にあまり良くないと思う、それは の権利ですか?

  • が、この場合は本当に(私は、アクセシビリティに焦点を当てたセマンティックレベル に意味)W3C 人によって考えられたり、それはそうすることが100%間違っているなかった可能性があります。

  • 他にもオプションがありますか?

ありがとう:)

+0

こんにちは@ChristopheStrobbe、 ありがとうございました。私は、状態とプロパティがなく、役割だけがメニューの簡略化されたバージョンを投稿しました。それは私の懸念だったからです。 とにかく、私の質問には、navを指して答えました。私は、nav要素は他のページへのリンクのみを持つべきだと考えましたが、その要素のW3Cページをチェックすると、ページ内の部品へのリンクも含まれることがあります。 私はまだ、意味論的な観点から見て、ヘッダーはナビよりも正しいと思うので、ヘッダーにすることはできません。 – quasi

答えて

2

を何あなたの現在のコードが示すことは、メニューバーが、ナビゲーションリストではありません。 <header role="menubar">の代わりに<nav>が必要です。リストの要素からロール属性を削除する必要があります。メニューバーを実装する場合、コードは非常に不完全です。

メニューバーにHTML5およびWAI-ARIAを使用する方法については、Recommended WAI-ARIA implementation for navigation bar/menuを参照してください。

関連する問題