From e53436927292d51247e5b65eb636dd13d6ad3b9a Mon Sep 17 00:00:00 2001 From: Wind1808 <42607060+Wind1808@users.noreply.github.com> Date: Sun, 11 Apr 2021 22:56:37 +0900 Subject: Web/Accessibility/ARIA/Roles/checkbox_role を更新 (#457) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ARIA: checkbox ロール を更新 * ARIA: gridcell ロールの新規翻訳 2 * translation_of: と original_slug: を復元 * 最初→第一、必要な➝必要としている --- .../aria/roles/checkbox_role/index.html | 156 ++++++++++++++++----- 1 file changed, 122 insertions(+), 34 deletions(-) (limited to 'files/ja/web/accessibility/aria') diff --git a/files/ja/web/accessibility/aria/roles/checkbox_role/index.html b/files/ja/web/accessibility/aria/roles/checkbox_role/index.html index 4f2033cd86..0bf0381326 100644 --- a/files/ja/web/accessibility/aria/roles/checkbox_role/index.html +++ b/files/ja/web/accessibility/aria/roles/checkbox_role/index.html @@ -1,64 +1,152 @@ --- -title: チェックボックスロールの使用 +title: 'ARIA: checkbox ロール' slug: Web/Accessibility/ARIA/Roles/checkbox_role tags: - ARIA - Accessibility - NeedsContent - - Role(2) - - Rôle + - Role translation_of: Web/Accessibility/ARIA/Roles/checkbox_role original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_checkbox_role --- -

チェックボックスロールはチェック可能なインタラクティブなコントロールに使用されます。もし要素が role="checkbox" を使っていたら 、支援技術へチェックボックスのステートを公開するためにaria-checked 属性も持つ必要があります。ネイティブHTMLのチェックボックスフォームコントロールが2つののみ( "checked" もしくは "not checked" )をもてる一方で、role=checkbox 要素は aria-checked を通して3つのステートを公開できます:

+

チェックボックス (checkbox) ロールは、チェック可能なインタラクティブなコントロールに使用します。 role="checkbox" を含む要素には、チェックボックスの状態を支援技術に公開するための aria-checked 属性も含める必要があります。

- +
<span role="checkbox" aria-checked="false" tabindex="0" aria-labelledby="chk1-label">
+</span> <label id="chk1-label">Remember my preferences</label>
-

開発者はチェックボックスが作動した際に、 aria-checked 属性を動的に変更する必要があります。

+

ARIA の第一のルールは、ネイティブな HTML の要素や属性に必要としている意味論と振る舞いがある場合、要素を転用して ARIA を追加する代わりにネイティブなものを使用することです。 次のように、代わりに <input type="checkbox"> のネイティブな HTML チェックボックスを使用してください。 これは、必要なすべての機能をネイティブに提供します。

-

チェックボックスはインタラクティブなコントロールなので、フォーカス可能かつキーボードからアクセス可能でなければなりません。 ロールがフォーカス可能ではない要素に適応されたとしたら、フォーカスを可能にするために tabindex 要素が使用されなければなりません。チェックボックスを動作させるために期待されるキーボードショートカットはスペースキーです。

+
<input type="checkbox" id="chk1-label">
+<label for="chk1-label">Remember my preferences</label>
-

ユーザーエージェントと支援技術への影響 

+

説明

-

チェックボックスロールが要素に付与されたときに、ユーザーエージェントは次のように振る舞わなければなりません:

+

ネイティブな HTML チェックボックスのフォームコントロールは、2つのチェックされた (checked) 状態(「チェックされた」または「チェックされていない」)のみを持つことができ、不確定な (indeterminate) 状態は JavaScript を介して設定可能です。 同様に、role="checkbox" を持つ要素は、aria-checked 属性を介して、truefalse、または mixed の3つの状態を公開できます。

- +

チェックボックスはインタラクティブなコントロールであるため、フォーカス可能でキーボードからアクセスできる必要があります。 ロールがフォーカス不可能な要素に適用される場合は、tabindex 属性を使用してこれを変更します。 チェックボックスをアクティブ化するために必要なキーボードショートカットは、Space キーです。

-

支援技術製品は次のように振る舞わなければなりません:

+

開発者は、チェックボックスがアクティブ化されたときに、aria-checked 属性の値を動的に変更する必要があります。

- +

関連する WAI-ARIA のロール、ステート、プロパティ

+ +
+
aria-checked
+
+

aria-checked の値は、チェックボックスの状態を定義します。 この属性には、次の3つの値のいずれかがあります。

+ +

true
+     チェックボックスがチェックされています
+ false
+     チェックボックスがチェックされていません
+ mixed
+     チェックボックスが部分的にチェックされているか、不確定です

+
+
tabindex="0"
+
支援技術のユーザーが Tab で移動してすぐに読み始めることができるように、フォーカス可能にするために使用します。
+
+ +

キーボードインタラクション

+ + + + + + + + + + + + +
キー機能
Spaceチェックボックスをアクティブ化します
+ +

必要な JavaScript

+ +

必要なイベントハンドラー

+ +
+
onclick
+
マウスクリックを処理して、aria-checked 属性の値を変更することでチェックボックスの状態を変更し、チェックボックスの外観を変更することで、視力のあるユーザーにチェックされているかどうかを見せます。
+
onKeyPress
+
ユーザーが Space キーを押した場合を処理して、aria-checked 属性の値を変更することでチェックボックスの状態を変更し、チェックボックスの外観を変更することで、視力のあるユーザーにチェックされているかどうかを見せます。
+
+ +

+ +

次の例では、CSS と JavaScript を使用して単純なチェックボックス要素を作成し、要素がチェックされているかどうかの状態を処理します。

-
注記: 支援技術がこの技術をどう扱うべきかについて、意見は分かれています。上記の情報はこれらの意見の一つであり、標準的なものではありません。
+

HTML

-

+
<span role="checkbox" id="chkPref" aria-checked="false" onclick="changeCheckbox()" onKeyPress="changeCheckbox()"
+   tabindex="0" aria-labelledby="chk1-label"></span>
+<label id="chk1-label" onclick="changeCheckbox()" onKeyPress="changeCheckbox()">Remember my preferences</label>
-

例1: ARIA によるチェックボックスロールの追加

+

CSS

-
<span role="checkbox" aria-checked="false" tabindex="0" id="chk1"></span>
-<label for="chk1">Remember my preferences</label>
+
[role="checkbox"] {
+    padding:5px;
+}
 
-

注記 

+[aria-checked="true"]::before { + content: "[x]"; +} -

使用された ARIA 属性

+[aria-checked="false"]::before { + content: "[ ]"; +}
+ +

JavaScript

+ +
function changeCheckbox(event) {
+    let item = document.getElementById('chkPref');
+    switch(item.getAttribute('aria-checked')) {
+        case "true":
+            item.setAttribute('aria-checked', "false");
+            break;
+        case "false":
+            item.setAttribute('aria-checked', "true");
+            break;
+    }
+}
+ +

{{EmbedLiveSample("Examples", 230, 250)}}

+ +

アクセシビリティの懸念

+ +

チェックボックス (checkbox) ロールが要素に追加された場合、ユーザーエージェントは次のことを行う必要があります。

+ + + +

支援技術製品は次のことを行う必要があります。

-

関連する ARIA 技術

+
注: 支援技術がこの手法をどのように扱うべきかについては、意見が異なる場合があります。 上記の情報はそれらの意見の1つであり、したがって規範的ではありません。
+ +

ベストプラクティス

+ +

ARIA の第一のルールは、ネイティブな HTML の要素や属性に必要としている意味論と振る舞いがある場合、要素を転用して ARIA のロール、ステート、またはプロパティを追加してアクセス可能にする代わりに、ネイティブなものを使用することです。 そのため、JavaScript と ARIA でチェックボックスの機能を再作成するのではなく、フォームコントロールを使用してネイティブな HTML チェックボックスを使用することをお勧めします。

-

互換性

+

関連情報

+ + -

TBD: 一般的なUAとAT製品の組み合わせサポート情報の追加

-

その他のリソース

+ \ No newline at end of file -- cgit v1.2.3-54-g00ecf