button
要素を使用するBootstrapのすべての例で、次のようなrole="button"
(およびtype="button"
)が含まれていることに気付きました。
<div class="dropdown">
<button id="dLabel" type="button" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Dropdown trigger <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
...
</ul>
</div>
アクセシビリティソフトウェアは、button
要素がボタンとして機能することを意図していることをすでに知っていませんか?コードにrole="button"
および/またはtype="button"
を含める必要がある理由はありますか?
多くのHTML5要素にはdefault暗黙的ARIAセマンティクスが付属しており、これらのデフォルト値を明示的に設定するのは " 不要で非推奨 "です。
button
element を見ると、デフォルトで button
role があることがわかります。
したがって、設定role="button"
は「推奨されません」ですが、許可されています。 mightは、HTML5ではなくWAI-ARIAをサポートする古いユーザーエージェントを支援します。
TL; DR指定されたケースでは、動作するため、role=button
を指定する必要がありますトグルボタンとして。 type=button
も使用する必要があります。
Bootstrapの例のすべてのボタンがrole=button
を使用しているという質問の情報は正しくありません。トグルボタンとして論理的に動作するボタンのみが、そのようにラベル付けされます。
ボタン要素には強力なネイティブセマンティクスがあるため、一般にrole=button
を使用する必要はありません。さらに、 W3CのHTML5仕様のARIA使用上の注意 によると:
ほとんどの場合、デフォルトの暗黙的なARIAセマンティクスに一致するARIAロールやaria- *属性を設定する必要はなく、これらのプロパティはブラウザによってすでに設定されているため、お勧めしません。
与えられた例の場合であるトグルボタンの1つの例外があります。
W3Cの推奨事項の表によると HTMLでWAI-ARIAを使用 :
HTML言語機能:ボタン
デフォルトのARIAセマンティクス:role = button
作成者はデフォルトのARIAセマンティクスを明示的に定義する必要がありますか?いいえ(注0a)
注0a:はいaria-pressed属性がボタン要素で使用されている場合
したがって、トグルボタンの役割を設定する必要がありますが、そうでない場合は設定しないでください。
質問にはtype=button
も記載されているので、詳しく説明します。 W3CのHTML5仕様のボタンに関するセクション によると、ボタン要素のタイプに欠落しているデフォルト値はtype=submit
であり、フォーム所有者が存在する場合、そのアクティブ化動作はフォーム所有者を送信することです。 type=button
に関連するアクティベーション動作はありません。
したがって、type=button
は、指定されたケースに指定する必要があります。
<button>
タグは、次の3つのいずれかになります。
type = button
)。type = submit
)。type = reset
)。ブラウザごとにボタンのデフォルトが異なるため、使用するタイプを指定することをお勧めします。
http://www.w3schools.com/tags/att_button_type.asp
この役割は含まれていませんが、アクセス可能なソフトウェアには適しています。
したがって、それらを含める必要がありますか?いいえ、含めませんが、一般的に含めることをお勧めします。
ここ 言う:
注:ネイティブHTMLボタンは、古いユーザーエージェントと支援技術によってより広くサポートされているため、可能な場合は、ボタンの役割ではなくネイティブHTMLボタン(、および)を使用することをお勧めします。ネイティブHTMLボタンは、追加のカスタマイズを必要とせずに、デフォルトでキーボードとフォーカスの要件もサポートします。
ボタンの役割を使用する場合、ユーザーエージェントは、オペレーティングシステムのアクセシビリティAPIでボタンコントロールとして要素を公開する必要があります。スクリーンリーダーは、要素をボタンとしてアナウンスし、アクセス可能な名前を説明する必要があります。音声認識ソフトウェアでは、「クリック」の後にボタンのアクセシブルな名前を入力して、ボタンをアクティブにする必要があります。注:支援技術がこの手法をどのように処理するかについては、意見が異なる場合があります。上記の情報はそれらの意見の1つであり、したがって規範的ではありません。
次に、それを追加する必要があります。それをユーザーに公開するため。しかし、規範的ではありません。
W3C Html5ボタン によると
欠落している値のデフォルトは、送信ボタンの状態です。
Type属性がSubmitButton状態の場合、要素は具体的には送信ボタンです。
ボタンを使用してフォームを送信する場合を除き、W3C仕様に記載されているように、これを省略してtype="button"
を明示的に設定する必要があります。これは送信ボタンとして機能し、フォームを送信します。不要な送信を回避するには、type="button"
を<button>
sに明示的に設定する必要があります。
ブートストラップのボタンのほとんどはjavascript関数または同様の動作をトリガーするためのものであるため、コードのコピーアンドペースト時の偶発的な意図しない送信動作を回避するために、正規化の名の下に、type="button"
およびrole="button"
属性が追加されます。 <button>
role = "button"
これはBootstrapでは必須ではありません
要件と推奨事項は、「ARIAinHTML」でより徹底的に文書化されています。
次の表は、HTMLドキュメントでARIAマークアップを使用するための要素ごとの標準的なドキュメント準拠要件を示し、HTML Accessibility API Mappings 1.0 [html-aam-1.0]仕様で定義されているHTML要素に適用される暗黙的なARIAセマンティクスについて説明しています。