HTML5とWAI-ARIAを使用してHTMLのアクセシビリティを改善しているところです。
以下を設定しても大丈夫ですか?
<!-- main content -->
<section id="main" role="main">
<h1>The main content</h1>
<!-- This div needs to be here for styling reasons -->
<div class="the-content">
<p>All the text that goes with the main content</p>
</div>
<!-- the sidebar -->
<aside id="sidebar" role="complementary">
<h2>A title</h2>
<p>Some text</p>
<aside>
</section>
<aside>
コンテナと<section>
コンテナの外側にrole="main"
要素を含める必要があるかどうかはわかりません。それは重要ですか?
はい、それは重要です。どこに配置するかは、aside
タグのコンテンツがメインのsection
にどのように関連しているかによって定義されます。
例えば:
aside
のコンテンツがメインの記事に関連している場合は、main section
内にある必要があります。ただし、sidebar aside tag
内のコンテンツがmain
と異なる場合は、main section
の外に配置します。
http://html5doctor.com/aside-revisited/
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/aside
はい、それは<aside>
内の<section>
が完全に有効なマークアップであり、それが心配な場合はW3C検証に合格します。
<section>
要素 は、内部のフローコンテンツを許可します これには<aside>
要素が含まれる場合があります-ただし、 'スタイリングの目的でのみセクションを使用しているので、代わりにdivを使用する必要があります。
それとは別に(しゃれを意図した)、role=main
の部分が有効であることに疑問があります これによると 、<section>
要素で許可される唯一のロール属性値を以下に示します。
デフォルトのARIAセマンティクス:
role=region
。他にどのようなARIAの役割、状態、プロパティを使用できますか?
alert
、alertdialog
、application
、contentinfo
、dialog
、document
、log
、Marquee
、search
、またはstatus
。許可されたロールに適用可能なグローバル
aria-*
属性およびaria- *属性。
これには、特にmain
ロールが含まれていません。
仕様( 編集者のドラフト すでにmain
が含まれています)では、main
、article
内にaside
要素をネストすることはできません。 、footer
、header
またはnav
ですが、これらの要素をmain
内にネストすることについては何も述べていません。また、article
内でnav
とmain
(ドキュメント内ナビゲーション)を使用する2つの例も提供します。したがって、少なくともaside
またはarticle
にネストされた(したがって、そのレベルにスコープされた)section
も許可する必要があります。また、コンテンツの一部に補足情報が含まれている場合(WCAG Wikiの aside
使用例 など)が、ページのメインコンテンツを一緒に形成する場合も想像できます。だから私はそれを禁止することは合理的ではないと思います。
一方、アウトラインアルゴリズム(aside
を含むすべての セクションコンテンツ が存在する主な理由のようです)は、まだ 'としてマークされています)リスクがある ' であるため、これらの要素の定義が変更され、いくつかの説明が追加される場合があります。
おそらく、HTML5仕様の編集者にこの質問をする必要がありますか?
タグをどこにドロップするかについては、ダレンに同意します。また、タグ付けは少し風変わりです。さまざまなタグにWAI-ARIAの役割がネイティブにありますが、はい、ネイティブの役割を上書きできますが、なぜそうするのでしょうか。これ WAI-ARIAについての投稿 PacielloGroupのブログでそれについてもっと話します。例:
使用する代わりに
<section id="main" role="main">
<main>
を使用することもできます。これは同じことを意味し、より良い方法です。 <aside>
タグには補完的な役割がネイティブに追加されているため、私の名前はライアン、実際には私の名前はライアンです。