data-* 属性
W3C HTML5 Working Draft には次のように記載されています。
「カスタム データ属性は、名前が文字列 "data-" で始まり、ハイフンの後に少なくとも 1 文字ある名前空間のない属性です...」
これらのカスタム データ属性を使用すると、独自のサイトで実行されるスクリプトとデータを共有するための属性を作成できます。それらは、一般的なソフトウェアによって使用または収集されません。指定できるカスタム データ属性の数に制限はありません。caniuse.com によると、「すべてのブラウザはすでに data-* 属性を使用でき、getAttribute を使用してそれらにアクセスできます。」
優れたサポートのおかげで、カスタム データ属性の多くの例が既に実際に存在しています。Dreamweaver CS5.5 をお持ちの場合は、jQuery Mobile (JQM) アプリケーションを作成できます。jQuery Mobile は、要素、テーマ、およびその他多くのものの役割を識別するために、カスタム データ属性を広範に使用します。JQM ページの例を次に示します。
<div data-role="page" id="page" data-theme="b">
<div data-role="header">
<h1>Header</h1>
</div>
<div data-role="content">Content</div>
<div data-role="footer">
<h4>Footer</h4>
</div>
</div>
role および aria-* 属性
さまざまなブラウジング習慣や身体障害を持つユーザーが Web サイトにアクセスできるように努力している場合は、role 属性と aria-* 属性に気付くでしょう。WAI-ARIA (Accessible Rich Internet Applications) は、動的な Web コンテンツとアプリケーションを定義する方法を提供する方法であり、障害のある人がそれを識別してうまく対話できるようにします。これは、ドキュメントまたはアプリケーションの構造を定義する役割を通じて、またはウィジェットの役割、関係、状態、またはプロパティを定義する aria-* 属性を通じて行われます。
HTML5 アプリケーションをよりアクセシブルにするために、仕様では ARIA の使用が推奨されています。セマンティック HTML5 要素を使用する場合は、対応する役割を設定する必要があります。基本的な構造は次のようになります。
<header id="banner" role="banner">
...
</header>
<nav role="navigation">
...
</nav>
<article id="post" role="main">
...
</article>
<footer role="contentinfo">
...
</footer>
コンテンツをよりナビゲートしやすく理解しやすくするための aria-* 属性のホストもあります。aria-labelledby、aria-level、aria-記述者、aria-orientation などはすべて、コンテンツをより認識しやすくします。詳しくは、ARIA の状態とプロパティのページをご覧ください。
結論:
data-* 属性に固執します。現在、それらはより適切にサポートされています。また、古いタイプのカスタム アトリビュートの代わりとして使用する必要があります。また、data-* 属性はデータ ホルダーとして作成され、ARIA および ROLE 属性は読みやすくするために作成されます。