ARIA属性は要素の役割に応じて指定されているとおりに使用する必要があります。
修正方法
チェックボックスには2つのオプションがあります。いずれか aria-checked
が削除され、代わりにブラウザのネイティブのチェックボックスの状態を使用して、要素がチェックされているか、チェックされていないか、または混合されているかを示します。HTMLチェックボックスは、 indeterminate
プロパティを設定することで、混合位置に配置できます。
チェックボックスのもう1つのオプションは、ネイティブHTMLチェックボックスを別の要素に置き換えることです。これを行うときは、それに role
を提供し、キーボードでアクセスできることを確認する必要があります。
良い例
<label>
<input type="checkbox" checked>
I agree to make my website accessible
</label>
悪い例
<label>
<input type="checkbox" aria-checked="true">
I agree to make my website accessible
</label>
tr
要素および role="row"
を含む要素の場合、属性が必須であれば、親の table
または grid
の役割を treegrid
に変更する必要があることがあります。
良い例
<table role="treegrid">
<tr aria-level="1" aria-expanded="false">
<td role="gridcell">My Downloads</td>
</tr>
</table>
悪い例
<table>
<tr aria-level="1" aria-expanded="false">
<td>My Downloads</td>
</tr>
</table>
なぜ重要なのか
予期しない要素にARIA属性を使用すると、支援技術で予期しない動作が発生する可能性があります。これにより、これらのテクノロジーに依存している障害を持つ人々のユーザー エクスペリエンスが悪化する可能性があります。支援技術がコンテンツの意図された意味を適切に解釈して伝達できるようにするには、ARIA仕様に従うことが重要です。
ルールの説明
一部のARIA属性は、特定の条件下でのみ要素に許可されます。異なる属性にはそれぞれ異なる制限があります。
aria-checked: これはHTML input
要素では使用しないでください type="checkbox"
と共に。このような要素は checked
状態がブラウザによって決定されます。このシナリオでは、ブラウザは aria-checked
を無視する必要があります。ブラウザはこれを一貫して行わないため、ネイティブのチェックボックスの状態と aria-checked
値の違いにより、スクリーン リーダーとその他の支援技術の間に違いが生じます。
aria-posinset、 aria-setsize、 aria-expanded、 aria-level 属性は、行で使用する場合、条件付きになります。これは、 tr
要素、または role="row"
を含む要素のいずれかになります。これらの属性は、 row
が treegrid
の一部である場合にのみ使用できます。table
または grid
内で使用する場合、これらの属性は機能せず、スクリーン リーダーやその他の支援技術から予期しない動作が発生する可能性があります。
仕組みについて (簡単に言うと)
ARIA属性が、その役割が推奨しない、または禁止している方法で使用されていないことを確認します。つまり、このARIA属性の使用は条件付きです。