`、` `、` `、` `、および ` `) を使用することをお勧めします。 ネイティブな HTML のボタンは、すべてのユーザーエージェントと支援技術によってサポートされており、追加のカスタマイズを必要とせずに、デフォルトでキーボードとフォーカスの要件を提供します。
+
+## 仕様
+
+| 仕様 | 状態 |
+| -------------------------------------------------------------------------------- | ------------------------------------------------ |
+| {{SpecName("ARIA","#button","button")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#button","button")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## 注記
+
+### 使用された ARIA 属性
+
+- [`button`](https://www.w3.org/TR/wai-aria/roles#button)
+- [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed)
+- `aria-expanded`
+- `aria-haspopup`
+
+### その他のリソース
+
+- [HTML5 の強力でネイティブな意味論](https://www.w3.org/TR/html5/dom.html#aria-usage-note) (英語)
+- [HTML での ARIA の使用に関する注意](https://www.w3.org/TR/aria-in-html/) (英語)
+- [公式の WAI-ARIA サンプルコード](https://www.w3.org/TR/wai-aria-practices/examples/button/button.html) (英語)
+- [ARIA: menubutton ロール](/ja/docs/Web/Accessibility/ARIA/Roles/menubutton_role)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/cell_role/index.html b/files/ja/web/accessibility/aria/roles/cell_role/index.html
deleted file mode 100644
index 1cf430411cc424..00000000000000
--- a/files/ja/web/accessibility/aria/roles/cell_role/index.html
+++ /dev/null
@@ -1,197 +0,0 @@
----
-title: 'ARIA: cell ロール'
-slug: Web/Accessibility/ARIA/Roles/Cell_Role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Cell_Role
----
-ARIA の role 属性の cell
値は、要素を列ヘッダーや行ヘッダーの情報を含まない表形式コンテナー内のセルとして識別します。 サポートされるには、セルが行 (row
) ロールを持つ要素内にネストされている必要があります。
-
-<div role="row">
- <span role="cell">フランス</span>
- <span role="cell">6700 万</span>
-</div>
-
-
-上のセルの書き方のより良い、より意味論的な方法は、意味論的な <td>
要素を使うことです。
-
-<tr role="row">
- <td role="cell">フランス</td>
- <td role="cell">6700 万</td>
-</tr>
-
-
-説明
-
-role="cell"
を持つ要素は、静的な表形式構造内のグリッド (grid
)、表 (table
)、またはツリーグリッド (treegrid
) 内の、任意で行グループ (rowgroup
) 内の、行内のセルです。 可能であれば、ネイティブな HTML <td>
要素を使用することを強く推奨します。
-
-role="row"
を持つコンテナー要素内に、role="cell"
を持つ各要素をネストしなければなりません (MUST)。 この行は、role="rowgroup"
を持つ要素内にネストすることができ、グリッド (grid
)、表 (table
)、ツリーグリッド (treegrid
) 内にネストするべきです。 セルに列ヘッダーまたは行ヘッダーの情報が含まれている場合は、それぞれ列ヘッダー (columnheader
) ロールや行ヘッダー (rowheader
) ロールを使用します。 セルにヘッダー情報が含まれておらず、グリッド (grid
) やツリーグリッド (treegrid
) にネストされている場合、グリッドセル (gridcell
) ロールがより適切な場合があります。
-
-セルには、aria-colindex
、aria-colspan
、aria-rowindex
、aria-rowspan
など、表形式データ構造内のセルの位置を明確にする多数のプロパティ属性を含めることができます。
-
-
-
可能であれば、ネイティブな HTML 表要素 (<table>
) を、表の行要素 (<tr>
) および表のセル要素 (<td>
) と共に使用することを強く推奨します。
-
-
-関連する WAI-ARIA のロール、ステート、プロパティ
-
-コンテキストロール
-
-
- role="row"
- role="row"
の要素は、表形式構造内のセルの行です。 行には、グリッド (grid
)、表 (table
)、ツリーグリッド (treegrid
) 内において、そして任意で行グループ (rowgroup
) 内において、1つ以上のセル、グリッドセル、列ヘッダー、行ヘッダーが含まれます。
- role="rowgroup"
- 行はセルの親として必須です。 行グループ (rowgroup
) は、任意のコンテキスト上の行の親で、子孫となる行との間に関係を確立します。 これは、HTML 表 (table
) 要素の thead
、tfoot
、tbody
要素と構造的に同等です。
- role="table"
- セルを含む行を見つけることができる、グリッド (grid
) とツリーグリッド (treegrid
) と共に3つの可能なコンテキストのうちの1つ。 表 (table
) は、セルを、ネイティブな HTML <table>
要素と同様に、行と列に配置されたデータを含むインタラクティブでない表構造の一部として識別します。
- role="grid"
- セル (cell
) とグリッドセル (gridcell
) を含む行を見つけることができる、表 (table
) とツリーグリッド (treegrid
) と共に3つの可能なコンテキストのうちの1つ。 グリッド (grid
) は、セルを、ネイティブな HTML <table>
要素と同様に、行と列に配置されたデータを含むインタラクティブかもしれない表構造の一部として識別します。
- role="treegrid"
- グリッド (grid
) に似ていますが、ツリー (tree
) と同じ方法で展開や折りたたみができる行があります。
-
-
-サブクラスロール
-
-
- role="gridcell"
- グリッド (grid
) やツリーグリッド (treegrid
) 内の行内のセル。
- role="columnheader"
- 列スコープを持つ HTML <th>
要素と構造的に同等なヘッダーセル。 プレーンなセルとは異なり、列ヘッダー (columnheader
) ロールは、対応する列の全てのセルとの関係を確立します。
- role="rowheader"
- 行スコープを持つ HTML <th>
要素と構造的に同等なヘッダーセル。 プレーンなセルとは異なり、行ヘッダー (rowheader
) ロールは、対応する行の全てのセルとの関係を確立します。
-
-
-ステートとプロパティ
-
-
- aria-colspan 属性
- HTML の <th>
と <td>
要素の colspan
属性 と同様に、セルにまたがる列数を定義します。
- aria-rowspan 属性
- HTML の <th>
と <td>
要素の rowspan
属性 と同様に、セルにまたがる行数を定義します。
- aria-colindex 属性
-
- aria-colindex
属性は、列が DOM から隠されている場合にのみ必要です。 この属性は、値として 1 から表 (table
)、グリッド (grid
)、ツリーグリッド (treegrid
) 内の総列数の間の整数をとります。 aria-colindex
は、行内の総列数に対する要素の列インデックスまたは位置を定義します。 全ての列が DOM 内にある場合、この属性は必要ありません。
-
- aria-rowindex 属性
-
- aria-rowindex
属性は、行が DOM から隠されている場合にのみ必要で、現在のセルが総ての行のリスト内のどの行かを示します。 この属性は、値として 1 から表 (table
)、グリッド (grid
)、ツリーグリッド (treegrid
) 内の総行数の間の整数をとり、セルの位置またはインデックスを示します。 たとえば、最初のヘッダーの最初の行のセルは aria-rowindex="1"
と設定され、47 行目のセルは、DOM 内に全ての行が存在しないために aria-rowindex
が必要な場合は、aria-rowindex="47"
となるでしょう。 表示されている行が連続していて、colspan
や rowspan
が 1 より大きいセルがない場合、このプロパティは行の全てのセルの代わりに親の行に追加できます。
-
-
-
-
-キーボードインタラクション
-
-無し
-
-必要な JavaScript 機能
-
-ARIA の第一のルールは、要素を転用して、ARIA のロール、ステート、プロパティを追加 してアクセス可能にするのではなく、必要としている意味論と振る舞いがすでに組み込まれているネイティブな機能を使用できる場合は、そうすることです。 可能な限り、ARIA のセル (cell
) ロールの代わりに HTML の <td>
要素を使用してください。
-
-例
-
-<div role="table" aria-label="意味論的な要素" aria-describedby="semantic_elements_table_desc" aria-rowcount="81">
- <div id="semantic_elements_table_desc">ARIA のロールの代わりに使用する意味論的な要素</div>
- <div role="rowgroup">
- <div role="row">
- <span role="columnheader" aria-sort="none" aria-rowindex="1">ARIA ロール</span>
- <span role="columnheader" aria-sort="none" aria-rowindex="1">意味論的な要素</span>
- </div>
- </div>
- <div role="rowgroup">
- <div role="row">
- <span role="cell" aria-rowindex="11">header</span>
- <span role="cell" aria-rowindex="11">h1</span>
- </div>
- <div role="row">
- <span role="cell" aria-rowindex="16">header</span>
- <span role="cell" aria-rowindex="16">h6</span>
- </div>
- <div role="row">
- <span role="cell" aria-rowindex="18">rowgroup</span>
- <span role="cell" aria-rowindex="18">thead</span>
- </div>
- <div role="row">
- <span role="cell" aria-rowindex="24">term</span>
- <span role="cell" aria-rowindex="24">dt</span>
- </div>
- </div>
-</div>
-
-
-上記は、DOM 内に 81 行のうち 5 行が存在する意味論的でない ARIA の表です。 表のヘッダー内に 1 行、表の本体内に 4 行あります。 全ての行が DOM 内にあるわけではないので、全てのセルに aria-rowindex
プロパティを含めています。 複数の行や列にまたがるセルがない場合、aria-rowindex
は行の個々のセルではなく行に配置されている可能性があります。
-
-ベストプラクティス
-
-データ表構造には、table
、tbody
、thead
、tr
、th
、td
などのみを使用します。 CSS などを使用して、表のネイティブな意味論を削除しなくてはならない場合に、ARIA ロールを追加してアクセシビリティを確保できます。 ARIA の表 (table
) ロールの関連するユースケースは、display: grid など、CSS の display プロパティ によって表のネイティブな意味論がオーバーライドされる場合です。 この場合、ARIA の表 (table
) ロールを使用して意味論を戻すことができます。
-
-<table role="table" aria-label="意味論的な要素" aria-describedby="semantic_elements_table_desc" aria-rowcount="81">
- <caption id="semantic_elements_table_desc">ARIA のロールの代わりに使用する意味論的な要素</caption>
- <thead role="rowgroup">
- <tr role="row">
- <th role="columnheader" aria-sort="none" aria-rowindex="1">ARIA ロール</th>
- <th role="columnheader" aria-sort="none" aria-rowindex="1">意味論的な要素</th>
- </tr>
- </thead>
- <tbody role="rowgroup">
- <tr role="row">
- <td role="cell" aria-rowindex="11">header</td>
- <td role="cell" aria-rowindex="11">h1</td>
- </tr>
- <tr role="row">
- <td role="cell" aria-rowindex="16">header</td>
- <td role="cell" aria-rowindex="16">h6</td>
- </tr>
- <tr role="row">
- <td role="cell" aria-rowindex="18">rowgroup</td>
- <td role="cell" aria-rowindex="18">thead</td>
- </tr>
- <tr role="row">
- <td role="cell" aria-rowindex="24">term</td>
- <td role="cell" aria-rowindex="24">dt</td>
- </tr>
- </tbody>
- </table>
-
-上記は、表を作成する意味論的な方法です。 表のネイティブな意味論、つまり表の行が、display プロパティ などを介して変更されていない場合、ARIA ロールは必要ありません。
-
-追加された利点
-
-無し
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#cell","ARIA Cell Role")}}
- {{Spec2('ARIA')}}
-
-
- {{SpecName("ARIA Authoring Practices","#cell","ARIA Cell Role")}}
- {{Spec2('ARIA Authoring Practices')}}
-
-
-
-
-関連情報
-
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/cell_role/index.md b/files/ja/web/accessibility/aria/roles/cell_role/index.md
new file mode 100644
index 00000000000000..8b98daf7bafbe9
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/cell_role/index.md
@@ -0,0 +1,170 @@
+---
+title: 'ARIA: cell ロール'
+slug: Web/Accessibility/ARIA/Roles/Cell_Role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Cell_Role
+---
+ARIA の _role_ 属性の `cell` 値は、要素を列ヘッダーや行ヘッダーの情報を含まない表形式コンテナー内のセルとして識別します。 サポートされるには、セルが行 (`row`) ロールを持つ要素内にネストされている必要があります。
+
+```html
+
+ フランス
+ 6700 万
+
+```
+
+上のセルの書き方のより良い、より意味論的な方法は、意味論的な `` 要素を使うことです。
+
+```html
+
+ フランス
+ 6700 万
+
+```
+
+## 説明
+
+`role="cell"` を持つ要素は、静的な表形式構造内のグリッド ([`grid`](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role))、表 ([`table`](/ja/docs/Web/Accessibility/ARIA/Roles/Table_Role))、またはツリーグリッド (`treegrid`) 内の、任意で行グループ ([`rowgroup`](/ja/docs/Web/Accessibility/ARIA/Roles/Rowgroup_Role)) 内の、行内のセルです。 可能であれば、ネイティブな [HTML ``](/ja/docs/Web/HTML/Element/td) 要素を使用することを強く推奨します。
+
+`role="row"` を持つコンテナー要素内に、`role="cell"` を持つ各要素をネストしなければなりません (MUST)。 この行は、`role="rowgroup"` を持つ要素内にネストすることができ、グリッド (`grid`)、表 (`table`)、ツリーグリッド (`treegrid`) 内にネストするべきです。 セルに列ヘッダーまたは行ヘッダーの情報が含まれている場合は、それぞれ列ヘッダー (`columnheader`) ロールや行ヘッダー (`rowheader`) ロールを使用します。 セルにヘッダー情報が含まれておらず、グリッド (`grid`) やツリーグリッド (`treegrid`) にネストされている場合、グリッドセル (`gridcell`) ロールがより適切な場合があります。
+
+セルには、`aria-colindex`、`aria-colspan`、`aria-rowindex`、`aria-rowspan` など、表形式データ構造内のセルの位置を明確にする多数のプロパティ属性を含めることができます。
+
+> **Note:** 可能であれば、ネイティブな HTML 表要素 (``) を、表の行要素 (``) および表のセル要素 (``) と共に使用することを強く推奨します。
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+#### コンテキストロール
+
+- [role="row"](/ja/docs/Web/Accessibility/ARIA/Roles/Row_Role)
+ - : `role="row"` の要素は、表形式構造内のセルの行です。 行には、グリッド ([`grid`](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role))、表 ([`table`](/ja/docs/Web/Accessibility/ARIA/Roles/Table_Role))、ツリーグリッド (`treegrid`) 内において、そして任意で行グループ ([`rowgroup`](/ja/docs/Web/Accessibility/ARIA/Roles/Rowgroup_Role)) 内において、1 つ以上のセル、グリッドセル、列ヘッダー、行ヘッダーが含まれます。
+- [role="rowgroup"](/ja/docs/Web/Accessibility/ARIA/Roles/Rowgroup_Role)
+ - : 行はセルの親として必須です。 行グループ (`rowgroup`) は、任意のコンテキスト上の行の親で、子孫となる行との間に関係を確立します。 これは、[HTML 表 (`table`)](/ja/docs/Learn/HTML/Tables/Basics) 要素の `thead`、`tfoot`、`tbody` 要素と構造的に同等です。
+- [role="table"](/ja/docs/Web/Accessibility/ARIA/Roles/Table_Role)
+ - : セルを含む行を見つけることができる、グリッド (`grid`) とツリーグリッド (`treegrid`) と共に 3 つの可能なコンテキストのうちの 1 つ。 表 (`table`) は、セルを、ネイティブな HTML [``](/ja/docs/Web/HTML/Element/table) 要素と同様に、行と列に配置されたデータを含むインタラクティブでない表構造の一部として識別します。
+- [role="grid"](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role)
+ - : セル (`cell`) とグリッドセル (`gridcell`) を含む行を見つけることができる、表 (`table`) とツリーグリッド (`treegrid`) と共に 3 つの可能なコンテキストのうちの 1 つ。 グリッド (`grid`) は、セルを、ネイティブな HTML [``](/ja/docs/Web/HTML/Element/table) 要素と同様に、行と列に配置されたデータを含むインタラクティブかもしれない表構造の一部として識別します。
+- role="treegrid"
+ - : グリッド (`grid`) に似ていますが、ツリー (`tree`) と同じ方法で展開や折りたたみができる行があります。
+
+#### サブクラスロール
+
+- role="gridcell"
+ - : グリッド (`grid`) やツリーグリッド (`treegrid`) 内の行内のセル。
+- role="columnheader"
+ - : 列スコープを持つ HTML [``](/ja/docs/Web/HTML/Element/th) 要素と構造的に同等なヘッダーセル。 プレーンなセルとは異なり、列ヘッダー (`columnheader`) ロールは、対応する列の全てのセルとの関係を確立します。
+- role="rowheader"
+ - : 行スコープを持つ HTML [` `](/ja/docs/Web/HTML/Element/th) 要素と構造的に同等なヘッダーセル。 プレーンなセルとは異なり、行ヘッダー (`rowheader`) ロールは、対応する行の全てのセルとの関係を確立します。
+
+#### ステートとプロパティ
+
+- aria-colspan 属性
+ - : HTML の [` `](/ja/docs/Web/HTML/Element/th) と [` ` 要素の `colspan` 属性](/ja/docs/Web/HTML/Element/td)と同様に、セルにまたがる列数を定義します。
+- aria-rowspan 属性
+ - : HTML の [` `](/ja/docs/Web/HTML/Element/th) と [` ` 要素の `rowspan` 属性](/ja/docs/Web/HTML/Element/td)と同様に、セルにまたがる行数を定義します。
+- aria-colindex 属性
+ - : `aria-colindex` 属性は、列が DOM から隠されている場合にのみ必要です。 この属性は、値として 1 から表 (`table`)、グリッド (`grid`)、ツリーグリッド (`treegrid`) 内の総列数の間の整数をとります。 `aria-colindex` は、行内の総列数に対する要素の列インデックスまたは位置を定義します。 全ての列が DOM 内にある場合、この属性は必要ありません。
+- aria-rowindex 属性
+ - : `aria-rowindex` 属性は、行が DOM から隠されている場合にのみ必要で、現在のセルが総ての行のリスト内のどの行かを示します。 この属性は、値として 1 から表 (`table`)、グリッド (`grid`)、ツリーグリッド (`treegrid`) 内の総行数の間の整数をとり、セルの位置またはインデックスを示します。 たとえば、最初のヘッダーの最初の行のセルは `aria-rowindex="1"` と設定され、47 行目のセルは、DOM 内に全ての行が存在しないために `aria-rowindex` が必要な場合は、`aria-rowindex="47"` となるでしょう。 表示されている行が連続していて、`colspan` や `rowspan` が 1 より大きいセルがない場合、このプロパティは行の全てのセルの代わりに親の行に追加できます。
+
+### キーボードインタラクション
+
+無し
+
+### 必要な JavaScript 機能
+
+ARIA の第一のルールは、要素を転用して、ARIA のロール、ステート、プロパティを**追加**してアクセス可能にするのではなく、必要としている意味論と振る舞いがすでに組み込まれているネイティブな機能を使用できる場合は、そうすることです。 可能な限り、ARIA のセル (`cell`) ロールの代わりに HTML の ` ` 要素を使用してください。
+
+## 例
+
+```
+
+
ARIA のロールの代わりに使用する意味論的な要素
+
+
+ ARIA ロール
+ 意味論的な要素
+
+
+
+
+ header
+ h1
+
+
+ header
+ h6
+
+
+ rowgroup
+ thead
+
+
+ term
+ dt
+
+
+
+```
+
+上記は、DOM 内に 81 行のうち 5 行が存在する意味論的でない ARIA の表です。 表のヘッダー内に 1 行、表の本体内に 4 行あります。 全ての行が DOM 内にあるわけではないので、全てのセルに `aria-rowindex` プロパティを含めています。 複数の行や列にまたがるセルがない場合、`aria-rowindex` は行の個々のセルではなく行に配置されている可能性があります。
+
+## ベストプラクティス
+
+データ表構造には、`table`、`tbody`、`thead`、`tr`、`th`、`td` などのみを使用します。 CSS などを使用して、表のネイティブな意味論を削除しなくてはならない場合に、ARIA ロールを追加してアクセシビリティを確保できます。 ARIA の表 (`table`) ロールの関連するユースケースは、[display: grid など、CSS の display プロパティ](/ja/docs/Web/CSS/display#accessibility_concerns)によって表のネイティブな意味論がオーバーライドされる場合です。 この場合、ARIA の表 (`table`) ロールを使用して意味論を戻すことができます。
+
+```
+
+ ARIA のロールの代わりに使用する意味論的な要素
+
+
+ ARIA ロール
+ 意味論的な要素
+
+
+
+
+ header
+ h1
+
+
+ header
+ h6
+
+
+ rowgroup
+ thead
+
+
+ term
+ dt
+
+
+
+```
+
+上記は、表を作成する意味論的な方法です。 表のネイティブな意味論、つまり表の行が、[display プロパティ](/ja/docs/Web/CSS/display#accessibility_concerns)などを介して変更されていない場合、ARIA ロールは必要ありません。
+
+### 追加された利点
+
+無し
+
+## 仕様
+
+| 仕様 | 状態 |
+| ---------------------------------------------------------------------------------------- | ------------------------------------------------ |
+| {{SpecName("ARIA","#cell","ARIA Cell Role")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#cell","ARIA Cell Role")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## 関連情報
+
+- [role="row"](/ja/docs/Web/Accessibility/ARIA/Roles/Row_Role)
+- [HTML \ 要素](/ja/docs/Web/HTML/Element/td)
+- [HTML \ 要素](/ja/docs/Web/HTML/Element/th)
+- [HTML 表の高度な機能とアクセシビリティ](/ja/docs/Learn/HTML/Tables/Advanced)
+- [HTML の表の基本](/ja/docs/Learn/HTML/Tables/Basics)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/checkbox_role/index.html b/files/ja/web/accessibility/aria/roles/checkbox_role/index.html
deleted file mode 100644
index 13074b79733d1a..00000000000000
--- a/files/ja/web/accessibility/aria/roles/checkbox_role/index.html
+++ /dev/null
@@ -1,152 +0,0 @@
----
-title: 'ARIA: checkbox ロール'
-slug: Web/Accessibility/ARIA/Roles/checkbox_role
-tags:
- - ARIA
- - Accessibility
- - NeedsContent
- - Role
-translation_of: Web/Accessibility/ARIA/Roles/checkbox_role
-original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_checkbox_role
----
-チェックボックス (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 の第一のルールは、ネイティブな HTML の要素や属性に必要としている意味論と振る舞いがある場合、要素を転用して ARIA を追加する代わりにネイティブなものを使用することです。 次のように、代わりに <input type="checkbox">
のネイティブな HTML チェックボックス を使用してください。 これは、必要なすべての機能をネイティブに提供します。
-
-<input type="checkbox" id="chk1-label">
-<label for="chk1-label">Remember my preferences</label>
-
-説明
-
-ネイティブな HTML チェックボックス のフォームコントロールは、2つのチェックされた (checked) 状態(「チェックされた」または「チェックされていない」)のみを持つことができ、不確定な (indeterminate ) 状態は JavaScript を介して設定可能です。 同様に、role="checkbox"
を持つ要素は、aria-checked
属性を介して、true
、false
、または 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>
-
-CSS
-
-[role="checkbox"] {
- padding:5px;
-}
-
-[aria-checked="true"]::before {
- content: "[x]";
-}
-
-[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
) ロールが要素に追加された場合、ユーザーエージェントは次のことを行う必要があります。
-
-
- オペレーティングシステムのアクセシビリティ API でチェックボックスロールを持つものとして要素を公開します。
- aria-checked
値が変更されたら、アクセス可能な状態変更イベントを送信します。
-
-
-支援技術製品は次のことを行う必要があります。
-
-
- スクリーンリーダーは、要素をチェックボックスとしてアナウンスし、任意でアクティブ化する方法を説明する必要があります。
-
-
-注: 支援技術がこの手法をどのように扱うべきかについては、意見が異なる場合があります。 上記の情報はそれらの意見の1つであり、したがって規範的ではありません。
-
-ベストプラクティス
-
-ARIA の第一のルールは、ネイティブな HTML の要素や属性に必要としている意味論と振る舞いがある場合、要素を転用して ARIA のロール、ステート、またはプロパティを追加してアクセス可能にする代わりに、ネイティブなものを使用することです。 そのため、JavaScript と ARIA でチェックボックスの機能を再作成するのではなく、フォームコントロールを使用してネイティブな HTML チェックボックス を使用することをお勧めします。
-
-関連情報
-
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
\ No newline at end of file
diff --git a/files/ja/web/accessibility/aria/roles/checkbox_role/index.md b/files/ja/web/accessibility/aria/roles/checkbox_role/index.md
new file mode 100644
index 00000000000000..357b8f1f3a52c8
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/checkbox_role/index.md
@@ -0,0 +1,145 @@
+---
+title: 'ARIA: checkbox ロール'
+slug: Web/Accessibility/ARIA/Roles/checkbox_role
+tags:
+ - ARIA
+ - Accessibility
+ - NeedsContent
+ - Role
+translation_of: Web/Accessibility/ARIA/Roles/checkbox_role
+original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_checkbox_role
+---
+チェックボックス ([checkbox](https://www.w3.org/TR/wai-aria-1.1/#checkbox)) ロールは、チェック可能なインタラクティブなコントロールに使用します。 `role="checkbox"` を含む要素には、チェックボックスの状態を支援技術に公開するための `aria-checked` 属性も含める必要があります。
+
+```html
+
+ Remember my preferences
+```
+
+ARIA の第一のルールは、ネイティブな HTML の要素や属性に必要としている意味論と振る舞いがある場合、要素を転用して ARIA を追加する代わりにネイティブなものを使用することです。 次のように、代わりに [` `](/ja/docs/Web/HTML/Element/input/checkbox) のネイティブな [HTML チェックボックス](/ja/docs/Web/HTML/Element/input/checkbox)を使用してください。 これは、必要なすべての機能をネイティブに提供します。
+
+```html
+
+Remember my preferences
+```
+
+## 説明
+
+ネイティブな [HTML チェックボックス](/ja/docs/Web/HTML/Element/input/checkbox)のフォームコントロールは、2 つのチェックされた (checked) 状態(「チェックされた」または「チェックされていない」)のみを持つことができ、不確定な ([indeterminate](/ja/docs/Web/HTML/Element/input/checkbox#indeterminate_state_checkboxes)) 状態は JavaScript を介して設定可能です。 同様に、`role="checkbox"` を持つ要素は、`aria-checked` 属性を介して、`true`、`false`、または `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
+
+```html
+
+Remember my preferences
+```
+
+#### CSS
+
+```css
+[role="checkbox"] {
+ padding:5px;
+}
+
+[aria-checked="true"]::before {
+ content: "[x]";
+}
+
+[aria-checked="false"]::before {
+ content: "[ ]";
+}
+```
+
+#### JavaScript
+
+```js
+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`) ロールが要素に追加された場合、ユーザーエージェントは次のことを行う必要があります。
+
+- オペレーティングシステムのアクセシビリティ API でチェックボックスロールを持つものとして要素を公開します。
+- `aria-checked` 値が変更されたら、アクセス可能な状態変更イベントを送信します。
+
+支援技術製品は次のことを行う必要があります。
+
+- スクリーンリーダーは、要素をチェックボックスとしてアナウンスし、任意でアクティブ化する方法を説明する必要があります。
+
+> **Note:** **注:** 支援技術がこの手法をどのように扱うべきかについては、意見が異なる場合があります。 上記の情報はそれらの意見の 1 つであり、したがって規範的ではありません。
+
+## ベストプラクティス
+
+ARIA の第一のルールは、ネイティブな HTML の要素や属性に必要としている意味論と振る舞いがある場合、要素を転用して ARIA のロール、ステート、またはプロパティを追加してアクセス可能にする代わりに、ネイティブなものを使用することです。 そのため、JavaScript と ARIA でチェックボックスの機能を再作成するのではなく、フォームコントロールを使用してネイティブな [HTML チェックボックス](/ja/docs/Web/HTML/Element/input/checkbox)を使用することをお勧めします。
+
+## 関連情報
+
+- [` `](/ja/docs/Web/HTML/Element/input/checkbox)
+- [ARIA: radio ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Radio_Role)
+- [ARIA: menuitem ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Menuitem_Role)
+- [ARIA: menuitemcheckbox ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Menuitemcheckbox_Role)
+- [ARIA: menuitemradio ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Menuitemradio_Role)
+- [ARIA: switch ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Switch_role)
+- [ARIA: option ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Option_role)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/complementary_role/index.html b/files/ja/web/accessibility/aria/roles/complementary_role/index.html
deleted file mode 100644
index 5202550e817d25..00000000000000
--- a/files/ja/web/accessibility/aria/roles/complementary_role/index.html
+++ /dev/null
@@ -1,121 +0,0 @@
----
-title: 'ARIA: complementary ロール'
-slug: Web/Accessibility/ARIA/Roles/Complementary_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Complementary_role
----
-補足 (complementary
) ランドマークロール は、メインコンテンツに関連する補助セクションを指定するために使用され、しかも分離しても単独で成り立つことができます。 これらのセクションは、サイドバーやコールアウトボックスとして表示されることがよくあります。 可能であれば、代わりに HTML の {{htmlelement("aside")}} 要素を使用してください。
-
-<div role="complementary">
- <h2>私たちのパートナー</h2>
- <!-- 補足的なセクションのコンテンツ -->
-</div>
-
-
-これはイベントのスポンサーへのリンクを含むサイドバーです。
-
-説明
-
-補足 (complementary
) ロールはランドマークロール です。 ランドマーク (landmark) は、支援技術によって使用され、文書の大きなセクションを迅速に識別してナビゲートすることができます。 補足 (complementary
) ランドマークロールを持つコンテナー内にリストされたコンテンツは、文書のメインのコンテンツから分離されている場合でも意味をなすべきです。
-
-
-
{{htmlelement("aside")}} 要素を使用すると、自動的にセクションが補足 (complementary
) ロールを持つことを伝えます。 開発者は、ARIA を使用するよりも正しい意味論の HTML 要素を常に使用するべきです。
-
-
-例
-
-<div role="complementary">
- <h2>トレンド記事</h2>
- <ul>
- <li><a href="#">あなたがすべての気分を感じさせる18のツイート</a></li>
- <li><a href="#">私は完璧な昼食用の容器を見つけたので、それを探すのを停止する</a></li>
- <li><a href="#">最終的に私たちがこれらの食品と呼ぶべきものを決定する時が来た</a></li>
- <li><a href="#">Tumblr で今週見た17の本当に良い投稿</a></li>
- <li><a href="#">10の親のハック、私たちはそれらを試したので、働くことを知っている</a></li>
- </ul>
- </div>
-
-
-アクセシビリティに関する懸念
-
-ランドマークロール は、文書のより大きな全体的なセクションを識別するために、控えめに使用することを意図しています。 あまりにも多くのランドマークロールを使用すると、スクリーンリーダーで「ノイズ」が発生し、ページ全体のレイアウトを理解することが難しくなります。
-
-ベストプラクティス
-
-好ましい HTML
-
-{{htmlelement("aside")}} 要素を使用すると、自動的にセクションが補足 (complementary
) ロールを持つことを伝えます。 可能であれば、それを代わりに使用することをお勧めします。
-
-ランドマークのラベル付け
-
-複数のランドマーク
-
-文書に複数の補足 (complementary
) ランドマークロールや {{htmlelement("aside")}} 要素がある場合は、各ランドマークに aria-label
属性を使用してラベルを付けるか、それらに適切な説明的なタイトルがある場合は、aria-labelledby
属性を使用してそれを指してください。 このラベルで、支援技術のユーザーがそれぞれのランドマークの目的をすばやく理解できるようになります。
-
-<aside aria-label="使用上の注意">
- <!-- コンテンツ -->
-</aside>
-
-...
-
-<aside id="sidebar" aria-label="スポンサー">
- <!-- コンテンツ -->
-</aside>
-
-
-冗長な説明
-
-スクリーンリーダーは、ランドマークロールの種類をアナウンスします。 このため、ラベルでランドマークが何であるかを説明する必要はありません。 例えば、 aria-label="サイドバー"
の role="complementary"
の宣言は、"complementary サイドバー" として重複してアナウンスされることがあります。
-
-追加された利点
-
-ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、非スクリーンリーダーユーザーでも文書の大きなセクションを素早く識別してナビゲートできます。
-
-
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#complementary","ARIA: Complementary role")}}
- {{Spec2('ARIA')}}
-
-
- {{SpecName("ARIA Authoring Practices","#aria_lh_complementary","Complementary landmark role")}}
- {{Spec2('ARIA Authoring Practices')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-TBD
-
-関連情報
-
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/complementary_role/index.md b/files/ja/web/accessibility/aria/roles/complementary_role/index.md
new file mode 100644
index 00000000000000..9276b9a9e1026d
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/complementary_role/index.md
@@ -0,0 +1,101 @@
+---
+title: 'ARIA: complementary ロール'
+slug: Web/Accessibility/ARIA/Roles/Complementary_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Complementary_role
+---
+補足 (`complementary`) [ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、メインコンテンツに関連する補助セクションを指定するために使用され、しかも分離しても単独で成り立つことができます。 これらのセクションは、サイドバーやコールアウトボックスとして表示されることがよくあります。 可能であれば、代わりに HTML の {{htmlelement("aside")}} 要素を使用してください。
+
+```html
+
+
私たちのパートナー
+
+
+```
+
+これはイベントのスポンサーへのリンクを含むサイドバーです。
+
+## 説明
+
+補足 (`complementary`) ロールは[ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)です。 ランドマーク (landmark) は、支援技術によって使用され、文書の大きなセクションを迅速に識別してナビゲートすることができます。 補足 (`complementary`) ランドマークロールを持つコンテナー内にリストされたコンテンツは、文書のメインのコンテンツから分離されている場合でも意味をなすべきです。
+
+> **Note:** {{htmlelement("aside")}} 要素を使用すると、自動的にセクションが補足 (`complementary`) ロールを持つことを伝えます。 開発者は、ARIA を使用するよりも正しい意味論の HTML 要素を常に使用するべきです。
+
+## 例
+
+```html
+
+```
+
+## アクセシビリティに関する懸念
+
+[ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、文書のより大きな全体的なセクションを識別するために、控えめに使用することを意図しています。 あまりにも多くのランドマークロールを使用すると、スクリーンリーダーで「ノイズ」が発生し、ページ全体のレイアウトを理解することが難しくなります。
+
+## ベストプラクティス
+
+### 好ましい HTML
+
+{{htmlelement("aside")}} 要素を使用すると、自動的にセクションが補足 (`complementary`) ロールを持つことを伝えます。 可能であれば、それを代わりに使用することをお勧めします。
+
+### ランドマークのラベル付け
+
+#### 複数のランドマーク
+
+文書に複数の補足 (`complementary`) ランドマークロールや {{htmlelement("aside")}} 要素がある場合は、各ランドマークに `aria-label` 属性を使用してラベルを付けるか、それらに適切な説明的なタイトルがある場合は、`aria-labelledby` 属性を使用してそれを指してください。 このラベルで、支援技術のユーザーがそれぞれのランドマークの目的をすばやく理解できるようになります。
+
+```html
+
+
+...
+
+
+```
+
+#### 冗長な説明
+
+スクリーンリーダーは、ランドマークロールの種類をアナウンスします。 このため、ラベルでランドマークが何であるかを説明する必要はありません。 例えば、 `aria-label="サイドバー"` の `role="complementary"` の宣言は、"complementary サイドバー" として重複してアナウンスされることがあります。
+
+### 追加された利点
+
+ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、非スクリーンリーダーユーザーでも文書の大きなセクションを素早く識別してナビゲートできます。
+
+- [ランドマークブラウザー拡張](https://matatk.agrip.org.uk/landmarks/) (英語)
+
+## 仕様
+
+| 仕様 | 状態 |
+| -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
+| {{SpecName("ARIA","#complementary","ARIA: Complementary role")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#aria_lh_complementary","Complementary landmark role")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## スクリーンリーダーのサポート
+
+TBD
+
+## 関連情報
+
+- {{htmlelement("aside")}}: 余談要素
+- [complementary (role): Accessible Rich Internet Applications (WAI-ARIA) 1.1](https://www.w3.org/TR/wai-aria/#complementary)
+- [HTML のセクションとアウトラインの使用](/ja/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines)
+- [ランドマークロール: ARIA を使用する: ロール、ステート、プロパティ](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)
+- [Using WAI-ARIA Landmarks – 2013 | The Paciello Group](https://developer.paciellogroup.com/blog/2013/02/using-wai-aria-landmarks-2013/)
+- [Accessible Landmarks | scottohara.me](https://www.scottohara.me/blog/2018/03/03/landmarks.html)
+- [Aside Revisited | HTML5 Doctor](http://html5doctor.com/aside-revisited/)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/contentinfo_role/index.html b/files/ja/web/accessibility/aria/roles/contentinfo_role/index.html
deleted file mode 100644
index a0692abeb26730..00000000000000
--- a/files/ja/web/accessibility/aria/roles/contentinfo_role/index.html
+++ /dev/null
@@ -1,152 +0,0 @@
----
-title: 'ARIA: contentinfo ロール'
-slug: Web/Accessibility/ARIA/Roles/Contentinfo_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Contentinfo_role
----
-コンテンツ情報 (contentinfo
) ランドマークロール は、著作権情報、ナビゲーションリンク、プライバシーステートメントなど、ウェブサイトの各ページの最後に繰り返される情報を識別するために使用します。 このセクションは一般的にフッターと呼ばれます。
-
-<div role="contentinfo">
- <h2>フッター</h2>
- <!-- フッターのコンテンツ -->
-</div>
-
-
-これはウェブサイトのフッターです。 代わりに {{htmlelement("footer")}} 要素を使用することをお勧めします。
-
-<footer>
- <h2>フッター</h2>
- <!-- フッターのコンテンツ -->
-</footer>
-
-
-説明
-
-コンテンツ情報 (contentinfo
) ロールは、ページフッターを識別するためのランドマーク です。 ランドマークは、支援技術によって使用され、文書の大きなセクションを迅速に識別してナビゲートすることができます。 ページには、1ページあたり1つのトップレベルのコンテンツ情報 (contentinfo
) ランドマークロールのみが含まれているべきです。
-
-各ページには、{{htmlelement("footer")}} 要素を使用するか、または role="contentinfo"
を宣言することによって作成されたコンテンツ情報 (contentinfo
) ランドマークが1つだけ含まれているべきです。 {{htmlelement("iframe")}} 要素を介して埋め込まれたコンテンツに存在するコンテンツ情報 (contentinfo
) ランドマークは、この制限に含まれません。
-
-
-
{{htmlelement("footer")}} 要素を使用すると、自動的にセクションがコンテンツ情報 (contentinfo
) ロールを持つことを伝えます。 開発者は、ARIA を使用するよりも正しい意味論の HTML 要素を常に使用するべきで、念のため VoiceOver の既知の問題をテスト してください。
-
-
-例
-
-<body>
-
- <!-- 他のページのコンテンツ -->
-
- <div role="contentinfo">
- <h2>MDN Web Docs</h2>
- <ul>
- <li><a href="#">ウェブ技術</a></li>
- <li><a href="#">ウェブ開発について学ぶ</a></li>
- <li><a href="#">MDN について</a></li>
- <li><a href="#">フィードバック</a></li>
- </ul>
- <p>© 2005-2018 Mozilla および各貢献者 コンテンツは <a href="#">これらのライセンス</a> の下で公開されています。</p>
- </div>
-</body>
-
-
-アクセシビリティに関する懸念
-
-控えめに使用する
-
-ランドマークロール は、文書のより大きな全体的なセクションを識別することを意図しています。 あまりにも多くのランドマークロールを使用すると、スクリーンリーダーで「ノイズ」が発生し、ページ全体のレイアウトを理解することが難しくなります。
-
-ページあたり1つの contentinfo
ランドマーク
-
-<body>
要素
-
-{{htmlelement("body")}} 要素の直接の子孫として使用し、文書ごとに1つだけコンテンツ情報 (contentinfo
) ランドマークが存在するべきです。
-
-
-
-文書のフッターの中に追加の {{htmlelement("footer")}} 要素やコンテンツ情報 (contentinfo
) ランドマークをネストしないでください。 代わりに、他のコンテンツセクショニング要素 を使用してください。
-
-ランドマークのラベル付け
-
-複数のランドマーク
-
-文書に複数のコンテンツ情報 (contentinfo
) ランドマークロールや {{htmlelement("footer")}} 要素がある場合は、各ランドマークの aria-label
属性でラベルを指定します。 このラベルで、支援技術のユーザーがそれぞれのランドマークの目的をすばやく理解することができます。
-
-<body>
-
- ...
-
- <article>
- <h2>毎日パッタイ</h2>
- <!-- 記事のコンテンツ -->
- <footer aria-label="毎日パッタイのメタデータ">
- <p><a href="#">リサ</a>によって<time datetime="2018-09-23 12:17">5月16日</time>に投稿されました。</p>
- </footer>
- </article>
-
- ...
-
- <footer aria-label="フッター">
- <!-- フッターのコンテンツ -->
- </footer>
-</body>
-
-冗長な説明
-
-スクリーンリーダーは、ランドマークロールの種類をアナウンスします。 このため、ラベルでランドマークが何であるかを説明する必要はありません。 例えば、aria-label="フッター"
の role="contentinfo"
の宣言は、"contentinfo フッター" として重複してアナウンスされることがあります。
-
-ベストプラクティス
-
-好ましい HTML
-
-{{htmlelement("body")}} 要素の直接の子孫である場合、{{htmlelement("footer")}} 要素を使用すると、自動的にセクションがコンテンツ情報 (contentinfo
) ロールを持つことを伝えます (VoiceOver の既知の問題 は別として)。 可能であれば、代わりに <footer>
を使用することをお勧めします。 <article>
、<aside>
、<main>
、<nav>
、<section>
内にネストされた <footer>
要素は、コンテンツ情報 (contentinfo
) とはみなされないことに注意してください。
-
-追加された利点
-
-ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、非スクリーンリーダーユーザーは文書の大きなセクションを素早く識別してナビゲートできます。
-
-
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#contentinfo","contentinfo landmark role")}}
- {{Spec2('ARIA')}}
-
-
- {{SpecName("ARIA Authoring Practices","#aria_lh_contentinfo","contentinfo landmark role")}}
- {{Spec2('ARIA Authoring Practices')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-関連情報
-
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/contentinfo_role/index.md b/files/ja/web/accessibility/aria/roles/contentinfo_role/index.md
new file mode 100644
index 00000000000000..4c28910e8e72fb
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/contentinfo_role/index.md
@@ -0,0 +1,134 @@
+---
+title: 'ARIA: contentinfo ロール'
+slug: Web/Accessibility/ARIA/Roles/Contentinfo_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Contentinfo_role
+---
+コンテンツ情報 (`contentinfo`) [ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、著作権情報、ナビゲーションリンク、プライバシーステートメントなど、ウェブサイトの各ページの最後に繰り返される情報を識別するために使用します。 このセクションは一般的にフッターと呼ばれます。
+
+```html
+
+
フッター
+
+
+```
+
+これはウェブサイトのフッターです。 代わりに {{htmlelement("footer")}} 要素を使用することをお勧めします。
+
+```html
+
+```
+
+## 説明
+
+コンテンツ情報 (`contentinfo`) ロールは、ページフッターを識別するための[ランドマーク](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)です。 ランドマークは、支援技術によって使用され、文書の大きなセクションを迅速に識別してナビゲートすることができます。 ページには、1 ページあたり 1 つのトップレベルのコンテンツ情報 (`contentinfo`) ランドマークロールのみが含まれているべきです。
+
+各ページには、{{htmlelement("footer")}} 要素を使用するか、または `role="contentinfo"` を宣言することによって作成されたコンテンツ情報 (`contentinfo`) ランドマークが 1 つだけ含まれているべきです。 {{htmlelement("iframe")}} 要素を介して埋め込まれたコンテンツに存在するコンテンツ情報 (`contentinfo`) ランドマークは、この制限に含まれません。
+
+> **Note:** {{htmlelement("footer")}} 要素を使用すると、自動的にセクションがコンテンツ情報 (`contentinfo`) ロールを持つことを伝えます。 開発者は、ARIA を使用するよりも正しい意味論の HTML 要素を常に使用するべきで、念のため VoiceOver の[既知の問題をテスト](/ja/docs/Web/HTML/Element/footer#accessibility_concerns)してください。
+
+## 例
+
+```html
+
+
+
+
+
+
MDN Web Docs
+
+
© 2005-2018 Mozilla および各貢献者 コンテンツは これらのライセンス の下で公開されています。
+
+
+```
+
+## アクセシビリティに関する懸念
+
+### 控えめに使用する
+
+[ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、文書のより大きな全体的なセクションを識別することを意図しています。 あまりにも多くのランドマークロールを使用すると、スクリーンリーダーで「ノイズ」が発生し、ページ全体のレイアウトを理解することが難しくなります。
+
+### ページあたり 1 つの `contentinfo` ランドマーク
+
+#### `` 要素
+
+{{htmlelement("body")}} 要素の直接の子孫として使用し、文書ごとに 1 つだけコンテンツ情報 (`contentinfo`) ランドマークが存在するべきです。
+
+#### 巨大フッター
+
+文書のフッターの中に追加の {{htmlelement("footer")}} 要素やコンテンツ情報 (`contentinfo`) ランドマークをネストしないでください。 代わりに、他の[コンテンツセクショニング要素](/ja/docs/Web/HTML/Element#content_sectioning)を使用してください。
+
+### ランドマークのラベル付け
+
+#### 複数のランドマーク
+
+文書に複数のコンテンツ情報 (`contentinfo`) ランドマークロールや {{htmlelement("footer")}} 要素がある場合は、各ランドマークの `aria-label` 属性でラベルを指定します。 このラベルで、支援技術のユーザーがそれぞれのランドマークの目的をすばやく理解することができます。
+
+```html
+
+
+ ...
+
+
+ 毎日パッタイ
+
+
+
+
+ ...
+
+
+
+```
+
+#### 冗長な説明
+
+スクリーンリーダーは、ランドマークロールの種類をアナウンスします。 このため、ラベルでランドマークが何であるかを説明する必要はありません。 例えば、`aria-label="フッター"` の `role="contentinfo"` の宣言は、"contentinfo フッター" として重複してアナウンスされることがあります。
+
+## ベストプラクティス
+
+### 好ましい HTML
+
+{{htmlelement("body")}} 要素の直接の子孫である場合、{{htmlelement("footer")}} 要素を使用すると、自動的にセクションがコンテンツ情報 (`contentinfo`) ロールを持つことを伝えます (VoiceOver の[既知の問題](/ja/docs/Web/HTML/Element/footer#accessibility_concerns)は別として)。 可能であれば、代わりに `` を使用することをお勧めします。 ``、``、``、``、`` 内にネストされた `` 要素は、コンテンツ情報 (`contentinfo`) とはみなされないことに注意してください。
+
+### 追加された利点
+
+ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、非スクリーンリーダーユーザーは文書の大きなセクションを素早く識別してナビゲートできます。
+
+- [ランドマークブラウザー拡張](https://matatk.agrip.org.uk/landmarks/) (英語)
+
+## 仕様
+
+| 仕様 | 状態 |
+| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------ |
+| {{SpecName("ARIA","#contentinfo","contentinfo landmark role")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#aria_lh_contentinfo","contentinfo landmark role")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## スクリーンリーダーのサポート
+
+## 関連情報
+
+- {{htmlelement("footer")}}: フッター要素
+- [contentinfo (role): Accessible Rich Internet Applications (WAI-ARIA) 1.1](https://www.w3.org/TR/wai-aria/#contentinfo)
+- [HTML のセクションとアウトラインの使用](/ja/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines)
+- [ランドマークロール: ARIA を使用する: ロール、ステート、プロパティ](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)
+- [Using WAI-ARIA Landmarks – 2013 | The Paciello Group](https://developer.paciellogroup.com/blog/2013/02/using-wai-aria-landmarks-2013/)
+- [Accessible Landmarks | scottohara.me](https://www.scottohara.me/blog/2018/03/03/landmarks.html)
+- [The Footer Element Update | HTML5 Doctor](http://html5doctor.com/the-footer-element-update/)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/dialog_role/index.html b/files/ja/web/accessibility/aria/roles/dialog_role/index.html
deleted file mode 100644
index edd173889f568b..00000000000000
--- a/files/ja/web/accessibility/aria/roles/dialog_role/index.html
+++ /dev/null
@@ -1,155 +0,0 @@
----
-title: 'ARIA: dialog ロール'
-slug: Web/Accessibility/ARIA/Roles/dialog_role
-tags:
- - ARIA
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/dialog_role
----
-ダイアログ (dialog
) ロールは、ウェブアプリケーションやウェブページの残りの部分からコンテンツや UI を分離する HTML ベースのアプリケーションのダイアログやウィンドウをマークアップするために使用します。 ダイアログは通常、オーバーレイを使用して残りのページコンテンツの上に配置されます。 ダイアログはノンモーダル (ダイアログ外のコンテンツともやりとり可能) またはモーダル (ダイアログ内のコンテンツのみとやりとり可能) のいずれかになります。
-
-<div role="dialog" aria-labelledby="dialog1Title" aria-describedby="dialog1Desc" >
- <h2 id="dialog1Title" >あなたの個人情報が更新されました</h2>
- <p id="dialog1Desc" >情報は、ユーザーアカウントのセクションでいつでも変更できます。</p>
- <button>閉じる</button>
-</div>
-
-説明
-
-ダイアログ要素をダイアログ (dialog
) ロールでマークアップすると、支援技術がダイアログのコンテンツをページコンテンツの残りの部分からグループ化して分離されたものとして識別するのに役立ちます。 ただし、role="dialog"
だけを追加するだけでは、ダイアログをアクセス可能にするには不十分です。 さらに、次のことを行う必要があります。
-
-
- ダイアログには適切なラベルを付ける必要があります。
- キーボードのフォーカスを正しく管理する必要があります。
-
-
-以下のセクションでは、これら2つの要件をどのように満たすことができるかについて説明します。
-
-ラベル付け
-
-ダイアログ自体がフォーカスを受け取れる必要はありませんが、それでもラベルを付ける必要があります。 ダイアログに与えられたラベルは、ダイアログ内のインタラクティブコントロールのコンテキスト情報を提供します。 つまり、ダイアログのラベルは、その内部のコントロールのグループ化ラベルのように機能します (<legend>
要素が <fieldset>
要素内のコントロールのグループ化ラベルを提供する方法と同様です)。
-
-ダイアログにすでに表示されているタイトルバーがある場合、そのバーの中のテキストを使用してダイアログ自体にラベルを付けることができます。 これを達成する最善の方法は、role="dialog"
要素に aria-labelledby
属性を使用することです。 さらに、ダイアログがダイアログタイトル以外に追加の説明テキストを含んでいる場合、このテキストは aria-describedby
属性を使用してダイアログに関連付けることができます。 このアプローチは、次のコードスニペットに示されています。
-
-<div role="dialog" aria-labelledby="dialog1Title" aria-describedby="dialog1Desc" >
- <h2 id="dialog1Title" >あなたの個人情報が更新されました</h2>
- <p id="dialog1Desc" >情報は、ユーザーアカウントのセクションでいつでも変更できます。</p>
- <button>閉じる</button>
-</div>
-
-
-
-なお、非仮想モードで動作するスクリーンリーダーが認識するために、ダイアログのタイトルと説明のテキストがフォーカス可能である必要はありません。 ARIA のダイアログロールとラベル付けの手法を組み合わせることで、スクリーンリーダーは、フォーカスがダイアログに移動したときにダイアログの情報をアナウンスするべきです。
-
-
-
-必要な JavaScript 機能
-
-
-
-フォーカス管理
-
-ダイアログには、キーボードフォーカスをどのように管理するべきかについて、次のような特有の要件があります。
-
-
- ダイアログは常に少なくとも1つのフォーカス可能なコントロールを持つべきです。 多くのダイアログでは、[閉じる]、[OK]、[キャンセル] などのボタンがあります。 ダイアログには、必要なコントロールに加えて、フォーカス可能な要素をいくつでも含めることができ、フォーム全体やタブのような他のコンテナーウィジェットさえも含めることができます。
- ダイアログが画面に表示されたら、キーボードのフォーカスを、(そのコントロールはダイアログの目的に依存する) ダイアログ内のデフォルトのフォーカス可能なコントロールに移動するべきです。 基本的なメッセージのみを提供するダイアログでは、たぶん [OK] ボタンになります。 フォームを含むダイアログでは、たぶんフォームの最初のフィールドになります。
- ダイアログが閉じられた後、キーボードフォーカスは、ダイアログに移動する前の位置に戻すべきです。 それ以外の場合は、フォーカスをページの先頭に落とすことができます。
- ほとんどのダイアログでは、ダイアログのタブ順序が折り返されることが求められる振る舞いです。 つまり、ユーザーがダイアログ内のフォーカス可能な要素をタブで移動していくと、最後のものに達した後、最初のフォーカス可能な要素にフォーカスが移ります。 言い換えれば、タブ順序は、ダイアログによってダイアログ内に含まれているべきです。
- ダイアログを移動やサイズ変更できる場合、マウスユーザーだけでなくキーボードユーザーもこれらの操作を実行できる必要があります。 同様に、ダイアログがツールバーやコンテキストメニューのような特別な機能を提供する場合、これらはキーボードユーザーも到達可能で操作可能である必要があります。
- ダイアログはモーダル (modal) またはノンモーダル (non-modal、モードレス (modeless) とも) にすることができます。 モーダルダイアログが画面に表示されている時、ダイアログ外にあるページコンテンツとやりとりすることはできません。 つまり、モーダルダイアログが表示されている限り、メインアプリケーションの UI やページコンテンツは一時的に無効になっているとみなされます。 ノンモーダルダイアログでは、ダイアログが表示されている間もダイアログ外のコンテンツとやりとりすることが可能です。 ノンモーダルダイアログでは、開いているダイアログとメインページの間でフォーカスを移動できるグローバルなキーボードショートカットが必要なことに注意してください。
-
-
-関連する ARIA のロール、ステート、プロパティ
-
-
- aria-labelledby
- ダイアログにラベルを付けるには、この属性を使用します。 多くの場合、aria-labelledby
属性の値は、ダイアログのタイトルに使用される要素の id になります。
- aria-describedby
- この属性を使用して、ダイアログの内容を説明します。
-
-
-ユーザーエージェントと支援技術への影響
-
-ダイアログ (dialog
) ロールが使用されるとき、ユーザーエージェントは以下を行うべきです。
-
-
- オペレーティングシステムのアクセシビリティ API でダイアログとして要素を公開します。
-
-
-ダイアログが正しくラベル付けされ、フォーカスがダイアログ内の要素 (多くの場合、ボタンなどのインタラクティブな要素) に移動された時、スクリーンリーダーは、フォーカスされた要素をアナウンスするとともに、ダイアログのアクセス可能なロール、名前、および任意で説明をアナウンスするべきです。
-
-注 : 支援技術がこの手法をどのように扱うべきかについての意見は異なる場合があり、アナウンスの順序は使用する支援技術によって異なる場合があります。 上記の情報はこれらの意見の1つであり、したがって規範的ではありません。
-
-例
-
-
-
- <div role="dialog" aria-labelledby="dialog1Title" aria-describedby="dialog1Desc">
- <h2 id="dialog1Title">加入申込書</h2>
- <p id="dialog1Desc">私たちは、この情報を第三者と共有することはありません。</p>
- <form>
- <p>
- <label for="firstName">名</label>
- <input id="firstName" type="text" />
- </p>
- <p>
- <label for="lastName">姓</label>
- <input id="lastName" type="text"/>
- </p>
- <p>
- <label for="interests">興味</label>
- <textarea id="interests"></textarea>
- </p>
- <p>
- <input type="checkbox" id="autoLogin"/>
- <label for="autoLogin">自動ログイン?</label>
- </p>
- <p>
- <input type="submit" value="情報を保存する"/>
- </p>
- </form>
- </div>
-
-動作する例
-
-
-
-注
-
-注 : キーボードユーザーがダイアログ外の要素にフォーカスを移動するのを防ぐことは可能ですが、スクリーンリーダーのユーザーは、スクリーンリーダーの仮想カーソルを使用してそのコンテンツにナビゲートできるかもしれません。 開発者は、モーダルダイアログがアクティブな間、モーダルダイアログ外のコンテンツに全てのユーザーがアクセスできないようにすることが重要です。
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#dialog","dialog")}}
- {{Spec2('ARIA')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-近日公開
-
-関連情報
-
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/dialog_role/index.md b/files/ja/web/accessibility/aria/roles/dialog_role/index.md
new file mode 100644
index 00000000000000..e5e25729741b45
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/dialog_role/index.md
@@ -0,0 +1,129 @@
+---
+title: 'ARIA: dialog ロール'
+slug: Web/Accessibility/ARIA/Roles/dialog_role
+tags:
+ - ARIA
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/dialog_role
+---
+ダイアログ ([`dialog`](https://www.w3.org/TR/2009/WD-wai-aria-20091215/roles#dialog)) ロールは、ウェブアプリケーションやウェブページの残りの部分からコンテンツや UI を分離する HTML ベースのアプリケーションのダイアログやウィンドウをマークアップするために使用します。 ダイアログは通常、オーバーレイを使用して残りのページコンテンツの上に配置されます。 ダイアログはノンモーダル (ダイアログ外のコンテンツともやりとり可能) またはモーダル (ダイアログ内のコンテンツのみとやりとり可能) のいずれかになります。
+
+```html
+
+
あなたの個人情報が更新されました
+
情報は、ユーザーアカウントのセクションでいつでも変更できます。
+
閉じる
+
+```
+
+## 説明
+
+ダイアログ要素をダイアログ (`dialog`) ロールでマークアップすると、支援技術がダイアログのコンテンツをページコンテンツの残りの部分からグループ化して分離されたものとして識別するのに役立ちます。 ただし、`role="dialog"` だけを追加するだけでは、ダイアログをアクセス可能にするには不十分です。 さらに、次のことを行う必要があります。
+
+- ダイアログには適切なラベルを付ける必要があります。
+- キーボードのフォーカスを正しく管理する必要があります。
+
+以下のセクションでは、これら 2 つの要件をどのように満たすことができるかについて説明します。
+
+#### ラベル付け
+
+ダイアログ自体がフォーカスを受け取れる必要はありませんが、それでもラベルを付ける必要があります。 ダイアログに与えられたラベルは、ダイアログ内のインタラクティブコントロールのコンテキスト情報を提供します。 つまり、ダイアログのラベルは、その内部のコントロールのグループ化ラベルのように機能します (`` 要素が ` ` 要素内のコントロールのグループ化ラベルを提供する方法と同様です)。
+
+ダイアログにすでに表示されているタイトルバーがある場合、そのバーの中のテキストを使用してダイアログ自体にラベルを付けることができます。 これを達成する最善の方法は、`role="dialog"` 要素に `aria-labelledby` 属性を使用することです。 さらに、ダイアログがダイアログタイトル以外に追加の説明テキストを含んでいる場合、このテキストは `aria-describedby` 属性を使用してダイアログに関連付けることができます。 このアプローチは、次のコードスニペットに示されています。
+
+```html
+
+
あなたの個人情報が更新されました
+
情報は、ユーザーアカウントのセクションでいつでも変更できます。
+
閉じる
+
+```
+
+> **Note:** なお、非仮想モードで動作するスクリーンリーダーが認識するために、ダイアログのタイトルと説明のテキストがフォーカス可能である必要はありません。 ARIA のダイアログロールとラベル付けの手法を組み合わせることで、スクリーンリーダーは、フォーカスがダイアログに移動したときにダイアログの情報をアナウンスするべきです。
+
+### 必要な JavaScript 機能
+
+#### フォーカス管理
+
+ダイアログには、キーボードフォーカスをどのように管理するべきかについて、次のような特有の要件があります。
+
+- ダイアログは常に少なくとも 1 つのフォーカス可能なコントロールを持つべきです。 多くのダイアログでは、\[閉じる]、\[OK]、\[キャンセル] などのボタンがあります。 ダイアログには、必要なコントロールに加えて、フォーカス可能な要素をいくつでも含めることができ、フォーム全体やタブのような他のコンテナーウィジェットさえも含めることができます。
+- ダイアログが画面に表示されたら、キーボードのフォーカスを、(そのコントロールはダイアログの目的に依存する) ダイアログ内のデフォルトのフォーカス可能なコントロールに移動するべきです。 基本的なメッセージのみを提供するダイアログでは、たぶん \[OK] ボタンになります。 フォームを含むダイアログでは、たぶんフォームの最初のフィールドになります。
+- ダイアログが閉じられた後、キーボードフォーカスは、ダイアログに移動する前の位置に戻すべきです。 それ以外の場合は、フォーカスをページの先頭に落とすことができます。
+- ほとんどのダイアログでは、ダイアログのタブ順序が折り返されることが求められる振る舞いです。 つまり、ユーザーがダイアログ内のフォーカス可能な要素をタブで移動していくと、最後のものに達した後、最初のフォーカス可能な要素にフォーカスが移ります。 言い換えれば、タブ順序は、ダイアログによってダイアログ内に含まれているべきです。
+- ダイアログを移動やサイズ変更できる場合、マウスユーザーだけでなくキーボードユーザーもこれらの操作を実行できる必要があります。 同様に、ダイアログがツールバーやコンテキストメニューのような特別な機能を提供する場合、これらはキーボードユーザーも到達可能で操作可能である必要があります。
+- ダイアログはモーダル (modal) またはノンモーダル (non-modal、モードレス (modeless) とも) にすることができます。 モーダルダイアログが画面に表示されている時、ダイアログ外にあるページコンテンツとやりとりすることはできません。 つまり、モーダルダイアログが表示されている限り、メインアプリケーションの UI やページコンテンツは一時的に無効になっているとみなされます。 ノンモーダルダイアログでは、ダイアログが表示されている間もダイアログ外のコンテンツとやりとりすることが可能です。 ノンモーダルダイアログでは、開いているダイアログとメインページの間でフォーカスを移動できるグローバルなキーボードショートカットが必要なことに注意してください。
+
+### 関連する ARIA のロール、ステート、プロパティ
+
+- `aria-labelledby`
+ - : ダイアログにラベルを付けるには、この属性を使用します。 多くの場合、`aria-labelledby` 属性の値は、ダイアログのタイトルに使用される要素の id になります。
+- `aria-describedby`
+ - : この属性を使用して、ダイアログの内容を説明します。
+
+### ユーザーエージェントと支援技術への影響
+
+ダイアログ (`dialog`) ロールが使用されるとき、ユーザーエージェントは以下を行うべきです。
+
+- オペレーティングシステムのアクセシビリティ API でダイアログとして要素を公開します。
+
+ダイアログが正しくラベル付けされ、フォーカスがダイアログ内の要素 (多くの場合、ボタンなどのインタラクティブな要素) に移動された時、スクリーンリーダーは、フォーカスされた要素をアナウンスするとともに、ダイアログのアクセス可能なロール、名前、および任意で説明をアナウンスするべきです。
+
+> **Note:** 支援技術がこの手法をどのように扱うべきかについての意見は異なる場合があり、アナウンスの順序は使用する支援技術によって異なる場合があります。 上記の情報はこれらの意見の 1 つであり、したがって規範的ではありません。
+
+## 例
+
+#### フォームを含むダイアログ
+
+```html
+
+
加入申込書
+
私たちは、この情報を第三者と共有することはありません。
+
+
+```
+
+#### 動作する例
+
+- [jQuery-UI ダイアログ](http://jqueryui.com/demos/dialog/)
+
+### 注
+
+> **Note:** キーボードユーザーがダイアログ外の要素にフォーカスを移動するのを防ぐことは可能ですが、スクリーンリーダーのユーザーは、スクリーンリーダーの仮想カーソルを使用してそのコンテンツにナビゲートできるかもしれません。 開発者は、モーダルダイアログがアクティブな間、モーダルダイアログ外のコンテンツに全てのユーザーがアクセスできないようにすることが重要です。
+
+## 仕様
+
+| 仕様 | 状態 |
+| ---------------------------------------------------- | ------------------------ |
+| {{SpecName("ARIA","#dialog","dialog")}} | {{Spec2('ARIA')}} |
+
+## スクリーンリーダーのサポート
+
+近日公開
+
+## 関連情報
+
+- [ARIA: alertdialog ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Alertdiialog_Role)
+- [alertdialog ロールの使用](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_alertdialog_role)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/document_role/index.html b/files/ja/web/accessibility/aria/roles/document_role/index.html
deleted file mode 100644
index 56f53c347b938b..00000000000000
--- a/files/ja/web/accessibility/aria/roles/document_role/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: 'ARIA: document ロール'
-slug: Web/Accessibility/ARIA/Roles/Document_Role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Document_Role
----
-複雑な複合ウィジェット やアプリケーション で一般的に使用される文書 (document
) ロールは、コンテキストを読み取りモードに切り替えることを支援技術を知らせることができます。 文書 (document
) ロールは、読み取りモードまたは閲覧モードを持つ支援技術に、この要素に含まれるコンテンツを文書モードを使用して読み取るように指示します。
-
-<div role="dialog">
- ...
- <div id="InfoText" role="document" tabindex="0">
- <p>いくつかの情報テキストがここに入ります。</p>
- </div>
- ...
- <button>閉じる</button>
-</div>
-
-
-この例は、いくつかのコントロールと、支援技術のユーザーがタブ移動で読むことができる情報テキストを含むセクションを備えたダイアログ ウィジェットを示しています。
-
-説明
-
-デフォルトでは、ウェブページは文書 (document、ドキュメント) として扱われ、支援技術 (AT) は、新しいウェブページに入るとき閲覧モードまたは読み取りモードにします。 このモードは、ウィジェットロールやアプリケーション (application
) ロールなど、さまざまなロールを通じて変更できます。 文書 (document
) ロールは、AT を閲覧モードまたは読み取りモードに戻します。
-
-一般的に、アプリケーションロールまたは他のインタラクティブなウィジェットロール内に配置される文書 (document
) ロールは、利用可能な場合、支援技術のユーザーが閲覧モードまたは仮想読み取りモードを使用して読むべきである複雑な複合ウィジェットのセクションを示すために使用します。
-
-読み取りモードを持つ AT は、ウィジェットロールまたはアプリケーションロールの設定を持つ要素を除くすべての要素に対して読み取りモードをデフォルトとしているため、文書ロールは、静的リッチテキストとして読むべきであるウィジェットまたはアプリケーション内のフォーカス可能な要素に対してのみ役立ちます。 ウィジェット内のテキストを含む要素に role="document"
と tabindex="0"
を追加すると、スクリーンリーダーのユーザーは Tab キーを押して文書要素にフォーカスを置き、スクリーンリーダーの読み取りカーソルでテキストを読むことができます。
-
-支援技術は、コンテキストを文書モードに戻すべきであり、場合によっては、親の動的コンテキスト用に配線されたコントロールから横取りすることで、上矢印 や下矢印 のキーボードイベントなどの標準入力イベントを再度有効にして、読み取りカーソルを制御します。
-
-記事 (article
) ロールとは対照的に、文書 (document
) ロールは、文書ロールを持つ他の要素との関係はなく、単にそれ含む複合ウィジェットとの関係があるだけです。 記事は関連記事を持つことができます。
-
-関連する WAI-ARIA のロール、ステート、プロパティ
-
-
- aria-expanded
- 文書要素が折りたたみ可能である場合は、true
または false
の値を含み、文書が現在展開されているか折りたたまれているかを示します。 他の値には、文書が折りたたまれないことを意味するデフォルトの undefined
が含まれます。
- tabindex="0"
- 支援技術のユーザーがそれにタブ移動してすぐに読み始められるように、それをフォーカス可能にするために使用します。
-
-
-キーボードインタラクション
-
-tabindex="0"
属性/値のペアを設定することで、要素をフォーカス可能にするべきです。 これにより、ユーザーはそれにタブ移動でき、自動的に読み取りモードが起動し、内容をすぐに読むことができるようになります。
-
-必要な JavaScript 機能
-
-なし (任意の属性が必要とする場合を除く。 例えば、文書 (document
) が折りたたみ可能である場合、aria-expanded
のステートと値を維持する必要があります。)
-
-例
-
-例として、Gmail と1つの会話ビューがあります。 GMail はウェブアプリケーションです。 Gmail の場合、ユーザーエージェントとのやりとりのほとんどがアプリケーションによって奪われます。 ただし、会話の主題を含む1つの会話の開始見出しにキーボードフォーカスが設定されている場合、スクリーンリーダーのユーザーは読み取りモードのコマンドを使用してメッセージを読んだり、展開したり、折りたたんだり、操作したりできます。 [戻る] ボタンをアクティブ化するか、関連するキーを押すことによって、フォーカスがメッセージリストに戻ると、アプリケーションとの直接やりとりモードが再び起動し、矢印 キーを使用してリスト内の別の会話に移動できます。
-
-ベストプラクティス
-
-tabindex
属性に値 0 を設定することにより、文書ロールを持つ項目がフォーカス可能であることを常に確認してください。 これにより、項目がタブ順序にも含まれるようになります。
-
-追加の利点
-
-文書ロールは、ユーザーがスクリーンリーダーの標準コマンドで読むべき内容であることを明確に示すことによって、支援技術の振る舞いを間接的に制御する簡単な方法です。
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#document","document")}}
- {{Spec2('ARIA')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-関連情報
-
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/document_role/index.md b/files/ja/web/accessibility/aria/roles/document_role/index.md
new file mode 100644
index 00000000000000..a6d4decb24ac65
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/document_role/index.md
@@ -0,0 +1,77 @@
+---
+title: 'ARIA: document ロール'
+slug: Web/Accessibility/ARIA/Roles/Document_Role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Document_Role
+---
+複雑な複合[ウィジェット](/ja/docs/Web/Accessibility/ARIA/Roles/widget_Role)や[アプリケーション](/ja/docs/Web/Accessibility/ARIA/Roles/Application_Role)で一般的に使用される文書 (`document`) ロールは、コンテキストを読み取りモードに切り替えることを支援技術を知らせることができます。 文書 (`document`) ロールは、読み取りモードまたは閲覧モードを持つ支援技術に、この要素に含まれるコンテンツを文書モードを使用して読み取るように指示します。
+
+```html
+
+```
+
+この例は、いくつかのコントロールと、支援技術のユーザーがタブ移動で読むことができる情報テキストを含むセクションを備えた[ダイアログ](/ja/docs/Web/Accessibility/ARIA/Roles/dialog_role)ウィジェットを示しています。
+
+## 説明
+
+デフォルトでは、ウェブページは文書 (document、ドキュメント) として扱われ、支援技術 (AT) は、新しいウェブページに入るとき閲覧モードまたは読み取りモードにします。 このモードは、ウィジェットロールやアプリケーション (`application`) ロールなど、さまざまなロールを通じて変更できます。 文書 (`document`) ロールは、AT を閲覧モードまたは読み取りモードに戻します。
+
+一般的に、アプリケーションロールまたは他のインタラクティブなウィジェットロール内に配置される文書 (`document`) ロールは、利用可能な場合、支援技術のユーザーが閲覧モードまたは仮想読み取りモードを使用して読むべきである複雑な複合ウィジェットのセクションを示すために使用します。
+
+読み取りモードを持つ AT は、ウィジェットロールまたはアプリケーションロールの設定を持つ要素を除くすべての要素に対して読み取りモードをデフォルトとしているため、文書ロールは、静的リッチテキストとして読むべきであるウィジェットまたはアプリケーション内のフォーカス可能な要素に対してのみ役立ちます。 ウィジェット内のテキストを含む要素に `role="document"` と `tabindex="0"` を追加すると、スクリーンリーダーのユーザーは Tab キーを押して文書要素にフォーカスを置き、スクリーンリーダーの読み取りカーソルでテキストを読むことができます。
+
+支援技術は、コンテキストを文書モードに戻すべきであり、場合によっては、親の動的コンテキスト用に配線されたコントロールから横取りすることで、上矢印 や下矢印 のキーボードイベントなどの標準入力イベントを再度有効にして、読み取りカーソルを制御します。
+
+記事 ([`article`](/ja/docs/Web/Accessibility/ARIA/Roles/Article_Role)) ロールとは対照的に、文書 (`document`) ロールは、文書ロールを持つ他の要素との関係はなく、単にそれ含む複合ウィジェットとの関係があるだけです。 記事は関連記事を持つことができます。
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+- `aria-expanded`
+ - : 文書要素が折りたたみ可能である場合は、`true` または `false` の値を含み、文書が現在展開されているか折りたたまれているかを示します。 他の値には、文書が折りたたまれないことを意味するデフォルトの `undefined` が含まれます。
+- `tabindex="0"`
+ - : 支援技術のユーザーがそれにタブ移動してすぐに読み始められるように、それをフォーカス可能にするために使用します。
+
+### キーボードインタラクション
+
+`tabindex="0"` 属性/値のペアを設定することで、要素をフォーカス可能にするべきです。 これにより、ユーザーはそれにタブ移動でき、自動的に読み取りモードが起動し、内容をすぐに読むことができるようになります。
+
+### 必要な JavaScript 機能
+
+なし (任意の属性が必要とする場合を除く。 例えば、文書 (`document`) が折りたたみ可能である場合、`aria-expanded` のステートと値を維持する必要があります。)
+
+## 例
+
+例として、Gmail と 1 つの会話ビューがあります。 GMail はウェブアプリケーションです。 Gmail の場合、ユーザーエージェントとのやりとりのほとんどがアプリケーションによって奪われます。 ただし、会話の主題を含む 1 つの会話の開始見出しにキーボードフォーカスが設定されている場合、スクリーンリーダーのユーザーは読み取りモードのコマンドを使用してメッセージを読んだり、展開したり、折りたたんだり、操作したりできます。 \[戻る] ボタンをアクティブ化するか、関連するキーを押すことによって、フォーカスがメッセージリストに戻ると、アプリケーションとの直接やりとりモードが再び起動し、矢印 キーを使用してリスト内の別の会話に移動できます。
+
+## ベストプラクティス
+
+`tabindex` 属性に値 0 を設定することにより、文書ロールを持つ項目がフォーカス可能であることを常に確認してください。 これにより、項目がタブ順序にも含まれるようになります。
+
+### 追加の利点
+
+文書ロールは、ユーザーがスクリーンリーダーの標準コマンドで読むべき内容であることを明確に示すことによって、支援技術の振る舞いを間接的に制御する簡単な方法です。
+
+## 仕様
+
+| 仕様 | 状態 |
+| -------------------------------------------------------- | ------------------------ |
+| {{SpecName("ARIA","#document","document")}} | {{Spec2('ARIA')}} |
+
+## スクリーンリーダーのサポート
+
+## 関連情報
+
+- [ARIA: widget ロール](/ja/docs/Web/Accessibility/ARIA/Roles/widget_Role)
+- [ARIA: application ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Application_Role)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/feed_role/index.html b/files/ja/web/accessibility/aria/roles/feed_role/index.html
deleted file mode 100644
index 579a6feb7f809a..00000000000000
--- a/files/ja/web/accessibility/aria/roles/feed_role/index.html
+++ /dev/null
@@ -1,120 +0,0 @@
----
-title: 'ARIA: feed ロール'
-slug: Web/Accessibility/ARIA/Roles/Feed_Role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Feed_Role
----
-フィード (feed
) は動的にスクロール可能な記事 (article
) のリスト (list
) で、ユーザーがスクロールすると記事がリストのどちらかの端から追加または削除されます。 フィード (feed
) により、スクリーンリーダーは閲覧モードの読み取りカーソルを使用して、リッチコンテンツのストリームを読み込みながらスクロールすることを可能にし、ユーザーが読むにつれてコンテンツをさらにロードすることで無限にスクロールし続けることができます。
-
-<section role="feed" aria-busy ="false">
- ...
- <article aria-posinset="427" aria-setsize="-1">...</article>
- <article aria-posinset="428" aria-setsize="-1">...</article>
- <article aria-posinset="429" aria-setsize="-1">...</article>
- ...
-</section>
-
-説明
-
-
-
フィードは、スクロール可能な記事 (article
) のリスト (list ) のためのページ構造であり、スクロールすることで、リストの先頭または末尾に記事が追加される場合があります。 このリストは、ウェブページと支援技術との間の相互運用契約を確立するもので、支援技術のユーザーが記事を読み、記事を前後にジャンプし、読み取りモードで新しい記事を確実にロードできるように、スクロールのインタラクションを管理します。 例としては、RSS フィード、ニュースフィード、Facebook (フェイスブック) 、Instagram (インスタグラム) 、Twitter (ツイッター) などのソーシャルメディアフィード、さらには電子商取引ページ上の関連商品のリストなどがあります。 これらのストリームは有限か無限であり、ユーザーがスクロールするにつれてコンテンツをさらにロードします。 フィードパターンを実装することで、スクリーンリーダーは読み取りモードでフィードコンテンツを確実に読み取り、ロードをトリガーすることができます。
-
-
フィード (feed
) は、コンテナ要素であり、その子は {{htmlelement("article")}} であるか、記事 (article
) ロールを持ちます。 フィード内の各記事は、tabindex
が 0 または -1 でフォーカス可能であるべきです。 記事またはその子孫要素にフォーカスが移ったときに、記事をスクロールして表示するべきです。 記事の追加がブラウザーのメインスレッドを占有する場合は、フィード自体に aria-busy="true"
を設定し、処理が終了したら必ず false
に戻すようにしてください。 そうしないと、ユーザーに更新が表示されない場合があります。
-
-
優れたユーザーエクスペリエンスを確保するため、フィード (feed
) の途中で記事を挿入または削除しないようにし、ユーザーがフィードの末端に到達する前に新しい記事をロードし、キーボードユーザーがフィード内をナビゲートできるように記事間でフォーカスを移動するためのキーボードコマンドを提供します。 下記のキーボードインタラクションを参照してください。
-
-
記事の数がわかっている場合は、記事自体に aria-setsize
を設定してください。 ただし、総数が非常に大きい場合、不明確な場合、または頻繁に変わる場合は、aria-setsize="-1"
を設定してフィードのサイズがわからないことを示します。
-
-
フィードパターンのもう1つの特徴は、斜め読みです。 フィード内の記事には、aria-label
によるアクセス可能な名前と aria-describeby
による説明の両方を含めることで、記事をナビゲートするときに、ラベルの後にどの要素を話すべきかをスクリーンリーダーに提案することができます。 タイトルと主要コンテンツを提供する記事内の要素を特定することで、支援技術は、ユーザが記事から記事へとジャンプし、読みたい記事を効率的に見分けることを可能にする機能を提供できます。
-
-
フィードパターンは、ウェブページと支援技術の間に次の相互運用性に関する合意を確立することによって、信頼できる支援技術の読み取りモードでのインタラクションを可能にします。
-
-
- フィードのコンテキストでは、ウェブページのコードは次の責任を負います。
-
- どの記事に DOM フォーカスが含まれているかに基づいて、コンテンツを適切に視覚的にスクロールします。
- どの記事に DOM フォーカスが含まれているかに基づいて、フィード記事をロードまたは削除します。
-
-
- フィードのコンテキストでは、読み取りモードを持つ支援技術は次の責任を負います。
-
- 記事要素またはその子孫の1つに DOM フォーカスがあることを保証することで、どの記事に読み取りカーソルがあるかを示します。
- DOM フォーカスを次の記事および前の記事に移動するための読み取りモードキーを提供します。
- 読み取りカーソルと DOM フォーカスをフィードの終わりより後ろとフィードの始まりより前に移動するための読み取りモードキーを提供します。
-
-
-
-
-
キーボードインタラクション
-
-
フォーカスがフィード内にある場合は、次のような、または同様のインターフェイスをサポートすることをお勧めします。
-
-
- Page Down : 次の記事にフォーカスを移動します。
- Page Up : 前の記事にフォーカスを移動します。
- Control + End : フィードの後方で最初にフォーカス可能な要素にフォーカスを移動します。
- Control + Home : フィードの前方で最初にフォーカス可能な要素にフォーカスを移動します。
-
-
-
ブログ投稿のフィード内のコメントフィードなど、フィードがフィード内にネストしている場合、慣例では、Tab キーでネストしているフィードにタブ移動で入り、「外側の」記事からその記事内にネストしているフィードの最初の項目にナビゲートするための Alt + Page Down などの別のキーを提供します。 ネストしているフィードとメインフィードの間をナビゲートするには、Control + End で内側のフィードから外側のフィードの次の記事にフォーカスを移動します。
-
-
関連する WAI-ARIA のロール、ステート、プロパティ
-
-
- aria-label
- フィードに目に見えるタイトルがない場合、フィード (feed
) 要素は aria-label
で指定されたラベルを持ちます。 もしそうしている場合は、aria-labelledby
を参照してください。
- aria-labelledby
- フィードに目に見えるタイトルがある場合、フィード (feed
) 要素はタイトルを含む要素を参照する aria-labelledby
を持ちます。 そうでない場合は、aria-label
を追加してください。
- aria-busy
- 記事をフィード (feed
) に追加または削除しているときなど、忙しい場合は、更新操作中に aria-busy= "true"
を設定します。 操作が完了したら、必ず false
にリセットしてください。 そうしないと、変更結果を見ることができないかもしれません。
- article
- フィード内のコンテンツの各セクションは、{{htmlelement("article")}} または記事 (article
) ロールを持つ要素に含まれているべきです。 各記事 (article
) は、その記事のタイトルまたは識別ラベルとしての機能を果たすその他の子を参照する aria-labelledby
を持つべきです。 各記事は、好ましくは、その記事の主要コンテンツとしての機能を果たす記事内の1つ以上の要素を参照する aria-describedby
を持つべきです。 各記事 (article
) 要素は、フィード内の位置を表す値に設定された aria-posinset
と、ロード済みの記事の総数またはフィード内の総数を表す値のどちらかに設定された aria-setsize
を持ちます。 それは、どちらの値がユーザーにとってより役立つかによって異なります。 フィード内の総数がわからない場合は、aria-setsize="-1"
を設定してください。
-
-
-
-必要な JavaScript 機能
-
-なし (任意の属性が必要とする場合を除く。 例えば、必要に応じて更新操作中に aria-busy
を true
に設定し、完了したら false
に設定します。)
-
-例
-
-フィードパターンの実装例 (英語)
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#feed","feed")}}
- {{Spec2('ARIA')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-Coming soon
-
-関連情報
-
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/feed_role/index.md b/files/ja/web/accessibility/aria/roles/feed_role/index.md
new file mode 100644
index 00000000000000..4b5464781f80a0
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/feed_role/index.md
@@ -0,0 +1,106 @@
+---
+title: 'ARIA: feed ロール'
+slug: Web/Accessibility/ARIA/Roles/Feed_Role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Feed_Role
+---
+フィード (`feed`) は動的にスクロール可能な記事 (`article`) のリスト (`list`) で、ユーザーがスクロールすると記事がリストのどちらかの端から追加または削除されます。 フィード (`feed`) により、スクリーンリーダーは閲覧モードの読み取りカーソルを使用して、リッチコンテンツのストリームを読み込みながらスクロールすることを可能にし、ユーザーが読むにつれてコンテンツをさらにロードすることで無限にスクロールし続けることができます。
+
+```html
+
+ ...
+ ...
+ ...
+ ...
+ ...
+
+```
+
+## 説明
+
+フィードは、スクロール可能な記事 ([`article`](/ja/docs/Web/Accessibility/ARIA/Roles/Article_Role)) のリスト ([list](/ja/docs/Web/Accessibility/ARIA/Roles/List_role)) のためのページ構造であり、スクロールすることで、リストの先頭または末尾に記事が追加される場合があります。 このリストは、ウェブページと支援技術との間の相互運用契約を確立するもので、支援技術のユーザーが記事を読み、記事を前後にジャンプし、読み取りモードで新しい記事を確実にロードできるように、スクロールのインタラクションを管理します。 例としては、RSS フィード、ニュースフィード、Facebook (フェイスブック) 、Instagram (インスタグラム) 、Twitter (ツイッター) などのソーシャルメディアフィード、さらには電子商取引ページ上の関連商品のリストなどがあります。 これらのストリームは有限か無限であり、ユーザーがスクロールするにつれてコンテンツをさらにロードします。 フィードパターンを実装することで、スクリーンリーダーは読み取りモードでフィードコンテンツを確実に読み取り、ロードをトリガーすることができます。
+
+フィード (`feed`) は、コンテナ要素であり、その子は {{htmlelement("article")}} であるか、記事 (`article`) ロールを持ちます。 フィード内の各記事は、`tabindex` が 0 または -1 でフォーカス可能であるべきです。 記事またはその子孫要素にフォーカスが移ったときに、記事をスクロールして表示するべきです。 記事の追加がブラウザーのメインスレッドを占有する場合は、フィード自体に `aria-busy="true"` を設定し、処理が終了したら必ず `false` に戻すようにしてください。 そうしないと、ユーザーに更新が表示されない場合があります。
+
+優れたユーザーエクスペリエンスを確保するため、フィード (`feed`) の途中で記事を挿入または削除しないようにし、ユーザーがフィードの末端に到達する前に新しい記事をロードし、キーボードユーザーがフィード内をナビゲートできるように記事間でフォーカスを移動するためのキーボードコマンドを提供します。 下記のキーボードインタラクションを参照してください。
+
+記事の数がわかっている場合は、記事自体に `aria-setsize` を設定してください。 ただし、総数が非常に大きい場合、不明確な場合、または頻繁に変わる場合は、`aria-setsize="-1"` を設定してフィードのサイズがわからないことを示します。
+
+フィードパターンのもう 1 つの特徴は、斜め読みです。 フィード内の記事には、`aria-label` によるアクセス可能な名前と `aria-describeby` による説明の両方を含めることで、記事をナビゲートするときに、ラベルの後にどの要素を話すべきかをスクリーンリーダーに提案することができます。 タイトルと主要コンテンツを提供する記事内の要素を特定することで、支援技術は、ユーザが記事から記事へとジャンプし、読みたい記事を効率的に見分けることを可能にする機能を提供できます。
+
+フィードパターンは、ウェブページと支援技術の間に次の相互運用性に関する合意を確立することによって、信頼できる支援技術の読み取りモードでのインタラクションを可能にします。
+
+1. フィードのコンテキストでは、ウェブページのコードは次の責任を負います。
+
+ - どの記事に DOM フォーカスが含まれているかに基づいて、コンテンツを適切に視覚的にスクロールします。
+ - どの記事に DOM フォーカスが含まれているかに基づいて、フィード記事をロードまたは削除します。
+
+2. フィードのコンテキストでは、読み取りモードを持つ支援技術は次の責任を負います。
+
+ - 記事要素またはその子孫の 1 つに DOM フォーカスがあることを保証することで、どの記事に読み取りカーソルがあるかを示します。
+ - DOM フォーカスを次の記事および前の記事に移動するための読み取りモードキーを提供します。
+ - 読み取りカーソルと DOM フォーカスをフィードの終わりより後ろとフィードの始まりより前に移動するための読み取りモードキーを提供します。
+
+### キーボードインタラクション
+
+フォーカスがフィード内にある場合は、次のような、または同様のインターフェイスをサポートすることをお勧めします。
+
+- Page Down
+
+ : 次の記事にフォーカスを移動します。
+
+- Page Up
+
+ : 前の記事にフォーカスを移動します。
+
+- Control + End
+
+ : フィードの後方で最初にフォーカス可能な要素にフォーカスを移動します。
+
+- Control + Home
+
+ : フィードの前方で最初にフォーカス可能な要素にフォーカスを移動します。
+
+ブログ投稿のフィード内のコメントフィードなど、フィードがフィード内にネストしている場合、慣例では、Tab キーでネストしているフィードにタブ移動で入り、「外側の」記事からその記事内にネストしているフィードの最初の項目にナビゲートするための Alt + Page Down などの別のキーを提供します。 ネストしているフィードとメインフィードの間をナビゲートするには、Control + End で内側のフィードから外側のフィードの次の記事にフォーカスを移動します。
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+- aria-label
+ - : フィードに目に見えるタイトルがない場合、フィード (`feed`) 要素は [`aria-label`](https://w3c.github.io/aria/#aria-label) で指定されたラベルを持ちます。 もしそうしている場合は、`aria-labelledby` を参照してください。
+- aria-labelledby
+ - : フィードに目に見えるタイトルがある場合、フィード (`feed`) 要素はタイトルを含む要素を参照する [`aria-labelledby`](https://w3c.github.io/aria/#aria-labelledby) を持ちます。 そうでない場合は、`aria-label` を追加してください。
+- aria-busy
+ - : 記事をフィード (`feed`) に追加または削除しているときなど、忙しい場合は、更新操作中に `aria-busy="true"` を設定します。 操作が完了したら、必ず `false` にリセットしてください。 そうしないと、変更結果を見ることができないかもしれません。
+- article
+ - : フィード内のコンテンツの各セクションは、{{htmlelement("article")}} または記事 ([`article`](/ja/docs/Web/Accessibility/ARIA/Roles/Article_Role)) ロールを持つ要素に含まれているべきです。 各記事 (`article`) は、その記事のタイトルまたは識別ラベルとしての機能を果たすその他の子を参照する [`aria-labelledby`](https://w3c.github.io/aria/#aria-labelledby) を持つべきです。 各記事は、好ましくは、その記事の主要コンテンツとしての機能を果たす記事内の1つ以上の要素を参照する [`aria-describedby`](https://w3c.github.io/aria/#aria-describedby) を持つべきです。 各記事 (`article`) 要素は、フィード内の位置を表す値に設定された [`aria-posinset`](https://w3c.github.io/aria/#aria-posinset) と、ロード済みの記事の総数またはフィード内の総数を表す値のどちらかに設定された [`aria-setsize`](https://w3c.github.io/aria/#aria-setsize) を持ちます。 それは、どちらの値がユーザーにとってより役立つかによって異なります。 フィード内の総数がわからない場合は、`aria-setsize="-1"` を設定してください。
+
+### 必要な JavaScript 機能
+
+なし (任意の属性が必要とする場合を除く。 例えば、必要に応じて更新操作中に `aria-busy` を `true` に設定し、完了したら `false` に設定します。)
+
+## 例
+
+[フィードパターンの実装例](https://w3c.github.io/aria-practices/examples/feed/feed.html) (英語)
+
+## 仕様
+
+| 仕様 | 状態 |
+| ------------------------------------------------ | ------------------------ |
+| {{SpecName("ARIA","#feed","feed")}} | {{Spec2('ARIA')}} |
+
+## スクリーンリーダーのサポート
+
+Coming soon
+
+## 関連情報
+
+- HTML {{htmlelement("article")}} 要素
+- [HTML のリスト](/ja/docs/Web/HTML/Element/ul)
+- [ARIA: article ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Article_Role)
+- [ARIA: list ロール](/ja/docs/Web/Accessibility/ARIA/Roles/List_role)
+- [WAI-ARIA Authoring Practices](https://www.w3.org/TR/wai-aria-practices-1.1/#feed) — フィードデザインパターンの実装に関する詳細。 (英語)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/figure_role/index.html b/files/ja/web/accessibility/aria/roles/figure_role/index.html
deleted file mode 100644
index 705f8d207b7660..00000000000000
--- a/files/ja/web/accessibility/aria/roles/figure_role/index.html
+++ /dev/null
@@ -1,149 +0,0 @@
----
-title: 'ARIA: figure ロール'
-slug: Web/Accessibility/ARIA/Roles/Figure_Role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Figure_Role
----
-ARIA の図表 (figure
) ロールは、適切な意味論がまだ存在しないページコンテンツ内の図表を識別するために使用できます。 図表は一般的に、正規のテキストの流れとは異なる方法で情報を伝える、1つ以上の画像、コードスニペット、またはその他のコンテンツと見なされます。
-
-<div role="figure" aria-labelledby="caption">
- <img src="image.png"
- alt="画像の完全な代替説明">
- <p id="caption">図表 1: キャプション</p>
-</div>
-
-
-上記の例では、画像とキャプションという2つの別々のコンテンツ項目で構成される図表があります。 これは、role="figure"
を使用してコンテンツを図表として識別する {{htmlelement("div")}} 要素で囲まれています。
-
-図表の作成に ARIA を使用する代わりに、ネイティブで意味論的な HTML {{htmlelement("figure")}} 要素を {{htmlelement("figcaption")}} 要素と共に使用することを検討してください。 以下のベストプラクティス をご覧ください。
-
-説明
-
-(画像、動画、音声、コードスニペット、または他のコンテンツを含む可能性がある) 図表としてまとめて消費されるべきコンテンツは、 role="figure"
を使用して図表として識別できます。
-
-図表のコンテンツをどのように書くべきかについての鉄則はありません。 他のコンテンツと同様にアクセスできることを確認するべきです。 例えば、支援技術のユーザーによって知覚できることや、キーボードやマウスでナビゲートできることなどを確認します。
-
-さまざまな方法で、図表にキャプションやラベルを追加できます。 次のように、図表を説明するコンテンツを含む要素に ID を追加し、その ID を図表の適切な属性内で参照して、図表をラベルに関連付けることができます。
-
-<div role="figure" aria-labelledby="figure-1">
- ...
- <p id="figure-1">図表を説明するテキスト。</p>
-</div>
-
-
- テキストが簡潔なラベルである場合は、aria-labelledby
を使用してください。
- テキストがより長い説明である場合は、aria-describedby
を使用してください。
-
-
-ここでも、ARIA 無しで、HTML の {{htmlelement("figure")}} 要素と {{htmlelement("figcaption")}} 要素を使用して、意味論的に行うことができます。
-
-<figure>
- ...
- <figcaption>図表を説明するテキスト。</figcaption>
-</figure>
-
-ラベルを画面に表示したくないが、支援技術のユーザーにわかりやすいラベルを提供したい場合は、図表コンテナーに aria-label
属性を使用できます。
-
-<div role="figure" aria-label="図表を説明するテキスト。">
- ...
-</div>
-
-aria-label
は <figure>
と一緒に使うことができます。
-
-<figure aria-label="図表を説明するテキスト。">
- ...
-</figure>
-
-一般的には、本文から図表を参照するべきですが、図表は参照元の要素と同じ場所に表示する必要はありません。
-
-
-
注 : 可能な限り、適切な意味論の HTML 要素を使用して図表とそのキャプション ({{htmlelement("figure")}} と {{htmlelement("figcaption")}}) をマークアップするべきです。 詳しくは、ベストプラクティス を参照してください。
-
-
-
-関連する WAI-ARIA のロール、ステート、プロパティ
-
-
- aria-describedby
- キャプションとしての参照テキストを含む要素の id。
- aria-labelledby
- ラベルとしてのテキストを含む要素の id。
- aria-label
- ラベルになるようなテキストを含む要素がない場合は、図表 (figure
) ロールを持つ要素や <figure>
要素の aria-label
の値として直接ラベルを追加できます。
-
-
-キーボードインタラクション
-
-ロールに固有のキーボードインタラクションはありません。
-
-必要な JavaScript 機能
-
-ロールに固有の JavaScript 要件はありません。 HTML の意味論を制御できない場合は、JavaScript でこれらのロールとプロパティを追加することで、HTML のアクセシビリティを向上させることができます。
-
-例
-
-次のように、ページの最初の例を拡張して、aria-labelledby
でその ID を参照することにより、図表の説明的なラベルを提供する段落を特定することもできます。
-
-<div role="figure" aria-labelledby="figure-1">
- <img src="diagram.png"
- alt="素晴らしい4つの層と相対的な優先順位を示すダイヤグラム —
- 音楽、猫、自然、そしてアイスクリーム">
- <pre><code>
- let awesome = ['音楽', '猫', '自然', 'アイスクリーム'];
- </code></pre>
- <p id="figure-1">図表 1: 素晴らしい4つの層。</p>
-</div>
-
-ベストプラクティス
-
-必要な場合にのみ role="figure"
を使用してください。 例えば、HTML を制御できないが、JavaScript を使用して事後に動的にアクセシビリティを向上させることができる場合などです。
-
-可能であれば、適切な意味論の HTML 要素を使用して、図表とそのキャプション ({{htmlelement("figure")}} と {{htmlelement("figcaption")}}) をマークアップするべきです。 例えば、上記の例は次のように書き直すべきです。
-
-<figure>
- <img src="diagram.png"
- alt="素晴らしい4つの層と相対的な優先順位を示すダイヤグラム —
- 音楽、猫、自然、そしてアイスクリーム">
- <pre><code>
- let awesome = ['音楽', '猫', '自然', 'アイスクリーム'];
- </code></pre>
- <figcaption>図表 1: 素晴らしい4つの層。</figcaption>
-</figure>
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#figure","figure")}}
- {{Spec2('ARIA')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-TBD
-
-関連情報
-
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/figure_role/index.md b/files/ja/web/accessibility/aria/roles/figure_role/index.md
new file mode 100644
index 00000000000000..7184567167d04b
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/figure_role/index.md
@@ -0,0 +1,139 @@
+---
+title: 'ARIA: figure ロール'
+slug: Web/Accessibility/ARIA/Roles/Figure_Role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Figure_Role
+---
+ARIA の図表 (`figure`) ロールは、適切な意味論がまだ存在しないページコンテンツ内の図表を識別するために使用できます。 図表は一般的に、正規のテキストの流れとは異なる方法で情報を伝える、1 つ以上の画像、コードスニペット、またはその他のコンテンツと見なされます。
+
+```html
+
+
+
図表 1: キャプション
+
+```
+
+上記の例では、画像とキャプションという 2 つの別々のコンテンツ項目で構成される図表があります。 これは、`role="figure"` を使用してコンテンツを図表として識別する {{htmlelement("div")}} 要素で囲まれています。
+
+図表の作成に ARIA を使用する代わりに、ネイティブで意味論的な HTML {{htmlelement("figure")}} 要素を {{htmlelement("figcaption")}} 要素と共に使用することを検討してください。 以下の[ベストプラクティス](#best_practices)をご覧ください。
+
+## 説明
+
+(画像、動画、音声、コードスニペット、または他のコンテンツを含む可能性がある) 図表としてまとめて消費されるべきコンテンツは、 `role="figure"` を使用して図表として識別できます。
+
+図表のコンテンツをどのように書くべきかについての鉄則はありません。 他のコンテンツと同様にアクセスできることを確認するべきです。 例えば、支援技術のユーザーによって知覚できることや、キーボードやマウスでナビゲートできることなどを確認します。
+
+さまざまな方法で、図表にキャプションやラベルを追加できます。 次のように、図表を説明するコンテンツを含む要素に ID を追加し、その ID を図表の適切な属性内で参照して、図表をラベルに関連付けることができます。
+
+```html
+
+```
+
+- テキストが簡潔なラベルである場合は、`aria-labelledby` を使用してください。
+- テキストがより長い説明である場合は、`aria-describedby` を使用してください。
+
+ここでも、ARIA 無しで、HTML の {{htmlelement("figure")}} 要素と {{htmlelement("figcaption")}} 要素を使用して、意味論的に行うことができます。
+
+```html
+
+ ...
+ 図表を説明するテキスト。
+
+```
+
+ラベルを画面に表示したくないが、支援技術のユーザーにわかりやすいラベルを提供したい場合は、図表コンテナーに `aria-label` 属性を使用できます。
+
+```html
+
+ ...
+
+```
+
+`aria-label` は `` と一緒に使うことができます。
+
+```html
+
+ ...
+
+```
+
+一般的には、本文から図表を参照するべきですが、図表は参照元の要素と同じ場所に表示する必要はありません。
+
+> **Note:** 可能な限り、適切な意味論の HTML 要素を使用して図表とそのキャプション ({{htmlelement("figure")}} と {{htmlelement("figcaption")}}) をマークアップするべきです。 詳しくは、[ベストプラクティス](#best_practices)を参照してください。
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+- aria-describedby
+ - : キャプションとしての参照テキストを含む要素の id。
+- aria-labelledby
+ - : ラベルとしてのテキストを含む要素の id。
+- aria-label
+ - : ラベルになるようなテキストを含む要素がない場合は、図表 (`figure`) ロールを持つ要素や `` 要素の `aria-label` の値として直接ラベルを追加できます。
+
+### キーボードインタラクション
+
+ロールに固有のキーボードインタラクションはありません。
+
+### 必要な JavaScript 機能
+
+ロールに固有の JavaScript 要件はありません。 HTML の意味論を制御できない場合は、JavaScript でこれらのロールとプロパティを追加することで、HTML のアクセシビリティを向上させることができます。
+
+## 例
+
+次のように、ページの最初の例を拡張して、`aria-labelledby` でその ID を参照することにより、図表の説明的なラベルを提供する段落を特定することもできます。
+
+```
+
+
+
+ let awesome = ['音楽', '猫', '自然', 'アイスクリーム'];
+
+
図表 1: 素晴らしい4つの層。
+
+```
+
+## ベストプラクティス
+
+必要な場合にのみ `role="figure"` を使用してください。 例えば、HTML を制御できないが、JavaScript を使用して事後に動的にアクセシビリティを向上させることができる場合などです。
+
+可能であれば、適切な意味論の HTML 要素を使用して、図表とそのキャプション ({{htmlelement("figure")}} と {{htmlelement("figcaption")}}) をマークアップするべきです。 例えば、上記の例は次のように書き直すべきです。
+
+```html
+
+
+
+ let awesome = ['音楽', '猫', '自然', 'アイスクリーム'];
+
+ 図表 1: 素晴らしい4つの層。
+
+```
+
+## 仕様
+
+| 仕様 | 状態 |
+| ---------------------------------------------------- | ------------------------ |
+| {{SpecName("ARIA","#figure","figure")}} | {{Spec2('ARIA')}} |
+
+## スクリーンリーダーのサポート
+
+TBD
+
+## 関連情報
+
+- [Accessibility Object Model](https://wicg.github.io/aom/spec/)
+- [ARIA in HTML](https://w3c.github.io/html-aria/)
+- [HTML \ 要素](/ja/docs/Web/HTML/Element/figure)
+- [HTML \ 要素](/ja/docs/Web/HTML/Element/figcaption)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/form_role/index.html b/files/ja/web/accessibility/aria/roles/form_role/index.html
deleted file mode 100644
index 25107837e5c68c..00000000000000
--- a/files/ja/web/accessibility/aria/roles/form_role/index.html
+++ /dev/null
@@ -1,156 +0,0 @@
----
-title: 'ARIA: form ロール'
-slug: Web/Accessibility/ARIA/Roles/Form_Role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Form_Role
----
-フォーム (form
) ランドマークロール は、HTML のフォームと同等の機能を提供するページ上の要素のグループを識別するために使用できます。
-
-<div role="form" id="contact-info" aria-label="連絡先">
- <!-- フォームのコンテンツ -->
-</div>
-
-
-これは、ユーザーの連絡先を収集して保存するフォームです。
-
-
-
重要 : 十分に正当な理由がない限り、ARIA の フォーム (form
) ロールではなく、HTML の {{htmlelement("form")}} 要素を使用してフォームコントロールを格納してください。 HTML の <form>
要素は、支援技術にフォームがあることを伝えるのに十分です。
-
-
-説明
-
-フォーム (form
) ランドマーク (landmark ) は、(メイン (main
) や検索 (search
) など) 他の名前付きランドマークが適切でない場合に、全体として結合してフォームを作成する、項目とオブジェクトのコレクションを含むコンテンツのリージョンを識別します。
-
-
-
{{htmlelement("form")}} 要素を使用すると、アクセス可能な名前が提供されている場合、コンテンツのセクションがフォーム (form
) ランドマークとして自動的に伝えられます。 開発者は、ARIA を使用するよりも正しい意味論の HTML 要素を使用することを常に好むべきです。
-
-
-可能であれば、HTML の {{htmlelement("form")}} 要素を使用してください。 <form>
要素は、アクセス可能な名前 (aria-labelledby
、aria-label
、title
など) がある場合にフォーム (form
) ランドマークを定義します。 ユーザーがフォームの目的を理解できるように、文書内の各フォームに一意のラベルを付けるようにしてください。 このラベルは、支援技術のユーザーだけでなく、全てのユーザーに表示するべきです。 フォームを検索機能に使用する場合は、フォーム (form
) ランドマークの代わりに検索 (search
) ランドマークを使用してください。
-
-role="form"
は、ページのリージョンを識別するために使用し、フォームフィールドそれぞれを識別するために使用しないでください。 <form>
の代わりにフォーム (form
) ランドマークを使用している場合でも、<button>
、<input>
、<select>
、<textarea>
などのネイティブな HTML フォームコントロールを使用することをお勧めします。
-
-関連する WAI-ARIA のロール、ステート、プロパティ
-
-ロールに固有のステートやプロパティはありません。
-
-キーボードインタラクション
-
-ロールに固有のキーボードインタラクションはありません。
-
-必要な JavaScript 機能
-
-
- onsubmit
- onSubmit イベントハンドラーは、フォームの送信時に発生するイベントを処理します。 <form>
でないものは送信できないため、JavaScript を使用して、{{domxref("XMLHTTPRequest")}} などの代替データ送信メカニズムを構築する必要があります。
-
-
-例
-
-<div role="form" id="send-comment" aria-label="コメントを追加">
- <label for="username">ユーザー名</label>
- <input id="username" name="username" autocomplete="nickname" autocorrect="off" type="text">
-
- <label for="email">電子メール</label>
- <input id="email" name="email" autocomplete="email" autocapitalize="off" autocorrect="off" spellcheck="false" type="text">
-
- <label for="comment">コメント</label>
- <textarea id="comment" name="comment"></textarea>
-
- <input value="コメント" type="submit">
-</div>
-
-
-代わりに <form>
を使用することをお勧めします。
-
-<form id="send-comment" aria-label="コメントを追加">
- ....
-</form>
-
-
-アクセシビリティに関する懸念
-
-控えめに使用する
-
-ランドマークロール は、文書のより大きな全体的なセクションを識別することを意図しています。 あまりにも多くのランドマークロールを使用すると、スクリーンリーダーで「ノイズ」が発生し、ページ全体のレイアウトを理解することが難しくなります。
-
-
-
-フォーム要素 (入力、テキスト領域、選択など)それぞれで role="form"
を宣言する必要はありません。 それは、フォーム要素を包む HTML 要素で宣言するべきです。 理想的には、包む要素として {{htmlelement("form")}} 要素を使用し、role="form"
を宣言しないでください。
-
-検索
-
-フォームを検索に使用する場合は、より専門化した role="search"
値を使用するべきです。
-
-ランドマークのラベル付け
-
-ランドマークとして公開する必要がある、それぞれの {{htmlelement("form")}} 要素とフォームロール (form role
) には、アクセス可能な名前を付ける必要があります。 この名前により、支援技術のユーザーはフォームランドマークの目的をすばやく理解できるようになります。
-
-role="form"
を与えたのと同じ要素で、aria-labelledby
、aria-label
、または title
を使用して、アクセス可能な名前を付けます。
-
-
-
-<div role="form" id="gift-cards" aria-label="ギフトカードの購入">
- <!-- フォームのコンテンツ -->
-</div>
-
-冗長な説明
-
-スクリーンリーダーは、ランドマークロールの種類をアナウンスします。 このため、ラベルでランドマークが何であるかを説明する必要はありません。 例えば、role="form"
の宣言に aria-label="お問い合わせフォーム"
を使用した場合、「お問い合わせフォームフォーム」として重複してアナウンスすることがあります。
-
-ベストプラクティス
-
-好ましい HTML
-
-{{htmlelement("form")}} 要素を使用すると、セクションがフォーム (form
) ロールを持つことを自動的に伝えます。 可能であれば、<form>
を代わりに使用することをお勧めします。
-
-追加された利点
-
-ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、スクリーンリーダーを使用していないユーザーでも文書の大きなセクションを素早く識別してナビゲートできます。
-
-
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#form","ARIA Form Role")}}
- {{Spec2('ARIA')}}
-
-
- {{SpecName("ARIA Authoring Practices","#aria_lh_form","Role Form")}}
- {{Spec2('ARIA Authoring Practices')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-TBD
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/form_role/index.md b/files/ja/web/accessibility/aria/roles/form_role/index.md
new file mode 100644
index 00000000000000..572b65803cc64a
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/form_role/index.md
@@ -0,0 +1,135 @@
+---
+title: 'ARIA: form ロール'
+slug: Web/Accessibility/ARIA/Roles/Form_Role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Form_Role
+---
+フォーム (`form`) [ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、HTML のフォームと同等の機能を提供するページ上の要素のグループを識別するために使用できます。
+
+```html
+
+
+
+```
+
+これは、ユーザーの連絡先を収集して保存するフォームです。
+
+> **Warning:** **重要**: 十分に正当な理由がない限り、ARIA の フォーム (`form`) ロールではなく、HTML の {{htmlelement("form")}} 要素を使用してフォームコントロールを格納してください。 HTML の `` 要素は、支援技術にフォームがあることを伝えるのに十分です。
+
+## 説明
+
+フォーム (`form`) ランドマーク ([landmark](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)) は、(メイン ([`main`](/ja/docs/Web/Accessibility/ARIA/Roles/Main_role)) や検索 ([`search`](/ja/docs/Web/Accessibility/ARIA/Roles/Search_role)) など) 他の名前付きランドマークが適切でない場合に、全体として結合してフォームを作成する、項目とオブジェクトのコレクションを含むコンテンツのリージョンを識別します。
+
+> **Note:** {{htmlelement("form")}} 要素を使用すると、アクセス可能な名前が提供されている場合、コンテンツのセクションがフォーム (`form`) ランドマークとして自動的に伝えられます。 開発者は、ARIA を使用するよりも正しい意味論の HTML 要素を使用することを常に好むべきです。
+
+可能であれば、HTML の {{htmlelement("form")}} 要素を使用してください。 ` ` 要素は、アクセス可能な名前 (`aria-labelledby`、`aria-label`、`title` など) がある場合にフォーム (`form`) ランドマークを定義します。 ユーザーがフォームの目的を理解できるように、文書内の各フォームに一意のラベルを付けるようにしてください。 このラベルは、支援技術のユーザーだけでなく、全てのユーザーに表示するべきです。 フォームを検索機能に使用する場合は、フォーム (`form`) ランドマークの代わりに検索 (`search`) ランドマークを使用してください。
+
+`role="form"` は、ページのリージョンを識別するために使用し、フォームフィールドそれぞれを識別するために使用しないでください。 ` ` の代わりにフォーム (`form`) ランドマークを使用している場合でも、``、` `、``、`` などのネイティブな HTML フォームコントロールを使用することをお勧めします。
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+ロールに固有のステートやプロパティはありません。
+
+### キーボードインタラクション
+
+ロールに固有のキーボードインタラクションはありません。
+
+### 必要な JavaScript 機能
+
+- `onsubmit`
+ - : onSubmit イベントハンドラーは、フォームの送信時に発生するイベントを処理します。 `` でないものは送信できないため、JavaScript を使用して、{{domxref("XMLHTTPRequest")}} などの代替データ送信メカニズムを構築する必要があります。
+
+## 例
+
+```html
+
+```
+
+代わりに ` ` を使用することをお勧めします。
+
+```html
+
+```
+
+## アクセシビリティに関する懸念
+
+### 控えめに使用する
+
+[ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、文書のより大きな全体的なセクションを識別することを意図しています。 あまりにも多くのランドマークロールを使用すると、スクリーンリーダーで「ノイズ」が発生し、ページ全体のレイアウトを理解することが難しくなります。
+
+### 入力はフォームではない
+
+[フォーム要素](/ja/docs/Web/HTML/Element#forms)(入力、テキスト領域、選択など)それぞれで `role="form"` を宣言する必要はありません。 それは、フォーム要素を包む HTML 要素で宣言するべきです。 理想的には、包む要素として {{htmlelement("form")}} 要素を使用し、`role="form"` を宣言しないでください。
+
+### 検索
+
+フォームを検索に使用する場合は、より専門化した `role="search"` 値を使用するべきです。
+
+### ランドマークのラベル付け
+
+ランドマークとして公開する必要がある、それぞれの {{htmlelement("form")}} 要素とフォームロール (form `role`) には、アクセス可能な名前を付ける必要があります。 この名前により、支援技術のユーザーはフォームランドマークの目的をすばやく理解できるようになります。
+
+`role="form"` を与えたのと同じ要素で、`aria-labelledby`、`aria-label`、または `title` を使用して、アクセス可能な名前を付けます。
+
+#### `role="form"` の使用
+
+```html
+
+
+
+```
+
+#### 冗長な説明
+
+スクリーンリーダーは、ランドマークロールの種類をアナウンスします。 このため、ラベルでランドマークが何であるかを説明する必要はありません。 例えば、`role="form"` の宣言に `aria-label="お問い合わせフォーム"` を使用した場合、「お問い合わせフォームフォーム」として重複してアナウンスすることがあります。
+
+## ベストプラクティス
+
+### 好ましい HTML
+
+{{htmlelement("form")}} 要素を使用すると、セクションがフォーム (`form`) ロールを持つことを自動的に伝えます。 可能であれば、`` を代わりに使用することをお勧めします。
+
+### 追加された利点
+
+ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、スクリーンリーダーを使用していないユーザーでも文書の大きなセクションを素早く識別してナビゲートできます。
+
+- [ランドマークブラウザー拡張](https://matatk.agrip.org.uk/landmarks/)(英語)
+
+## 仕様
+
+| 仕様 | 状態 |
+| -------------------------------------------------------------------------------------------- | ------------------------------------------------ |
+| {{SpecName("ARIA","#form","ARIA Form Role")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#aria_lh_form","Role Form")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## スクリーンリーダーのサポート
+
+TBD
+
+## 関連情報
+
+- {{htmlelement("form")}}: フォーム要素
+- {{htmlelement("legend")}}: 凡例要素
+- [form (role): Accessible Rich Internet Applications (WAI-ARIA) 1.1](https://www.w3.org/TR/wai-aria/#form)
+- [HTML のセクションとアウトラインの使用](/ja/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines)
+- [ランドマークロール: ARIA を使用する: ロール、ステート、プロパティ](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)
+- [Accessible Landmarks | scottohara.me](https://www.scottohara.me/blog/2018/03/03/landmarks.html)
+- [Using WAI-ARIA Landmarks – 2013 | The Paciello Group](https://developer.paciellogroup.com/blog/2013/02/using-wai-aria-landmarks-2013/)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/grid_role/index.html b/files/ja/web/accessibility/aria/roles/grid_role/index.html
deleted file mode 100644
index 733f6e841d9a33..00000000000000
--- a/files/ja/web/accessibility/aria/roles/grid_role/index.html
+++ /dev/null
@@ -1,710 +0,0 @@
----
-title: 'ARIA: grid ロール'
-slug: Web/Accessibility/ARIA/Roles/Grid_Role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Grid_Role
----
-グリッド (grid
) ロールは、1つ以上のセルの行を含むウィジェット用です。 各セルの位置は重要であり、キーボード入力を使用してフォーカスすることができます。
-
-<table role="grid" aria-labelledby="id-select-your-seat">
- <caption id="id-select-your-seat">座席を選んでください</caption>
- <tbody role="presentation">
- <tr role="presentation">
- <td></td>
- <th>列 A</th>
- <th>列 B</th>
- </tr>
- <tr>
- <th scope="row">通路 1</th>
- <td tabindex="0">
- <button id="1a" tabindex="-1">1A</button>
- </td>
- <td tabindex="-1">
- <button id="1b" tabindex="-1">1B</button>
- </td>
- <!-- その他の列 -->
- </tr>
- <tr>
- <th scope="row">通路 2</th>
- <td tabindex="-1">
- <button id="2a" tabindex="-1">2A</button>
- </td>
- <td tabindex="-1">
- <button id="2b" tabindex="-1">2B</button>
- </td>
- <!-- その他の列 -->
- </tr>
- </tbody>
-</table>
-
-
-説明
-
-グリッドウィジェットは、テーマに沿ったインタラクティブなコンテンツの1つ以上のセルを持つ1つ以上の行を含みます。 それは特定の視覚的表現を暗示するものではありませんが、要素間の関連性を暗示します。 用途は、表形式の情報の表示 (データグリッド) と他のウィジェットのグループ化 (レイアウトグリッド) の2つのカテゴリーに分類されます。 データグリッドとレイアウトグリッドの両方が同じ ARIA のロール、ステート、およびプロパティを採用している場合でも、そのコンテンツと目的の違いは、キーボードインタラクションのデザインにおいて考慮すべき重要な要因を表面化させます。 詳細については、WAI-ARIA Authoring Practices を参照してください。
-
-セル要素には、行ヘッダーや列ヘッダーでない限り、グリッドセル (gridcell
) ロールがあります。 ヘッダー要素には、それぞれ行ヘッダー (rowheader
) ロールと列ヘッダー (columnheader
) ロールがあります。 セル要素は、行 (row
) ロールを持つ要素によって所有される必要があります。 行は行グループ (rowgroup
) を使用してグループ化できます。
-
-グリッドをインタラクティブなウィジェットとして使用する場合は、キーボードインタラクション を実装する必要があります。
-
-
-
-関連する ARIA のロール、ステート、プロパティ
-
-ロール
-
-
- treegrid (サブクラス)
- グリッドに展開や折りたたみができる列がある場合は、ツリーグリッドを使用できます。
- row
- グリッド内の行。
- rowgroup
- 1つ以上の行 (row ) を含むグループ。
-
-
-ステートとプロパティ
-
-
- aria-level
- 他の構造内でのグリッドの階層レベルを示します。 (訳注: この属性は、グリッドロールでは、ARIA 1.2 で、サポートされなくなる予定です。 行ロールでは、引き続きサポートされています。)
- aria-multiselectable
- aria-multiselectable
が true
に設定されている場合、グリッド内の複数の項目を選択できます。 デフォルト値は false
です。
- aria-readonly
- ユーザーがグリッドをナビゲートできるが、グリッドの値を変更できない場合は、aria-readonly
を true
に設定するべきです。 デフォルト値は false
です。
-
-
-
-
多くのユースケースでは、HTML の表 (table
) 要素で十分であり、その要素にはすでに多くの ARIA ロールが含まれています。
-
-
-キーボードインタラクション
-
-キーボードユーザーはグリッドに出会うと、左 、右 、上 、下 のキーを使用して行と列をナビゲートします。 インタラクティブなコンポーネントをアクティブ化するには、リターン キーとスペース キーを使用します。
-
-
-
-
- キー
- アクション
-
-
-
-
- →
- 1セル右にフォーカスを移動します。 フォーカスが行の右端のセルにある場合、フォーカスは移動しません。
-
-
- ←
- 1セル左にフォーカスを移動します。 フォーカスが行の左端のセルにある場合、フォーカスは移動しません。
-
-
- ↓
- 1セル下にフォーカスを移動します。 フォーカスが列の最下部のセルにある場合、フォーカスは移動しません。
-
-
- ↑
- 1セル上にフォーカスを移動します。 フォーカスが列の最上部のセルにある場合、フォーカスは移動しません。
-
-
- Page Down
- 作成者が決定した行数だけ下にフォーカスを移動します。 通常、現在表示されている行セットの一番下の行が最初に表示される行の1つになるようにスクロールします。 フォーカスがグリッドの最後の行にある場合、フォーカスは移動しません。
-
-
- Page Up
- 作成者が決定した行数だけ上にフォーカスを移動します。通常、現在表示されている行セットの一番上の行が最後に表示される行の1つになるようにスクロールします。 フォーカスがグリッドの最初の行にある場合、フォーカスは移動しません。
-
-
- Home
- フォーカスを含む行の最初のセルにフォーカスを移動します。
-
-
- End
- フォーカスを含む行の最後のセルにフォーカスを移動します。
-
-
- ctrl + Home
- 最初の行の最初のセルにフォーカスを移動します。
-
-
- ctrl + End
- 最後の行の最後のセルにフォーカスを移動します。
-
-
-
-
-セル、行、列を複数選択できる場合は、次のキーの組み合わせが一般的に使用されます。
-
-
-
-
- キーの組み合わせ
- アクション
-
-
-
-
- ctrl + Space
- フォーカスを含む列を選択します。
-
-
- shift + Space
- フォーカスを含む行を選択します。 グリッドに行を選択するためのチェックボックス付きの列が含まれている場合、このキーの組み合わせを使用して、フォーカスがチェックボックスにない場合でもそのボックスをチェックできます。
-
-
- ctrl + A
- すべてのセルを選択します。
-
-
- shift + →
- 選択範囲を1セル右側に拡張します。
-
-
- shift + ←
- 選択範囲を1セル左側に拡張します。
-
-
- shift + ↓
- 選択範囲を1セル下側に拡張します。
-
-
- shift + ↑
- 選択範囲を1セル上側に拡張します。
-
-
-
-
-例
-
-カレンダーの例
-
-
-
HTML
-
-
<table role="grid" aria-labelledby="calendarheader" aria-readonly=true>
- <caption id="calendarheader">September 2018</caption>
- <thead role="rowgroup">
- <tr role="row">
- <td></td>
- <th role="columnheader" aria-label="Sunday">S</th>
- <th role="columnheader" aria-label="Monday">M</th>
- <th role="columnheader" aria-label="Tuesday">T</th>
- <th role="columnheader" aria-label="Wednesday">W</th>
- <th role="columnheader" aria-label="Thursday">T</th>
- <th role="columnheader" aria-label="Friday">F</th>
- <th role="columnheader" aria-label="Saturday">S</th>
- </tr>
- </thead>
- <tbody role="rowgroup">
- <tr role="row">
- <th scope="row" role="rowheader">Week 35</th>
- <td>26</td>
- <td>27</td>
- <td>28</td>
- <td>29</td>
- <td>30</td>
- <td>31</td>
- <td role="gridcell" tabindex="-1">1</td>
- </tr>
- <tr role="row">
- <th scope="row" role="rowheader">Week 36</th>
- <td role="gridcell" tabindex="-1">
- 2
- </td>
- <td role="gridcell" tabindex="-1">
- 3
- </td>
- <td role="gridcell" tabindex="-1">
- 4
- </td>
- <td role="gridcell" tabindex="-1">
- 5
- </td>
- <td role="gridcell" tabindex="-1">
- 6
- </td>
- <td role="gridcell" tabindex="-1">
- 7
- </td>
- <td role="gridcell" tabindex="-1">
- 8
- </td>
- </tr>
- <tr role="row">
- <th scope="row" role="rowheader">Week 37</th>
- <td role="gridcell" tabindex="-1">
- 9
- </td>
- <td role="gridcell" tabindex="-1">
- 10
- </td>
- <td role="gridcell" tabindex="-1">
- 11
- </td>
- <td role="gridcell" tabindex="-1">
- 12
- </td>
- <td role="gridcell" tabindex="-1">
- 13
- </td>
- <td role="gridcell" tabindex="-1">
- 14
- </td>
- <td role="gridcell" tabindex="-1">
- 15
- </td>
- </tr>
- <tr role="row">
- <th scope="row" role="rowheader">Week 38</th>
- <td role="gridcell" tabindex="-1">
- 16
- </td>
- <td role="gridcell" tabindex="-1">
- 17
- </td>
- <td role="gridcell" tabindex="-1">
- 18
- </td>
- <td role="gridcell" tabindex="-1">
- 19
- </td>
- <td role="gridcell" tabindex="-1">
- 20
- </td>
- <td role="gridcell" tabindex="-1">
- 21
- </td>
- <td role="gridcell" tabindex="-1">
- 22
- </td>
- </tr>
- <tr role="row">
- <th scope="row" role="rowheader">Week 39</th>
- <td role="gridcell" tabindex="-1">
- 23
- </td>
- <td role="gridcell" tabindex="-1">
- 24
- </td>
- <td role="gridcell" tabindex="-1">
- 25
- </td>
- <td role="gridcell" tabindex="-1">
- 26
- </td>
- <td role="gridcell" tabindex="-1">
- 27
- </td>
- <td role="gridcell" tabindex="-1">
- 28
- </td>
- <td role="gridcell" tabindex="-1">
- 29
- </td>
- </tr>
- <tr role="row">
- <th scope="row" role="rowheader">Week 40</th>
- <td role="gridcell" tabindex="-1">
- 30
- </td>
- <td>1</td>
- <td>2</td>
- <td>3</td>
- <td>4</td>
- <td>5</td>
- <td>6</td>
- </tr>
- </tbody>
-</table>
-
-
CSS
-
-
body {
- margin: 2rem;
- font-family: "Helvetica Neue", sans-serif;
-}
-
-table {
- margin: 0;
- border-collapse: collapse;
- font-variant-numeric: tabular-nums;
-}
-
-tbody th, tbody td {
- padding: 5px;
-}
-
-tbody td {
- border: 1px solid #000;
- text-align: right;
- color: #767676;
-}
-
-tbody td[role="gridcell"] {
- color: #000;
-}
-
-tbody td[role="gridcell"]:hover, tbody td[role="gridcell"]:focus {
- background-color: #f6f6f6;
- outline: 3px solid blue;
- }
-}
-
-
JavaScript
-
-
var selectables = document.querySelectorAll('table td[role="gridcell"]');
-
-selectables[0].setAttribute('tabindex', 0);
-
-var trs = document.querySelectorAll('table tbody tr'),
- row = 0,
- col = 0,
- maxrow = trs.length - 1,
- maxcol = 0;
-
-Array.prototype.forEach.call(trs, function(gridrow, i){
- Array.prototype.forEach.call(gridrow.querySelectorAll('td'), function(el, i){
- el.dataset.row = row;
- el.dataset.col = col;
- col = col + 1;
- });
- if (col>maxcol) { maxcol = col - 1; }
- col = 0;
- row = row + 1;
-});
-
-function moveto(newrow, newcol) {
- var tgt = document.querySelector('[data-row="' + newrow + '"][data-col="' + newcol + '"]');
- if (tgt && (tgt.getAttribute('role')==='gridcell') ) {
- Array.prototype.forEach.call(document.querySelectorAll('[role=gridcell]'), function(el, i){
- el.setAttribute('tabindex', '-1');
- });
- tgt.setAttribute('tabindex', '0');
- tgt.focus();
- return true;
- } else {
- return false;
- }
-}
-
-document.querySelector('table').addEventListener("keydown", function(event) {
- switch (event.key) {
- case "ArrowRight":
- moveto(parseInt(event.target.dataset.row, 10), parseInt(event.target.dataset.col, 10) + 1);
- break;
- case "ArrowLeft":
- moveto(parseInt(event.target.dataset.row, 10), parseInt(event.target.dataset.col, 10) - 1);
- break;
- case "ArrowDown":
- moveto(parseInt(event.target.dataset.row, 10) + 1, parseInt(event.target.dataset.col, 10));
- break;
- case "ArrowUp":
- moveto(parseInt(event.target.dataset.row, 10) - 1, parseInt(event.target.dataset.col, 10));
- break;
- case "Home":
- if (event.ctrlKey) {
- var i = 0;
- var result;
- do {
- var j = 0;
- var result;
- do {
- result = moveto(i, j);
- j++;
- } while (result == false);
- i++;
- } while (result == false);
- } else {
- moveto(parseInt(event.target.dataset.row, 10), 0);
- }
- break;
- case "End":
- if (event.ctrlKey) {
- var i = maxrow;
- var result;
- do {
- var j = maxcol;
- do {
- result = moveto(i, j);
- j--;
- } while (result == false);
- i--;
- } while (result == false);
- } else {
- moveto(parseInt(event.target.dataset.row, 10), document.querySelector('[data-row="' + event.target.dataset.row + '"]:last-of-type').dataset.col);
- }
- break;
- case "PageUp":
- var i = 0;
- var result;
- do {
- result = moveto(i, event.target.dataset.col);
- i++;
- } while (result == false);
- break;
- case "PageDown":
- var i = maxrow;
- var result;
- do {
- result = moveto(i, event.target.dataset.col);
- i--;
- } while (result == false);
- break;
- case "Enter":
- alert(event.target.textContent);
- break;
- }
- event.preventDefault();
-});
-
-
-
-{{EmbedLiveSample("Calendar_example", "100%", "300")}}
-
-HTML
-
-<table role="grid" aria-labelledby="calendarheader">
- <caption id="calendarheader">September 2018</caption>
- <thead role="rowgroup">
- <tr role="row">
- <td></td>
- <th role="columnheader" aria-label="Sunday">S</th>
- <th role="columnheader" aria-label="Monday">M</th>
- <th role="columnheader" aria-label="Tuesday">T</th>
- <th role="columnheader" aria-label="Wednesday">W</th>
- <th role="columnheader" aria-label="Thursday">T</th>
- <th role="columnheader" aria-label="Friday">F</th>
- <th role="columnheader" aria-label="Saturday">S</th>
- </tr>
- </thead>
- <tbody role="rowgroup">
- <tr role="row">
- <th scope="row" role="rowheader">Week 35</th>
- <td>26</td>
- <td>27</td>
- <td>28</td>
- <td>29</td>
- <td>30</td>
- <td>31</td>
- <td role="gridcell" tabindex="-1">1</td>
- </tr>
- <tr role="row">
- <th scope="row" role="rowheader">Week 36</th>
- <td role="gridcell" tabindex="-1">
- 2
- </td>
- <td role="gridcell" tabindex="-1">
- 3
- </td>
- <td role="gridcell" tabindex="-1">
- 4
- </td>
- <td role="gridcell" tabindex="-1">
- 5
- </td>
- <td role="gridcell" tabindex="-1">
- 6
- </td>
- <td role="gridcell" tabindex="-1">
- 7
- </td>
- <td role="gridcell" tabindex="-1">
- 8
- </td>
- </tr>
- <!-- … Additional Rows … -->
- </tbody>
-</table>
-
-CSS
-
-table {
- margin: 0;
- border-collapse: collapse;
- font-variant-numeric: tabular-nums;
-}
-
-tbody th, tbody td {
- padding: 5px;
-}
-
-tbody td {
- border: 1px solid #000;
- text-align: right;
- color: #767676;
-}
-
-tbody td[role="gridcell"] {
- color: #000;
-}
-
-tbody td[role="gridcell"]:hover, tbody td[role="gridcell"]:focus {
- background-color: #f6f6f6; outline: 3px solid blue;
-}
-
-
-JavaScript
-
-var selectables = document.querySelectorAll('table td[role="gridcell"]');
-
-selectables[0].setAttribute('tabindex', 0);
-
-var trs = document.querySelectorAll('table tbody tr'),
- row = 0,
- col = 0,
- maxrow = trs.length - 1,
- maxcol = 0;
-
-Array.prototype.forEach.call(trs, function(gridrow, i){
- Array.prototype.forEach.call(gridrow.querySelectorAll('td'), function(el, i){
- el.dataset.row = row;
- el.dataset.col = col;
- col = col + 1;
- });
- if (col>maxcol) { maxcol = col - 1; }
- col = 0;
- row = row + 1;
-});
-
-function moveto(newrow, newcol) {
- var tgt = document.querySelector('[data-row="' + newrow + '"][data-col="' + newcol + '"]');
- if (tgt && (tgt.getAttribute('role')==='gridcell') ) {
- Array.prototype.forEach.call(document.querySelectorAll('[role=gridcell]'), function(el, i){
- el.setAttribute('tabindex', '-1');
- });
- tgt.setAttribute('tabindex', '0');
- tgt.focus();
- return true;
- } else {
- return false;
- }
-}
-
-document.querySelector('table').addEventListener("keydown", function(event) {
- switch (event.key) {
- case "ArrowRight":
- moveto(parseInt(event.target.dataset.row, 10), parseInt(event.target.dataset.col, 10) + 1);
- break;
- case "ArrowLeft":
- moveto(parseInt(event.target.dataset.row, 10), parseInt(event.target.dataset.col, 10) - 1);
- break;
- case "ArrowDown":
- moveto(parseInt(event.target.dataset.row, 10) + 1, parseInt(event.target.dataset.col, 10));
- break;
- case "ArrowUp":
- moveto(parseInt(event.target.dataset.row, 10) - 1, parseInt(event.target.dataset.col, 10));
- break;
- case "Home":
- if (event.ctrlKey) {
- var i = 0;
- var result;
- do {
- var j = 0;
- var result;
- do {
- result = moveto(i, j);
- j++;
- } while (result == false);
- i++;
- } while (result == false);
- } else {
- moveto(parseInt(event.target.dataset.row, 10), 0);
- }
- break;
- case "End":
- if (event.ctrlKey) {
- var i = maxrow;
- var result;
- do {
- var j = maxcol;
- do {
- result = moveto(i, j);
- j--;
- } while (result == false);
- i--;
- } while (result == false);
- } else {
- moveto(parseInt(event.target.dataset.row, 10), document.querySelector('[data-row="' + event.target.dataset.row + '"]:last-of-type').dataset.col);
- }
- break;
- case "PageUp":
- var i = 0;
- var result;
- do {
- result = moveto(i, event.target.dataset.col);
- i++;
- } while (result == false);
- break;
- case "PageDown":
- var i = maxrow;
- var result;
- do {
- result = moveto(i, event.target.dataset.col);
- i--;
- } while (result == false);
- break;
- case "Enter":
- alert(event.target.textContent);
- break;
- }
- event.preventDefault();
-});
-
-より多くの例
-
-
-
-アクセシビリティに関する懸念
-
-キーボードインタラクション が適切に実装されていても、矢印キーを使用しなければならないことに気づかないユーザーもいます。 グリッド (grid
) ロールを使用して、必要な機能性とインタラクションが最もよく達成できることを確認してください。
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#grid","Role Grid")}}
- {{Spec2('ARIA')}}
-
-
- {{SpecName("ARIA Authoring Practices","#grid","Role Grid")}}
- {{Spec2('ARIA Authoring Practices')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-TBD
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/grid_role/index.md b/files/ja/web/accessibility/aria/roles/grid_role/index.md
new file mode 100644
index 00000000000000..c3b77cbd4adfad
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/grid_role/index.md
@@ -0,0 +1,618 @@
+---
+title: 'ARIA: grid ロール'
+slug: Web/Accessibility/ARIA/Roles/Grid_Role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Grid_Role
+---
+グリッド (`grid`) ロールは、1 つ以上のセルの行を含むウィジェット用です。 各セルの位置は重要であり、キーボード入力を使用してフォーカスすることができます。
+
+```html
+
+ 座席を選んでください
+
+
+
+ 列 A
+ 列 B
+
+
+ 通路 1
+
+ 1A
+
+
+ 1B
+
+
+
+
+ 通路 2
+
+ 2A
+
+
+ 2B
+
+
+
+
+
+```
+
+## 説明
+
+グリッドウィジェットは、テーマに沿ったインタラクティブなコンテンツの 1 つ以上のセルを持つ 1 つ以上の行を含みます。 それは特定の視覚的表現を暗示するものではありませんが、要素間の関連性を暗示します。 用途は、表形式の情報の表示 (データグリッド) と他のウィジェットのグループ化 (レイアウトグリッド) の 2 つのカテゴリーに分類されます。 データグリッドとレイアウトグリッドの両方が同じ ARIA のロール、ステート、およびプロパティを採用している場合でも、そのコンテンツと目的の違いは、キーボードインタラクションのデザインにおいて考慮すべき重要な要因を表面化させます。 詳細については、[WAI-ARIA Authoring Practices](https://www.w3.org/TR/wai-aria-practices-1.2/#grid) を参照してください。
+
+セル要素には、行ヘッダーや列ヘッダーでない限り、グリッドセル ([`gridcell`](/ja/docs/Web/Accessibility/ARIA/Roles/Gridcell_role)) ロールがあります。 ヘッダー要素には、それぞれ行ヘッダー ([`rowheader`](/ja/docs/Web/Accessibility/ARIA/Roles/Rowheader_Role)) ロールと列ヘッダー ([`columnheader`](/ja/docs/Web/Accessibility/ARIA/Roles/Columnheader_Role)) ロールがあります。 セル要素は、行 ([`row`](/ja/docs/Web/Accessibility/ARIA/Roles/Row_Role)) ロールを持つ要素によって所有される必要があります。 行は行グループ ([`rowgroup`](/ja/docs/Web/Accessibility/ARIA/Roles/Rowgroup_Role)) を使用してグループ化できます。
+
+グリッドをインタラクティブなウィジェットとして使用する場合は、[キーボードインタラクション](#keyboard_interactions)を実装する必要があります。
+
+### 関連する ARIA のロール、ステート、プロパティ
+
+#### ロール
+
+- [treegrid](/ja/docs/Web/Accessibility/ARIA/Roles/Treegrid_Role) (サブクラス)
+ - : グリッドに展開や折りたたみができる列がある場合は、ツリーグリッドを使用できます。
+- [row](/ja/docs/Web/Accessibility/ARIA/Roles/Row_Role)
+ - : グリッド内の行。
+- [rowgroup](/ja/docs/Web/Accessibility/ARIA/Roles/Rowgroup_Role)
+ - : 1 つ以上の行 ([row](/ja/docs/Web/Accessibility/ARIA/Roles/Row_Role)) を含むグループ。
+
+#### ステートとプロパティ
+
+- [aria-level](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-level_attribute)
+ - : 他の構造内でのグリッドの階層レベルを示します。 (訳注: この属性は、グリッドロールでは、ARIA 1.2 で、サポートされなくなる予定です。 行ロールでは、引き続きサポートされています。)
+- [aria-multiselectable](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-multiselectable_attribute)
+ - : `aria-multiselectable` が `true` に設定されている場合、グリッド内の複数の項目を選択できます。 デフォルト値は `false` です。
+- [aria-readonly](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-readonly_attribute)
+ - : ユーザーがグリッドをナビゲートできるが、グリッドの値を変更できない場合は、`aria-readonly` を `true` に設定するべきです。 デフォルト値は `false` です。
+
+> **Note:** 多くのユースケースでは、HTML の表 ([`table`](/ja/docs/Web/HTML/Element/table)) 要素で十分であり、その要素にはすでに多くの ARIA ロールが含まれています。
+
+### キーボードインタラクション
+
+キーボードユーザーはグリッドに出会うと、左 、右 、上 、下 のキーを使用して行と列をナビゲートします。 インタラクティブなコンポーネントをアクティブ化するには、リターン キーとスペース キーを使用します。
+
+| キー | アクション |
+| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| → | 1 セル右にフォーカスを移動します。 フォーカスが行の右端のセルにある場合、フォーカスは移動しません。 |
+| ← | 1 セル左にフォーカスを移動します。 フォーカスが行の左端のセルにある場合、フォーカスは移動しません。 |
+| ↓ | 1 セル下にフォーカスを移動します。 フォーカスが列の最下部のセルにある場合、フォーカスは移動しません。 |
+| ↑ | 1 セル上にフォーカスを移動します。 フォーカスが列の最上部のセルにある場合、フォーカスは移動しません。 |
+| Page Down | 作成者が決定した行数だけ下にフォーカスを移動します。 通常、現在表示されている行セットの一番下の行が最初に表示される行の 1 つになるようにスクロールします。 フォーカスがグリッドの最後の行にある場合、フォーカスは移動しません。 |
+| Page Up | 作成者が決定した行数だけ上にフォーカスを移動します。通常、現在表示されている行セットの一番上の行が最後に表示される行の 1 つになるようにスクロールします。 フォーカスがグリッドの最初の行にある場合、フォーカスは移動しません。 |
+| Home | フォーカスを含む行の最初のセルにフォーカスを移動します。 |
+| End | フォーカスを含む行の最後のセルにフォーカスを移動します。 |
+| ctrl + Home | 最初の行の最初のセルにフォーカスを移動します。 |
+| ctrl + End | 最後の行の最後のセルにフォーカスを移動します。 |
+
+セル、行、列を複数選択できる場合は、次のキーの組み合わせが一般的に使用されます。
+
+| キーの組み合わせ | アクション |
+| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| ctrl + Space | フォーカスを含む列を選択します。 |
+| shift + Space | フォーカスを含む行を選択します。 グリッドに行を選択するためのチェックボックス付きの列が含まれている場合、このキーの組み合わせを使用して、フォーカスがチェックボックスにない場合でもそのボックスをチェックできます。 |
+| ctrl + A | すべてのセルを選択します。 |
+| shift + → | 選択範囲を 1 セル右側に拡張します。 |
+| shift + ← | 選択範囲を 1 セル左側に拡張します。 |
+| shift + ↓ | 選択範囲を 1 セル下側に拡張します。 |
+| shift + ↑ | 選択範囲を 1 セル上側に拡張します。 |
+
+## 例
+
+### カレンダーの例
+
+```html hidden
+
+
+
+
+
+ S
+ M
+ T
+ W
+ T
+ F
+ S
+
+
+
+
+ Week 35
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 1
+
+
+ Week 36
+
+ 2
+
+
+ 3
+
+
+ 4
+
+
+ 5
+
+
+ 6
+
+
+ 7
+
+
+ 8
+
+
+
+ Week 37
+
+ 9
+
+
+ 10
+
+
+ 11
+
+
+ 12
+
+
+ 13
+
+
+ 14
+
+
+ 15
+
+
+
+ Week 38
+
+ 16
+
+
+ 17
+
+
+ 18
+
+
+ 19
+
+
+ 20
+
+
+ 21
+
+
+ 22
+
+
+
+ Week 39
+
+ 23
+
+
+ 24
+
+
+ 25
+
+
+ 26
+
+
+ 27
+
+
+ 28
+
+
+ 29
+
+
+
+ Week 40
+
+ 30
+
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+
+
+
+```
+
+```css hidden
+body {
+ margin: 2rem;
+ font-family: "Helvetica Neue", sans-serif;
+}
+
+table {
+ margin: 0;
+ border-collapse: collapse;
+ font-variant-numeric: tabular-nums;
+}
+
+tbody th, tbody td {
+ padding: 5px;
+}
+
+tbody td {
+ border: 1px solid #000;
+ text-align: right;
+ color: #767676;
+}
+
+tbody td[role="gridcell"] {
+ color: #000;
+}
+
+tbody td[role="gridcell"]:hover, tbody td[role="gridcell"]:focus {
+ background-color: #f6f6f6;
+ outline: 3px solid blue;
+ }
+}
+```
+
+```js hidden
+var selectables = document.querySelectorAll('table td[role="gridcell"]');
+
+selectables[0].setAttribute('tabindex', 0);
+
+var trs = document.querySelectorAll('table tbody tr'),
+ row = 0,
+ col = 0,
+ maxrow = trs.length - 1,
+ maxcol = 0;
+
+Array.prototype.forEach.call(trs, function(gridrow, i){
+ Array.prototype.forEach.call(gridrow.querySelectorAll('td'), function(el, i){
+ el.dataset.row = row;
+ el.dataset.col = col;
+ col = col + 1;
+ });
+ if (col>maxcol) { maxcol = col - 1; }
+ col = 0;
+ row = row + 1;
+});
+
+function moveto(newrow, newcol) {
+ var tgt = document.querySelector('[data-row="' + newrow + '"][data-col="' + newcol + '"]');
+ if (tgt && (tgt.getAttribute('role')==='gridcell') ) {
+ Array.prototype.forEach.call(document.querySelectorAll('[role=gridcell]'), function(el, i){
+ el.setAttribute('tabindex', '-1');
+ });
+ tgt.setAttribute('tabindex', '0');
+ tgt.focus();
+ return true;
+ } else {
+ return false;
+ }
+}
+
+document.querySelector('table').addEventListener("keydown", function(event) {
+ switch (event.key) {
+ case "ArrowRight":
+ moveto(parseInt(event.target.dataset.row, 10), parseInt(event.target.dataset.col, 10) + 1);
+ break;
+ case "ArrowLeft":
+ moveto(parseInt(event.target.dataset.row, 10), parseInt(event.target.dataset.col, 10) - 1);
+ break;
+ case "ArrowDown":
+ moveto(parseInt(event.target.dataset.row, 10) + 1, parseInt(event.target.dataset.col, 10));
+ break;
+ case "ArrowUp":
+ moveto(parseInt(event.target.dataset.row, 10) - 1, parseInt(event.target.dataset.col, 10));
+ break;
+ case "Home":
+ if (event.ctrlKey) {
+ var i = 0;
+ var result;
+ do {
+ var j = 0;
+ var result;
+ do {
+ result = moveto(i, j);
+ j++;
+ } while (result == false);
+ i++;
+ } while (result == false);
+ } else {
+ moveto(parseInt(event.target.dataset.row, 10), 0);
+ }
+ break;
+ case "End":
+ if (event.ctrlKey) {
+ var i = maxrow;
+ var result;
+ do {
+ var j = maxcol;
+ do {
+ result = moveto(i, j);
+ j--;
+ } while (result == false);
+ i--;
+ } while (result == false);
+ } else {
+ moveto(parseInt(event.target.dataset.row, 10), document.querySelector('[data-row="' + event.target.dataset.row + '"]:last-of-type').dataset.col);
+ }
+ break;
+ case "PageUp":
+ var i = 0;
+ var result;
+ do {
+ result = moveto(i, event.target.dataset.col);
+ i++;
+ } while (result == false);
+ break;
+ case "PageDown":
+ var i = maxrow;
+ var result;
+ do {
+ result = moveto(i, event.target.dataset.col);
+ i--;
+ } while (result == false);
+ break;
+ case "Enter":
+ alert(event.target.textContent);
+ break;
+ }
+ event.preventDefault();
+});
+```
+
+{{EmbedLiveSample("Calendar_example", "100%", "300")}}
+
+#### HTML
+
+```html
+
+
+
+
+
+ S
+ M
+ T
+ W
+ T
+ F
+ S
+
+
+
+
+ Week 35
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 1
+
+
+ Week 36
+
+ 2
+
+
+ 3
+
+
+ 4
+
+
+ 5
+
+
+ 6
+
+
+ 7
+
+
+ 8
+
+
+
+
+
+```
+
+#### CSS
+
+```css
+table {
+ margin: 0;
+ border-collapse: collapse;
+ font-variant-numeric: tabular-nums;
+}
+
+tbody th, tbody td {
+ padding: 5px;
+}
+
+tbody td {
+ border: 1px solid #000;
+ text-align: right;
+ color: #767676;
+}
+
+tbody td[role="gridcell"] {
+ color: #000;
+}
+
+tbody td[role="gridcell"]:hover, tbody td[role="gridcell"]:focus {
+ background-color: #f6f6f6; outline: 3px solid blue;
+}
+```
+
+#### JavaScript
+
+```js
+var selectables = document.querySelectorAll('table td[role="gridcell"]');
+
+selectables[0].setAttribute('tabindex', 0);
+
+var trs = document.querySelectorAll('table tbody tr'),
+ row = 0,
+ col = 0,
+ maxrow = trs.length - 1,
+ maxcol = 0;
+
+Array.prototype.forEach.call(trs, function(gridrow, i){
+ Array.prototype.forEach.call(gridrow.querySelectorAll('td'), function(el, i){
+ el.dataset.row = row;
+ el.dataset.col = col;
+ col = col + 1;
+ });
+ if (col>maxcol) { maxcol = col - 1; }
+ col = 0;
+ row = row + 1;
+});
+
+function moveto(newrow, newcol) {
+ var tgt = document.querySelector('[data-row="' + newrow + '"][data-col="' + newcol + '"]');
+ if (tgt && (tgt.getAttribute('role')==='gridcell') ) {
+ Array.prototype.forEach.call(document.querySelectorAll('[role=gridcell]'), function(el, i){
+ el.setAttribute('tabindex', '-1');
+ });
+ tgt.setAttribute('tabindex', '0');
+ tgt.focus();
+ return true;
+ } else {
+ return false;
+ }
+}
+
+document.querySelector('table').addEventListener("keydown", function(event) {
+ switch (event.key) {
+ case "ArrowRight":
+ moveto(parseInt(event.target.dataset.row, 10), parseInt(event.target.dataset.col, 10) + 1);
+ break;
+ case "ArrowLeft":
+ moveto(parseInt(event.target.dataset.row, 10), parseInt(event.target.dataset.col, 10) - 1);
+ break;
+ case "ArrowDown":
+ moveto(parseInt(event.target.dataset.row, 10) + 1, parseInt(event.target.dataset.col, 10));
+ break;
+ case "ArrowUp":
+ moveto(parseInt(event.target.dataset.row, 10) - 1, parseInt(event.target.dataset.col, 10));
+ break;
+ case "Home":
+ if (event.ctrlKey) {
+ var i = 0;
+ var result;
+ do {
+ var j = 0;
+ var result;
+ do {
+ result = moveto(i, j);
+ j++;
+ } while (result == false);
+ i++;
+ } while (result == false);
+ } else {
+ moveto(parseInt(event.target.dataset.row, 10), 0);
+ }
+ break;
+ case "End":
+ if (event.ctrlKey) {
+ var i = maxrow;
+ var result;
+ do {
+ var j = maxcol;
+ do {
+ result = moveto(i, j);
+ j--;
+ } while (result == false);
+ i--;
+ } while (result == false);
+ } else {
+ moveto(parseInt(event.target.dataset.row, 10), document.querySelector('[data-row="' + event.target.dataset.row + '"]:last-of-type').dataset.col);
+ }
+ break;
+ case "PageUp":
+ var i = 0;
+ var result;
+ do {
+ result = moveto(i, event.target.dataset.col);
+ i++;
+ } while (result == false);
+ break;
+ case "PageDown":
+ var i = maxrow;
+ var result;
+ do {
+ result = moveto(i, event.target.dataset.col);
+ i--;
+ } while (result == false);
+ break;
+ case "Enter":
+ alert(event.target.textContent);
+ break;
+ }
+ event.preventDefault();
+});
+```
+
+### より多くの例
+
+- [データグリッドの例](https://www.w3.org/TR/wai-aria-practices-1.1/examples/grid/dataGrids.html) (英語)
+- [レイアウトグリッドの例](https://www.w3.org/TR/wai-aria-practices/examples/grid/LayoutGrids.html) (英語)
+- [W3C/WAI チュートリアル: 表](https://www.w3.org/WAI/tutorials/tables/) (英語)
+
+## アクセシビリティに関する懸念
+
+[キーボードインタラクション](#keyboard_interactions)が適切に実装されていても、矢印キーを使用しなければならないことに気づかないユーザーもいます。 グリッド (`grid`) ロールを使用して、必要な機能性とインタラクションが最もよく達成できることを確認してください。
+
+## 仕様
+
+| 仕様 | 状態 |
+| -------------------------------------------------------------------------------- | ------------------------------------------------ |
+| {{SpecName("ARIA","#grid","Role Grid")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#grid","Role Grid")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## スクリーンリーダーのサポート
+
+TBD
+
+## 関連情報
+
+- [ARIA composite ロール](/ja/docs/Web/Accessibility/ARIA/Roles/composite_Role)
+- [ARIA table ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Table_Role)
+- [ARIA treegrid ロール](/ja/docs/Web/Accessibility/ARIA/Roles/treegrid_Role)
+- [ARIA row ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Row_Role)
+- [ARIA rowgroup ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Rowgroup_Role)
+- [ARIA: gridcell ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Gridcell_role)
+- [ARIA: rowheader ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Rowheader_Role)
+- [ARIA: columnheader ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Columnheader_Role)
+- [HTML の表要素](/ja/docs/Web/HTML/Element/table)
+- aria-level
+- aria-multiselectable
+- aria-readonly
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/gridcell_role/index.html b/files/ja/web/accessibility/aria/roles/gridcell_role/index.html
deleted file mode 100644
index 5a6a908516cb36..00000000000000
--- a/files/ja/web/accessibility/aria/roles/gridcell_role/index.html
+++ /dev/null
@@ -1,180 +0,0 @@
----
-title: 'ARIA: gridcell ロール'
-slug: Web/Accessibility/ARIA/Roles/Gridcell_role
-tags:
- - ARIA
- - HTML
----
-グリッドセル (gridcell) ロール は、グリッド (grid ) やツリーグリッド (treegrid ) にセルを作成するために使用します。 これは、情報を表スタイルでグループ化する HTML の td
要素 の機能を模倣することを意図しています。
-
-<div role="gridcell">Potato</div>
-<div role="gridcell">Cabbage</div>
-<div role="gridcell">Onion</div>
-
-
-role="gridcell"
が適用されている要素は、行 (row
) ロールを持つ要素の子である必要があります。
-
-<div role="row">
- <div role="gridcell">Jane</div>
- <div role="gridcell">Smith</div>
- <div role="gridcell">496-619-5098</div>
- …
-</div>
-
-
-ARIA の第一のルールは、ネイティブな HTML の要素や属性に必要としている意味論と振る舞いがある場合、要素を転用して ARIA を追加する代わりにネイティブな HTML を使用することです。 次のように、代わりに、ネイティブな HTML の td
要素 を contenteditable
属性 と組み合わせて使用します。
-
-<td>Potato</td>
-<td>Cabbage</td>
-<td>Onion</td>
-
-説明
-
-行と列が動的に追加、非表示、または削除されるグリッドセル
-
-role="gridcell"
が適用されている要素は、表、グリッド、またはツリーグリッドに行や列を動的に追加、非表示、または削除する機能がある場合、ARIA を使用して表スタイルのグループ化における順序を説明する必要があります。
-
-aria-colindex
を使用して、列の並びでのグリッドセル (gridcell
) の順序を説明し、aria-rowindex
を使用して、行の並びでのグリッドセルの順序を説明します。 role="grid"
が適用された親要素で aria-colcount
と aria-rowcount
を使用して、列または行の総数を設定します。
-
-次のサンプルコードは、3 番目と 4 番目の列が削除された情報の表スタイルでのグループ化を示しています。 aria-colindex
は行の位置を説明するために使用されており、支援技術を使用している人が特定の行が削除されたことを推測できるようにします。
-
-<div role="grid" aria-colcount="6">
- <div role="rowgroup">
- <div role="row">
- <div role="columnheader" aria-colindex="1">First name</div>
- <div role="columnheader" aria-colindex="2">Last name</div>
- <div role="columnheader" aria-colindex="5">City</div>
- <div role="columnheader" aria-colindex="6">Zip</div>
- </div>
- </div>
- <div role="rowgroup">
- <div role="row">
- <div role="gridcell" aria-colindex="1">Debra</div>
- <div role="gridcell" aria-colindex="2">Burks</div>
- <div role="gridcell" aria-colindex="5">New York</div>
- <div role="gridcell" aria-colindex="6">14127</div>
- </div>
- </div>
- …
-</div>
-
-
-全体的な構造が不明な場合のグリッドセルの位置の説明
-
-コンテンツを表スタイルでグループ化することで列と行に関する情報が提供されない場合、グリッドセルの位置は、aria-describedby
を使用してプログラムで説明する必要があります。 aria-describedby
に提供される id
は、行と列を意図する親要素に対応している必要があります。
-
-aria-describedby
を介して適用された行ヘッダー (rowheader
) ロールまたは列ヘッダー (columnheader
) ロールを持つ親要素を参照することにより、支援技術は、グリッドセル (gridcell
) 要素とコンテンツを表スタイルでグループ化した残りとの位置と関係を理解できます。
-
-インタラクティブなグリッドとツリーグリッド
-
-編集可能なセル
-
-td
要素とグリッドセル (gridcell
) ロールが適用された要素の両方を編集可能にして、スプレッドシートの編集と同様の機能を模倣することができます。 これは、HTML の contenteditable
属性 を適用することによって行われます。
-
-<td contenteditable="true">Notes</td>
-
-<div role="gridcell" contenteditable="true">Item cost</div>
-
-
-contenteditable
は、適用される要素を Tab キーでフォーカス可能にします。 グリッドセルが条件付きで編集が禁止されている状態に切り替わる場合は、グリッドセル要素で aria-readonly
を切り替えます。
-
-展開可能なセル
-
-ツリーグリッド (treegrid ) では、aria-expanded
属性を切り替えることでグリッドセルを展開可能にできます。 この属性が指定されている場合、個々のグリッドセルにのみ適用されることに注意してください。
-
-関連する WAI-ARIA のロール、ステート、プロパティ
-
-
- grid
-
- 親要素が情報を表スタイルまたはツリースタイルでグループ化するものであることを伝えます。
-
- row
-
- グリッドセル (gridcell
) が情報の表スタイルでのグループ化による行の一部であることを伝えるために必要です。
-
- columnheader
-
- どの要素が関連する列ヘッダーであるかを指定します。
-
- aria-colindex
-
- 情報を表スタイルでグループ化した列の残りの部分に対する要素の位置を識別します。
-
- rowheader
- どの要素が関連する行ヘッダーであるかを指定します。
- aria-rowindex
-
- 情報を表スタイルでグループ化した行の残りの部分に対する要素の位置を識別します。
-
-
-
-例
-
-次の例では、情報を表スタイルでグループ化したものを作成します。
-
-<h3 id="table-title">Jovian gas giant planets</h3>
-<div role="grid" aria-describedby="table-title">
- <div role="rowgroup">
- <div role="row">
- <div role="columnheader">Name</div>
- <div role="columnheader">Diameter (km)</div>
- <div role="columnheader">Length of day (hours)</div>
- <div role="columnheader">Distance from Sun (10<sup>6</sup>km)</div>
- <div role="columnheader">Number of moons</div>
- </div>
- </div>
- <div role="rowgroup">
- <div role="row">
- <div role="gridcell">Jupiter</div>
- <div role="gridcell">142,984</div>
- <div role="gridcell">9.9</div>
- <div role="gridcell">778.6</div>
- <div role="gridcell">67</div>
- </div>
- </div>
- <div role="rowgroup">
- <div role="row">
- <div role="gridcell">Saturn</div>
- <div role="gridcell">120,536</div>
- <div role="gridcell">10.7</div>
- <div role="gridcell">1433.5</div>
- <div role="gridcell">62</div>
- </div>
- </div>
-</div>
-
-
-アクセシビリティに関する懸念
-
-グリッドセル (gridcell
) および特定のグリッドセル (gridcell
) 関連の ARIA のロールとプロパティのサポートは、支援技術ではサポートが不十分です。 可能であれば、代わりにネイティブな HTML の表のマークアップ を利用してください。
-
-ベストプラクティス
-
-ARIA の第一のルールは、ネイティブな HTML の要素や属性に必要としている意味論と振る舞いがある場合、要素を転用して ARIA のロール、ステート、プロパティを追加してアクセス可能にする代わりに、ネイティブな HTML を使用することです。 そのため、ARIA と JavaScript を使用して表の形態と機能を再作成するのではなく、ネイティブな HTML の表のマークアップ を利用することをお勧めします。
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
\ No newline at end of file
diff --git a/files/ja/web/accessibility/aria/roles/gridcell_role/index.md b/files/ja/web/accessibility/aria/roles/gridcell_role/index.md
new file mode 100644
index 00000000000000..6c5e00ffae2c84
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/gridcell_role/index.md
@@ -0,0 +1,169 @@
+---
+title: 'ARIA: gridcell ロール'
+slug: Web/Accessibility/ARIA/Roles/Gridcell_role
+tags:
+ - ARIA
+ - HTML
+---
+[グリッドセル (gridcell) ロール](https://www.w3.org/TR/wai-aria-1.1/#gridcell)は、グリッド ([grid](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role)) やツリーグリッド ([treegrid](/ja/docs/Web/Accessibility/ARIA/Roles/Treegrid_role)) にセルを作成するために使用します。 これは、情報を表スタイルでグループ化する [HTML の `td` 要素](/ja/docs/Web/HTML/Element/td)の機能を模倣することを意図しています。
+
+```html
+Potato
+Cabbage
+Onion
+```
+
+`role="gridcell"` が適用されている要素は、行 ([`row`](/ja/docs/Web/Accessibility/ARIA/Roles/Row_Role)) ロールを持つ要素の子である必要があります。
+
+```html
+
+
Jane
+
Smith
+
496-619-5098
+ …
+
+```
+
+ARIA の第一のルールは、ネイティブな HTML の要素や属性に必要としている意味論と振る舞いがある場合、要素を転用して ARIA を追加する代わりにネイティブな HTML を使用することです。 次のように、代わりに、ネイティブな [HTML の `td` 要素](/ja/docs/Web/HTML/Element/td)を [`contenteditable` 属性](/ja/docs/Web/HTML/Global_attributes/contenteditable)と組み合わせて使用します。
+
+```html
+Potato
+Cabbage
+Onion
+```
+
+## 説明
+
+### 行と列が動的に追加、非表示、または削除されるグリッドセル
+
+`role="gridcell"` が適用されている要素は、表、グリッド、またはツリーグリッドに行や列を動的に追加、非表示、または削除する機能がある場合、ARIA を使用して表スタイルのグループ化における順序を説明する必要があります。
+
+`aria-colindex` を使用して、列の並びでのグリッドセル (`gridcell`) の順序を説明し、`aria-rowindex` を使用して、行の並びでのグリッドセルの順序を説明します。 [`role="grid"`](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role) が適用された親要素で `aria-colcount` と `aria-rowcount` を使用して、列または行の総数を設定します。
+
+次のサンプルコードは、3 番目と 4 番目の列が削除された情報の表スタイルでのグループ化を示しています。 `aria-colindex` は行の位置を説明するために使用されており、支援技術を使用している人が特定の行が削除されたことを推測できるようにします。
+
+```html
+
+
+
+
First name
+
Last name
+
City
+
Zip
+
+
+
+
+
Debra
+
Burks
+
New York
+
14127
+
+
+ …
+
+```
+
+### 全体的な構造が不明な場合のグリッドセルの位置の説明
+
+コンテンツを表スタイルでグループ化することで列と行に関する情報が提供されない場合、グリッドセルの位置は、[`aria-describedby`](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute) を使用してプログラムで説明する必要があります。 `aria-describedby` に提供される [`id`](/ja/docs/Web/HTML/Global_attributes/id) は、行と列を意図する親要素に対応している必要があります。
+
+`aria-describedby` を介して適用された行ヘッダー ([`rowheader`](/ja/docs/Web/Accessibility/ARIA/Roles/Rowheader_role)) ロールまたは列ヘッダー ([`columnheader`](/ja/docs/Web/Accessibility/ARIA/Roles/Columnheader_role)) ロールを持つ親要素を参照することにより、支援技術は、グリッドセル (`gridcell`) 要素とコンテンツを表スタイルでグループ化した残りとの位置と関係を理解できます。
+
+### インタラクティブなグリッドとツリーグリッド
+
+#### 編集可能なセル
+
+`td` 要素とグリッドセル (`gridcell`) ロールが適用された要素の両方を編集可能にして、スプレッドシートの編集と同様の機能を模倣することができます。 これは、HTML の [`contenteditable` 属性](/ja/docs/Web/HTML/Global_attributes/contenteditable)を適用することによって行われます。
+
+```html
+Notes
+
+Item cost
+```
+
+`contenteditable` は、適用される要素を Tab キーでフォーカス可能にします。 グリッドセルが条件付きで編集が禁止されている状態に切り替わる場合は、グリッドセル要素で [`aria-readonly`](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-readonly_attribute) を切り替えます。
+
+#### 展開可能なセル
+
+ツリーグリッド ([treegrid](/ja/docs/Web/Accessibility/ARIA/Roles/Treegrid_role)) では、`aria-expanded` 属性を切り替えることでグリッドセルを展開可能にできます。 この属性が指定されている場合、個々のグリッドセルにのみ適用されることに注意してください。
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+- grid
+ - : 親要素が情報を表スタイルまたはツリースタイルでグループ化するものであることを伝えます。
+- row
+ - : グリッドセル (`gridcell`) が情報の表スタイルでのグループ化による行の一部であることを伝えるために必要です。
+- columnheader
+ - : どの要素が関連する列ヘッダーであるかを指定します。
+- aria-colindex
+ - : 情報を表スタイルでグループ化した列の残りの部分に対する要素の位置を識別します。
+- rowheader
+ - : どの要素が関連する行ヘッダーであるかを指定します。
+- aria-rowindex
+ - : 情報を表スタイルでグループ化した行の残りの部分に対する要素の位置を識別します。
+
+### 例
+
+次の例では、情報を表スタイルでグループ化したものを作成します。
+
+```html
+Jovian gas giant planets
+
+
+
+
Name
+
Diameter (km)
+
Length of day (hours)
+
Distance from Sun (106 km)
+
Number of moons
+
+
+
+
+
Jupiter
+
142,984
+
9.9
+
778.6
+
67
+
+
+
+
+
Saturn
+
120,536
+
10.7
+
1433.5
+
62
+
+
+
+```
+
+## アクセシビリティに関する懸念
+
+グリッドセル (`gridcell`) および特定のグリッドセル (`gridcell`) 関連の ARIA のロールとプロパティのサポートは、支援技術ではサポートが不十分です。 可能であれば、代わりに[ネイティブな HTML の表のマークアップ](/ja/docs/Web/HTML/Element/table)を利用してください。
+
+## ベストプラクティス
+
+ARIA の第一のルールは、ネイティブな HTML の要素や属性に必要としている意味論と振る舞いがある場合、要素を転用して ARIA のロール、ステート、プロパティを追加してアクセス可能にする代わりに、ネイティブな HTML を使用することです。 そのため、ARIA と JavaScript を使用して表の形態と機能を再作成するのではなく、[ネイティブな HTML の表のマークアップ](/ja/docs/Web/HTML/Element/table)を利用することをお勧めします。
+
+## 関連情報
+
+- [表要素](/ja/docs/Web/HTML/Element/table)
+- [ARIA: grid ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role)
+- [Grid Role - Maxability](http://www.maxability.co.in/wai-aria-overview/grid-role/)
+- [表の行要素](/ja/docs/Web/HTML/Element/tr)
+- [ARIA: row ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Row_Role)
+- [Row Role - Maxability](http://www.maxability.co.in/wai-aria-overview/row-role/)
+- [aria-rowcount - Maxability](http://www.maxability.co.in/2018/09/aria-rowcount-property/)
+- [ARIA: rowgroup ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Rowgroup_Role)
+- [Rowgroup Role - Maxability](http://www.maxability.co.in/wai-aria-overview/rowgroup-role/)
+- [表のヘッダー要素](/ja/docs/Web/HTML/Element/th)
+- [Columnheader - Maxability](http://www.maxability.co.in/wai-aria-overview/columnheader-role/)
+- [aria-colcount - Maxability](http://www.maxability.co.in/2017/07/aria-colcount-property/)
+- [表のデータセル要素](/ja/docs/Web/HTML/Element/td)
+- [gridcell: Accessible Rich Internet Applications (WAI-ARIA) 1.1](https://www.w3.org/TR/wai-aria-1.1/#gridcell)
+- [Gridcell Role - Maxability](http://www.maxability.co.in/wai-aria-overview/gridcell-role/)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/group_role/index.html b/files/ja/web/accessibility/aria/roles/group_role/index.html
deleted file mode 100644
index fc1a02e26b7204..00000000000000
--- a/files/ja/web/accessibility/aria/roles/group_role/index.html
+++ /dev/null
@@ -1,125 +0,0 @@
----
-title: group ロールの使用
-slug: Web/Accessibility/ARIA/Roles/group_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_group_role
-original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_group_role
----
-説明
-
-このテクニックは、group
ロールを使用する方法を示し、ブラウザーと支援技術に与える影響について説明します。
-
-group
ロールは、region
とは対照的に、目次やページの要約に含まれないように意図された一連のユーザーインターフェイスオブジェクトを識別するために使用されます(スクリプトや支援技術によって動的に作成される構造のような)。 グループ(group)はページ上で主要な知覚可能なセクションと見なされるべきではありません。 このロールが要素に追加されると、ブラウザーは、アクセス可能なグループイベントを支援技術製品に送り、支援技術製品はそれをユーザーに通知することができます。
-
-グループは、階層内の兄弟の集合を形成するツリーウィジェット内の子供や、ディレクトリ内に同じコンテナを持つ項目の集合のような、関連する機能を持つ項目の論理的集合を形成するために使用されるべきです。 ただし、グループがリストのコンテキストで使用される場合、作者はその子を listitem
要素に制限する必要があります。 グループ要素はネストすることができます。
-
-支援技術によるグループの適切な取り扱いは、それが提供されるコンテキストによって決まります。
-
-作者がページの目次に含まれることを保証するためにセクションが重要であると考える場合は、そのセクションに region
ロールまたは標準的なランドマークロール を割り当てるべきです。
-
-ユーザーエージェントと支援技術への影響
-
-group
ロールが要素に追加されるか、またはそのような要素が可視になると、ユーザーエージェントは以下を行うべきです。
-
-
- オペレーティングシステムのアクセシビリティ API で group
ロールを持つものとして要素を公開します。
- オペレーティングシステムのアクセシビリティ API をサポートしている場合は、アクセス可能なグループイベントを発生させます。
-
-
-支援技術製品は、そのようなイベントをリスンし、それに応じてユーザーに以下を通知するべきです。
-
-
- スクリーンリーダーは、フォーカスが最初にその中のコントロールに着くとグループをアナウンスし、もし aria-describedby
が設定されていれば、その説明が読み上げられます。 これに続いて、フォーカスされたコントロールをアナウンスすることができます。
- スクリーン拡大鏡でグループが拡大されることがあります。
-
-
-注 : 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の1つで、したがって規範的ではありません。
-
-例
-
-例 1: HTML ツリービューでの group ロールの使用
-
-以下のスニペットは、HTML ソースコードに group ロールを直接追加する方法を示しています。
-
-<div id="tree1" role="tree" tabindex="-1">
- <div id="animals" class="groupHeader" role="presentation" aria-owns="animalGroup" aria-expanded="true">
- <img role="presentation" tabindex="-1" src="images/treeExpanded.gif" />
- <span role="treeitem" tabindex="0">動物</span>
- </div>
- <div id="animalGroup" role="group">
- <div id="birds" role="treeitem">
- <span tabindex="-1">鳥</span>
- </div>
- <div id="cats" class="groupHeader" role="presentation" aria-owns="catGroup" aria-expanded="false">
- <img role="presentation" tabindex="-1" src="images/treeContracted.gif" />
- <span role="treeitem" tabindex="0">猫</span>
- </div>
- <div id="catGroup" role="group">
- <div id="siamese" role="treeitem">
- <span tabindex="-1">シャム猫</span>
- </div>
- <div id="tabby" role="treeitem">
- <span tabindex="-1">虎猫</span>
- </div>
- </div>
- </div>
-</div>
-
-
-
-以下のスニペットは、HTML ソースコードに group ロールを直接追加する方法を示しています。
-
-<div role="menu">
- <ul role="group">
- <li role="menuitem">受信トレイ</li>
- <li role="menuitem">アーカイブ</li>
- <li role="menuitem">ごみ箱</li>
- </ul>
- <ul role="group">
- <li role="menuitem">カスタムフォルダ 1</li>
- <li role="menuitem">カスタムフォルダ 2</li>
- <li role="menuitem">カスタムフォルダ 3</li>
- </ul>
- <ul role="group">
- <li role="menuitem">新規フォルダ</li>
- </ul>
-</div>
-
-動作する例
-
-
-
-注
-
-
- グループの DOM サブツリーの外側にあるグループメンバーは、そのグループに参加するために明示的な関係を割り当てられている必要があります。
-
-
-使用された ARIA 属性
-
-
-
-
-
-
-
-互換性
-
-TBD: 一般的な UA と AT 製品の組み合わせに関するサポート情報を追加する
-
-その他のリソース
-
-
diff --git a/files/ja/web/accessibility/aria/roles/group_role/index.md b/files/ja/web/accessibility/aria/roles/group_role/index.md
new file mode 100644
index 00000000000000..294525ca9acf4e
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/group_role/index.md
@@ -0,0 +1,113 @@
+---
+title: group ロールの使用
+slug: Web/Accessibility/ARIA/Roles/group_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_group_role
+original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_group_role
+---
+### 説明
+
+このテクニックは、[`group`](http://www.w3.org/TR/wai-aria/#group) ロールを使用する方法を示し、ブラウザーと支援技術に与える影響について説明します。
+
+`group` ロールは、[`region`](http://www.w3.org/TR/wai-aria/#region) とは対照的に、目次やページの要約に含まれないように意図された一連のユーザーインターフェイスオブジェクトを識別するために使用されます(スクリプトや支援技術によって動的に作成される構造のような)。 グループ(group)はページ上で主要な知覚可能なセクションと見なされるべきではありません。 このロールが要素に追加されると、ブラウザーは、アクセス可能なグループイベントを支援技術製品に送り、支援技術製品はそれをユーザーに通知することができます。
+
+グループは、階層内の兄弟の集合を形成するツリーウィジェット内の子供や、ディレクトリ内に同じコンテナを持つ項目の集合のような、関連する機能を持つ項目の論理的集合を形成するために使用されるべきです。 ただし、グループがリストのコンテキストで使用される場合、作者はその子を [`listitem`](http://www.w3.org/TR/wai-aria/#listitem) 要素に制限する必要があります。 グループ要素はネストすることができます。
+
+支援技術によるグループの適切な取り扱いは、それが提供されるコンテキストによって決まります。
+
+作者がページの目次に含まれることを保証するためにセクションが重要であると考える場合は、そのセクションに [`region`](http://www.w3.org/TR/wai-aria/#region) ロールまたは[標準的なランドマークロール](http://www.w3.org/TR/wai-aria/#landmark_roles)を割り当てるべきです。
+
+### ユーザーエージェントと支援技術への影響
+
+`group` ロールが要素に追加されるか、またはそのような要素が可視になると、ユーザーエージェントは以下を行うべきです。
+
+- オペレーティングシステムのアクセシビリティ API で `group` ロールを持つものとして要素を公開します。
+- オペレーティングシステムのアクセシビリティ API をサポートしている場合は、アクセス可能なグループイベントを発生させます。
+
+支援技術製品は、そのようなイベントをリスンし、それに応じてユーザーに以下を通知するべきです。
+
+- スクリーンリーダーは、フォーカスが最初にその中のコントロールに着くとグループをアナウンスし、もし [`aria-describedby`](http://www.w3.org/TR/wai-aria/#aria-describedby) が設定されていれば、その説明が読み上げられます。 これに続いて、フォーカスされたコントロールをアナウンスすることができます。
+- スクリーン拡大鏡でグループが拡大されることがあります。
+
+> **Note:** 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の 1 つで、したがって規範的ではありません。
+
+### 例
+
+#### 例 1: HTML ツリービューでの group ロールの使用
+
+以下のスニペットは、HTML ソースコードに group ロールを直接追加する方法を示しています。
+
+```html
+
+```
+
+#### 例 2: HTML ドロップダウンメニューでの group ロールの使用
+
+以下のスニペットは、HTML ソースコードに group ロールを直接追加する方法を示しています。
+
+```html
+
+
+
+ カスタムフォルダ 1
+ カスタムフォルダ 2
+ カスタムフォルダ 3
+
+
+
+```
+
+#### 動作する例
+
+- Unknown Title (http\://test.cita.illinois.edu/aria/tree/tree2.php) **\[broken link]**
+
+### 注
+
+- グループの DOM サブツリーの外側にあるグループメンバーは、そのグループに参加するために明示的な関係を割り当てられている必要があります。
+
+### 使用された ARIA 属性
+
+- [group](http://www.w3.org/TR/wai-aria/#group)
+
+### 関連する ARIA 技術
+
+- [region](http://www.w3.org/TR/wai-aria/#region) ロール
+
+### 互換性
+
+TBD: 一般的な UA と AT 製品の組み合わせに関するサポート情報を追加する
+
+### その他のリソース
+
+- ARIA Best Practices – Directories, Groups and Regions: (該当項目は削除されています。)
diff --git a/files/ja/web/accessibility/aria/roles/heading_role/index.html b/files/ja/web/accessibility/aria/roles/heading_role/index.html
deleted file mode 100644
index 8bdcd6eb73c2de..00000000000000
--- a/files/ja/web/accessibility/aria/roles/heading_role/index.html
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: 'ARIA: heading ロール'
-slug: Web/Accessibility/ARIA/Roles/heading_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/heading_role
----
-見出し (heading
) ロールは、この要素をページやセクションの見出しとして定義します。 ページに構造を与えるために、セクション間の関係を示すレベルも提供するべきです。
-
-<div role="heading" aria-level="1">これはメインのページ見出しです</div>
-
-
-これは div
内のテキストをページのメインの見出しとして定義し、aria-level
属性を介してレベル 1 であることを示しています。
-
-説明
-
-見出しロールは、この要素を見出しのように扱うべきであることを支援技術に示します。 スクリーンリーダーは、テキストを読み上げて、見出しのように書式設定されていることを示すことでしょう。 さらに、レベルは、この見出しがページ構造のどの部分を表すかを支援技術に伝えます。 レベル 1 の見出しは通常、ページのメインの見出しを示し、レベル 2 の見出しは最初のサブセクション、レベル 3 はそのサブセクション等々となります。
-
-関連する ARIA のロール、ステート、プロパティ
-
-
- aria-level
- aria-level
属性は、文書構造の見出しレベルを指定します。 レベルが存在しない場合のデフォルト値は 2 です。
-
-
-キーボードインタラクション
-
-このロールは特別なキーボードナビゲーションを必要としません。 どんな見出しもそうであるように、ID を与えることで、アンカーリンクから参照できるようになり、キーボードを介してアクセス可能となります。
-
-必要な JavaScript 機能
-
-
- 必要なイベントハンドラ
- 無し
- 属性値の変更
- コンテンツを動的に挿入しない限り、通常は必要ありません。 万一そのようなことがあるならば、新しく追加された見出しには、文書構造の残りの部分と整合性のある値を持つ aria-level
属性が必要です。
-
-
-
-
見出し (heading
) ロールと aria-level
を持つ <div>
または <span>
を使用する代わりに、ネイティブの <h1>
から <h6>
要素を使用して、このテキストが見出しであり、構造のどの部分を表しているかを示すことを検討してください。
-
-
-例
-
-以下は典型的なページ構造を示しています。
-
-<div id="container">
-<div role="heading" aria-level="1">メインのページ見出し</div>
-<p>この記事では、ページ構造の表示について説明します。</p>
-<div role="heading" aria-level="2">前書き</div>
-<p>導入テキスト。</p>
-<div role="heading" aria-level="2">第 1 章</div>
-<p>テキスト</p>
-<div role="heading" aria-level="3">第 1.1 章</div>
-<p>サブセクションにさらにテキストがあります。</p>
-...</div>
-
-ただし、代わりに次のようにするべきです。
-
-<div id="container">
-<h1>メインのページ見出し</h1>
-<p>この記事では、ページ構造の表示について説明します。</p>
-<h2>前書き</h2>
-<p>導入テキスト。</p>
-<h2>第 1 章</h2>
-<p>テキスト</p>
-<h3>第 1.1 章</h3>
-<p>サブセクションにさらにテキストがあります。</p>
-...</div>
-
-アクセシビリティに関する懸念
-
-見出し (heading
) ロールと aria-level
属性を使用する必要がある場合は、HTML との整合性を保つために、レベル 6 を超えないようにしてください。 理論的にはもっと大きくすることができ、一部のスクリーンリーダーはそれをサポートしているかもしれませんが、他のブラウザーとスクリーンリーダーの組み合わせでは結果が予測できない場合があります。
-
-ベストプラクティス
-
-このロールを使用する最善の方法は、このロールをまったく使用せずに、代わりに上記の例に示すように、ネイティブの見出しタグ <h1>
から <h6>
を使用することです。 見出し (heading
) ロールと aria-level
属性は、大きな変更を加えることができないレガシーコードのアクセシビリティを改良するためにのみ使用するべきです。
-
-追加の利点
-
-無し
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#heading","heading")}}
- {{Spec2('ARIA')}}
-
-
-
-
-優先順位
-
-見出しロールは、それを使用している要素のネイティブな意味論的意味をオーバーライドします。 さらに、aria-level
属性は、どのレベルの見出しが公開されているかを決定します。
-
-スクリーンリーダーのサポート
-
-TBD
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/heading_role/index.md b/files/ja/web/accessibility/aria/roles/heading_role/index.md
new file mode 100644
index 00000000000000..9a04aa8b7e33a3
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/heading_role/index.md
@@ -0,0 +1,102 @@
+---
+title: 'ARIA: heading ロール'
+slug: Web/Accessibility/ARIA/Roles/heading_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/heading_role
+---
+見出し (`heading`) ロールは、この要素をページやセクションの見出しとして定義します。 ページに構造を与えるために、セクション間の関係を示すレベルも提供するべきです。
+
+```html
+これはメインのページ見出しです
+```
+
+これは `div` 内のテキストをページのメインの見出しとして定義し、`aria-level` 属性を介してレベル 1 であることを示しています。
+
+## 説明
+
+見出しロールは、この要素を見出しのように扱うべきであることを支援技術に示します。 スクリーンリーダーは、テキストを読み上げて、見出しのように書式設定されていることを示すことでしょう。 さらに、レベルは、この見出しがページ構造のどの部分を表すかを支援技術に伝えます。 レベル 1 の見出しは通常、ページのメインの見出しを示し、レベル 2 の見出しは最初のサブセクション、レベル 3 はそのサブセクション等々となります。
+
+### 関連する ARIA のロール、ステート、プロパティ
+
+- `aria-level`
+ - : `aria-level` 属性は、文書構造の見出しレベルを指定します。 レベルが存在しない場合のデフォルト値は 2 です。
+
+### キーボードインタラクション
+
+このロールは特別なキーボードナビゲーションを必要としません。 どんな見出しもそうであるように、ID を与えることで、アンカーリンクから参照できるようになり、キーボードを介してアクセス可能となります。
+
+### 必要な JavaScript 機能
+
+- 必要なイベントハンドラ
+ - : 無し
+- 属性値の変更
+ - : コンテンツを動的に挿入しない限り、通常は必要ありません。 万一そのようなことがあるならば、新しく追加された見出しには、文書構造の残りの部分と整合性のある値を持つ `aria-level` 属性が必要です。
+
+> **Note:** 見出し (`heading`) ロールと `aria-level` を持つ `` または `
` を使用する代わりに、ネイティブの `` から `` 要素を使用して、このテキストが見出しであり、構造のどの部分を表しているかを示すことを検討してください。
+
+## 例
+
+以下は典型的なページ構造を示しています。
+
+```html
+
+
メインのページ見出し
+
この記事では、ページ構造の表示について説明します。
+
前書き
+
導入テキスト。
+
第 1 章
+
テキスト
+
第 1.1 章
+
サブセクションにさらにテキストがあります。
+...
+```
+
+ただし、代わりに次のようにするべきです。
+
+```html
+
+
メインのページ見出し
+
この記事では、ページ構造の表示について説明します。
+
前書き
+
導入テキスト。
+
第 1 章
+
テキスト
+
第 1.1 章
+
サブセクションにさらにテキストがあります。
+...
+```
+
+## アクセシビリティに関する懸念
+
+見出し (`heading`) ロールと `aria-level` 属性を使用する必要がある場合は、HTML との整合性を保つために、レベル 6 を超えないようにしてください。 理論的にはもっと大きくすることができ、一部のスクリーンリーダーはそれをサポートしているかもしれませんが、他のブラウザーとスクリーンリーダーの組み合わせでは結果が予測できない場合があります。
+
+## ベストプラクティス
+
+このロールを使用する最善の方法は、このロールをまったく使用せずに、代わりに上記の例に示すように、ネイティブの見出しタグ `` から `` を使用することです。 見出し (`heading`) ロールと `aria-level` 属性は、大きな変更を加えることができないレガシーコードのアクセシビリティを改良するためにのみ使用するべきです。
+
+### 追加の利点
+
+無し
+
+## 仕様
+
+| 仕様 | 状態 |
+| -------------------------------------------------------- | ------------------------ |
+| {{SpecName("ARIA","#heading","heading")}} | {{Spec2('ARIA')}} |
+
+## 優先順位
+
+見出しロールは、それを使用している要素のネイティブな意味論的意味をオーバーライドします。 さらに、`aria-level` 属性は、どのレベルの見出しが公開されているかを決定します。
+
+## スクリーンリーダーのサポート
+
+TBD
+
+## 関連情報
+
+- [\–\: HTML の見出し要素](/ja/docs/Web/HTML/Element/Heading_Elements)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/index.html b/files/ja/web/accessibility/aria/roles/index.html
deleted file mode 100644
index 7e078f4f9ecf37..00000000000000
--- a/files/ja/web/accessibility/aria/roles/index.html
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: WAI-ARIA ロール
-slug: Web/Accessibility/ARIA/Roles
-translation_of: Web/Accessibility/ARIA/Roles
----
- このページは、MDN で説明されているすべての WAI-ARIA ロールをカバーするリファレンスページを一覧にしています。ロールの完全なリストについては、ARIA を使用する: ロール、ステート、プロパティ をご覧ください。
-
-{{SubpagesWithSummaries}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/index.md b/files/ja/web/accessibility/aria/roles/index.md
new file mode 100644
index 00000000000000..4f643771400f77
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/index.md
@@ -0,0 +1,66 @@
+---
+title: WAI-ARIA ロール
+slug: Web/Accessibility/ARIA/Roles
+translation_of: Web/Accessibility/ARIA/Roles
+---
+このページは、MDN で説明されているすべての WAI-ARIA ロールをカバーするリファレンスページを一覧にしています。ロールの完全なリストについては、[ARIA を使用する: ロール、ステート、プロパティ](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques)をご覧ください。
+
+{{SubpagesWithSummaries}}
+
+- [alertdialog](/ja/docs/Web/Accessibility/ARIA/Roles/Alertdialog_Role)
+- [banner](/ja/docs/Web/Accessibility/ARIA/Roles/Banner_Role)
+- [Combobox](/ja/docs/Web/Accessibility/ARIA/Roles/Combobox_Role)
+- [Command](/ja/docs/Web/Accessibility/ARIA/Roles/Command_Role)
+- [Columnheader ](/ja/docs/Web/Accessibility/ARIA/Roles/Columnheader_Role)(Estelle)
+- [complementary](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Complementary_role)
+- [composite](/ja/docs/Web/Accessibility/ARIA/Roles/Composite_Role)
+- [Definition](/ja/docs/Web/Accessibility/ARIA/Roles/Definition_Role)
+- [Directory](/ja/docs/Web/Accessibility/ARIA/Roles/Directory_Role)
+- [Feed](/ja/docs/Web/Accessibility/ARIA/Roles/Feed_Role)
+- [Gridcell](/ja/docs/Web/Accessibility/ARIA/Roles/Gridcell_Role) (Eric E)
+- [Group](/ja/docs/Web/Accessibility/ARIA/Roles/Group_Role)
+- [input](/ja/docs/Web/Accessibility/ARIA/Roles/Input_Role)
+- [landmark](/ja/docs/Web/Accessibility/ARIA/Roles/Landmark_Role)
+- [Link](/ja/docs/Web/Accessibility/ARIA/Roles/Link_Role) - old page
+- [listbox](/ja/docs/Web/Accessibility/ARIA/Roles/Listbox_Role)
+- [Log](/ja/docs/Web/Accessibility/ARIA/Roles/Log_Role) - old page
+- [Marquee](/ja/docs/Web/Accessibility/ARIA/Roles/Marquee_Role)
+- [math](/ja/docs/Web/Accessibility/ARIA/Roles/Math_Role)
+- [menu](/ja/docs/Web/Accessibility/ARIA/Roles/Menu_Role)
+- [menubar](/ja/docs/Web/Accessibility/ARIA/Roles/Menubar_Role)
+- [Menuitem](/ja/docs/Web/Accessibility/ARIA/Roles/Menuiitem_Role)
+- [Menuitemcheckbox](/ja/docs/Web/Accessibility/ARIA/Roles/Menuitemcheckbox_Role)
+- [Menuitemradio](/ja/docs/Web/Accessibility/ARIA/Roles/Menuitemradio_Role)
+- [none](/ja/docs/Web/Accessibility/ARIA/Roles/None_Role)
+- [note](/ja/docs/Web/Accessibility/ARIA/Roles/Note_Role)
+- [Option](/ja/docs/Web/Accessibility/ARIA/Roles/Option_Role)
+- [presentation](/ja/docs/Web/Accessibility/ARIA/Roles/Presentation_Role)
+- [Progressbar](/ja/docs/Web/Accessibility/ARIA/Roles/Progressbar_Role) - old page
+- [Radio](/ja/docs/Web/Accessibility/ARIA/Roles/Radio_Role) - old page
+- [radiogroup](/ja/docs/Web/Accessibility/ARIA/Roles/Radiogroup_Role)
+- [range](/ja/docs/Web/Accessibility/ARIA/Roles/Range_Role)
+- [region](/ja/docs/Web/Accessibility/ARIA/Roles/Region_Role)
+- [roletype](/ja/docs/Web/Accessibility/ARIA/Roles/Roletype_Role)
+- [rowheader](/ja/docs/Web/Accessibility/ARIA/Roles/Rowheader_Role)(Estelle)
+- [Scrollbar](/ja/docs/Web/Accessibility/ARIA/Roles/Scrollbar_Role)
+- [searchbox](/ja/docs/Web/Accessibility/ARIA/Roles/Searchbox_Role)
+- [section](/ja/docs/Web/Accessibility/ARIA/Roles/Section_Role)
+- [sectionhead](/ja/docs/Web/Accessibility/ARIA/Roles/Sectionhead_Role)
+- [select](/ja/docs/Web/Accessibility/ARIA/Roles/Select_Role)
+- [separator](/ja/docs/Web/Accessibility/ARIA/Roles/Separator_Role)
+- [Slider](/ja/docs/Web/Accessibility/ARIA/Roles/Slider_Role) - old page
+- [Spinbutton](/ja/docs/Web/Accessibility/ARIA/Roles/Spinbutton_Role)
+- [Status](/ja/docs/Web/Accessibility/ARIA/Roles/Status_Role) - old page
+- [structure](/ja/docs/Web/Accessibility/ARIA/Roles/Structure_Role)
+- [tab](/ja/docs/Web/Accessibility/ARIA/Roles/Tab_role)
+- [tablist](/ja/docs/Web/Accessibility/ARIA/Roles/Tablist_Role) (Michiel)
+- [Tabpanel](/ja/docs/Web/Accessibility/ARIA/Roles/Tabpanel_Role) (Michiel)
+- [term](/ja/docs/Web/Accessibility/ARIA/Roles/Term_Role)
+- [Timer](/ja/docs/Web/Accessibility/ARIA/Roles/Time_Role)
+- [toolbar](/ja/docs/Web/Accessibility/ARIA/Roles/Toolbar_Role)
+- [Tooltip](/ja/docs/Web/Accessibility/ARIA/Roles/Tooltip_Role)
+- [Tree](/ja/docs/Web/Accessibility/ARIA/Roles/Tree_Role)
+- [treegrid](/ja/docs/Web/Accessibility/ARIA/Roles/Treegrid_Role)
+- [Treeitem](/ja/docs/Web/Accessibility/ARIA/Roles/Treeitem_Role)
+- [widget](/ja/docs/Web/Accessibility/ARIA/Roles/Widget_Role)
+- [window](/ja/docs/Web/Accessibility/ARIA/Roles/Window_Role)
diff --git a/files/ja/web/accessibility/aria/roles/link_role/index.html b/files/ja/web/accessibility/aria/roles/link_role/index.html
deleted file mode 100644
index 59f16a99dffaec..00000000000000
--- a/files/ja/web/accessibility/aria/roles/link_role/index.html
+++ /dev/null
@@ -1,98 +0,0 @@
----
-title: link ロールの使用
-slug: Web/Accessibility/ARIA/Roles/link_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_link_role
-original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_link_role
----
-説明
-
-このテクニックは、link
ロールを使用する方法を示し、ブラウザーと支援技術に与える影響について説明します。
-
-link
ロールは、アプリケーションまたは外部にあるリソースへのハイパーリンクを作成する要素を識別するために使用されます。 このロールが要素に追加されると、タブを使用してリンクへのフォーカスを変更したり、リンクの実行にスペースやエンターを使用することができます。
-
-注 : 可能であれば、ネイティブ要素は古いユーザーエージェントや支援技術によって広くサポートされているため、link
ロールではなくネイティブの {{HTMLElement("a")}} 要素を使用することをお勧めします。 ネイティブ {{HTMLElement("a")}} 要素は、追加のカスタマイズを必要とせずに、デフォルトでキーボードとフォーカスの要件もサポートしています。
-
-tabindex
属性は、タブの順序で要素の位置を直接指定するために、このロールで任意に使用できます。
-
-ユーザーエージェントと支援技術への影響
-
-要素に link
ロールが追加された場合、またはそのような要素が可視になる場合、ユーザーエージェントは以下を行うべきです。
-
-
- オペレーティングシステムのアクセシビリティ API で link
ロールを持つ要素を公開します。
- オペレーティングシステムのアクセシビリティ API がサポートされている場合は、アクセシビリティ API を使用してアクセス可能なリンクイベントを発生させます。
-
-
-支援技術製品は、そのようなイベントをリスンし、それに応じてユーザーに以下を通知するべきです。
-
-
- スクリーンリーダーは、リンクがフォーカスされているときに、リンクであるという事実とともに、リンクまたはそのラベルのテキストをアナウンスするべきです。 ARIA リンクは通常のリンクと同様にスクリーンリーダーの「リンクのリスト」機能に含まれているべきで、「リンクのアクティブ化」や「リンクへの移動」など、このダイアログのリストに対するアクションは通常のリンクと同じように行われるべきです。
- スクリーン拡大鏡はリンクを拡大することがあります。
-
-
-
-
-注 : 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の1つで、したがって規範的ではありません。
-
-例
-
-例 1: HTML コードにロールを追加する
-
-以下のスニペットは、link
ロールが html ソースコードに直接どのように追加されるかを示しています。
-
-<div role="link">リンク</div>
-
-例 2: span を使用したアプリケーションからのアクセス可能なリンクの構築
-
-<script type="text/javascript">
-sap = {ui:{keycodes:{SPACE:32, ENTER:13 }}};
-//リンク上のクリックとキーダウンを処理する
-function navigateLink(evt) {
- if (evt.type=="click" ||
- evt.keyCode == sap.ui.keycodes.ENTER) {
- var ref = evt.target != null ? evt.target : evt.srcElement;
- if (ref) window.open(ref.getAttribute("href"),"_blank");
- }
-}
-</script>
-
-<body role="application">
-
- <h3>span を使った単純なリンクの構築</h3>
- <span href="http://www.w3c.org" onkeydown="navigateLink(event)" onclick="navigateLink(event)" tabindex="0" id="link1" role="link" class="link">
- スペースバーまたはエンターキーを使用してこのリンクをアクティブ化します。
- </span>
-</body>
-
-
-注
-
-リンクを押すとアクションがトリガーされますが、ブラウザーのフォーカスは変更されず、新しいページに移動することもありません。 link
ロールの代わりに button
ロールを使用することを検討してください。
-
-使用された ARIA 属性
-
-
-
-
-
-
-
-互換性
-
-
-
-その他のリソース
-
-
diff --git a/files/ja/web/accessibility/aria/roles/link_role/index.md b/files/ja/web/accessibility/aria/roles/link_role/index.md
new file mode 100644
index 00000000000000..3277c34e68ef68
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/link_role/index.md
@@ -0,0 +1,87 @@
+---
+title: link ロールの使用
+slug: Web/Accessibility/ARIA/Roles/link_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_link_role
+original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_link_role
+---
+### 説明
+
+このテクニックは、[`link`](https://www.w3.org/WAI/PF/aria-1.1/roles#link) ロールを使用する方法を示し、ブラウザーと支援技術に与える影響について説明します。
+
+`link` ロールは、アプリケーションまたは外部にあるリソースへのハイパーリンクを作成する要素を識別するために使用されます。 このロールが要素に追加されると、タブを使用してリンクへのフォーカスを変更したり、リンクの実行にスペースやエンターを使用することができます。
+
+> **Note:** 可能であれば、ネイティブ要素は古いユーザーエージェントや支援技術によって広くサポートされているため、`link` ロールではなくネイティブの {{HTMLElement("a")}} 要素を使用することをお勧めします。 ネイティブ {{HTMLElement("a")}} 要素は、追加のカスタマイズを必要とせずに、デフォルトでキーボードとフォーカスの要件もサポートしています。
+
+[`tabindex`](https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex) 属性は、タブの順序で要素の位置を直接指定するために、このロールで任意に使用できます。
+
+### ユーザーエージェントと支援技術への影響
+
+要素に `link` ロールが追加された場合、またはそのような要素が可視になる場合、ユーザーエージェントは以下を行うべきです。
+
+- オペレーティングシステムのアクセシビリティ API で `link` ロールを持つ要素を公開します。
+- オペレーティングシステムのアクセシビリティ API がサポートされている場合は、アクセシビリティ API を使用してアクセス可能なリンクイベントを発生させます。
+
+支援技術製品は、そのようなイベントをリスンし、それに応じてユーザーに以下を通知するべきです。
+
+- スクリーンリーダーは、リンクがフォーカスされているときに、リンクであるという事実とともに、リンクまたはそのラベルのテキストをアナウンスするべきです。 ARIA リンクは通常のリンクと同様にスクリーンリーダーの「リンクのリスト」機能に含まれているべきで、「リンクのアクティブ化」や「リンクへの移動」など、このダイアログのリストに対するアクションは通常のリンクと同じように行われるべきです。
+- スクリーン拡大鏡はリンクを拡大することがあります。
+
+**注**: 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の 1 つで、したがって規範的ではありません。
+
+### 例
+
+#### 例 1: HTML コードにロールを追加する
+
+以下のスニペットは、`link` ロールが html ソースコードに直接どのように追加されるかを示しています。
+
+```html
+リンク
+```
+
+#### 例 2: span を使用したアプリケーションからのアクセス可能なリンクの構築
+
+```html
+
+
+
+
+ span を使った単純なリンクの構築
+
+ スペースバーまたはエンターキーを使用してこのリンクをアクティブ化します。
+
+
+```
+
+### 注
+
+リンクを押すとアクションがトリガーされますが、ブラウザーのフォーカスは変更されず、新しいページに移動することもありません。 `link` ロールの代わりに [`button`](http://www.w3.org/TR/wai-aria/#button) ロールを使用することを検討してください。
+
+### 使用された ARIA 属性
+
+- [link](http://www.w3.org/TR/wai-aria/#link)
+
+### 関連する ARIA 技術
+
+- [button](https://www.w3.org/TR/wai-aria/#button) ロール
+
+### 互換性
+
+TBD: 一般的な UA と AT 製品の組み合わせに関するサポート情報を追加する
+
+### その他のリソース
+
+- ARIA のベストプラクティス - link ロール:
diff --git a/files/ja/web/accessibility/aria/roles/list_role/index.html b/files/ja/web/accessibility/aria/roles/list_role/index.html
deleted file mode 100644
index fd96e315bd4466..00000000000000
--- a/files/ja/web/accessibility/aria/roles/list_role/index.html
+++ /dev/null
@@ -1,120 +0,0 @@
----
-title: 'ARIA: list ロール'
-slug: Web/Accessibility/ARIA/Roles/List_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/List_role
----
-ARIA のリスト (list
) ロールは、項目のリストを識別するために使用できます。 これは通常、リスト内に含まれるリスト項目を識別するために使用するリスト項目 (listitem
) ロールと組み合わせて使用します。
-
-<section role="list">
- <div role="listitem">リスト項目 1</div>
- <div role="listitem">リスト項目 2</div>
- <div role="listitem">リスト項目 3</div>
-</section>
-
-
-説明
-
-外側のコンテナーとその内側の要素のリストで構成されるコンテンツは、それぞれリスト (list
) とリスト項目 (listitem
) のコンテナーを使用して支援技術で識別できます。 リスト (list
) は、1つ以上のリスト項目 (listitem
) の子を持つか、代わりに1つ以上のグループ (group
) が子として存在し、各グループ (group
) が1つ以上のリスト項目 (listitem
) を子として持つ必要があります。
-
-リストとリスト項目をマークアップするためにどの要素を使用するべきかについて、鉄則はありませんが、リスト項目がリストのコンテキストで意味をなすようにするべきです (例えば、買い物リスト、料理の手順、運転の指示) 。
-
-
-
警告
-
可能な限り、適切な意味論の HTML 要素を使用して、リストとそのリスト項目 ({{htmlelement("ul")}} や {{htmlelement("ol")}} と {{htmlelement("li")}}) をマークアップするべきです。 詳しい例は、ベストプラクティス を参照してください。
-
-
-関連する WAI-ARIA のロール、ステート、プロパティ
-
-
- listitem
-
- リストやディレクトリー内の単一項目。 リスト項目ロールを持つ要素は、リスト (list
) ロールやグループ (group
) ロールを持つ要素内にのみ存在します。
-
- group
-
- ページの目次に掲載されるほど重要ではなく、リスト内にネストされている場合はリスト項目に限定される、関連するオブジェクトのコレクションです。
-
-
-
-キーボードインタラクション
-
-無し
-
-必要な JavaScript 機能
-
-無し
-
-例
-
- ARIA Lists — Scott O'Hara によるいくつかの有用な例と考え (英語)
-
-ベストプラクティス
-
-role="list"
と role="listitem"
は必要な場合のみ使用してください。 例えば、HTML を制御できなくても、JavaScript で事後に動的にアクセシビリティを向上させることができる場合です。
-
-HTML の {{htmlelement("ol")}} と {{htmlelement("ul")}} とは異なり、ARIA のリスト (list
) ロールは順序付きリストと順序無しリストを区別しません。 可能な場合は、リスト ({{htmlelement("ol")}} と {{htmlelement("ul")}}) とリスト項目 ({{htmlelement("li")}}) をマークアップするのに適切な意味論の HTML 要素を使用するべきです。 例えば、上記の例は次のように書き直すべきです。
-
-<ul>
- <li>リスト項目 1</li>
- <li>リスト項目 2</li>
- <li>リスト項目 3</li>
-</ul>
-
-また、リスト項目の順序が重要な場合は、順序付きリストを使用します。
-
-<ol>
- <li>リスト項目 1</li>
- <li>リスト項目 2</li>
- <li>リスト項目 3</li>
-</ol>
-
-
-
注 : ARIA のリストロールとリスト項目ロールでは、順序付きリストと順序無しリストを区別しません。
-
-
-余談ですが、意味論的な HTML 要素である ol
または ul
を使用してプレゼンテーション (presentation
) ロールを適用する場合、ARIA ではリスト項目 (listitem
) 要素に親のリスト (list
) 要素が必須であるため、各子 li
要素はプレゼンテーション (presentation
) ロールを継承することに注意してください。 そのため、li
要素は支援技術には公開されませんが、ネストされたリストを含め、これらの li
要素の内部に含まれる要素は、支援技術からは見えることになります。
-
-
-
注 : タブ付きインターフェイスとして機能する項目のリストをマークアップする場合は、代わりにタブ (tab
)、タブパネル (tabpanel
)、タブリスト (tablist
) のロールを使用するべきです。
-
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#list","list")}}
- {{Spec2('ARIA')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-TBD
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/list_role/index.md b/files/ja/web/accessibility/aria/roles/list_role/index.md
new file mode 100644
index 00000000000000..eacb4c6ea31ac9
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/list_role/index.md
@@ -0,0 +1,97 @@
+---
+title: 'ARIA: list ロール'
+slug: Web/Accessibility/ARIA/Roles/List_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/List_role
+---
+ARIA のリスト (`list`) ロールは、項目のリストを識別するために使用できます。 これは通常、リスト内に含まれるリスト項目を識別するために使用するリスト項目 (`listitem`) ロールと組み合わせて使用します。
+
+```html
+
+ リスト項目 1
+ リスト項目 2
+ リスト項目 3
+
+```
+
+## 説明
+
+外側のコンテナーとその内側の要素のリストで構成されるコンテンツは、それぞれリスト (`list`) とリスト項目 (`listitem`) のコンテナーを使用して支援技術で識別できます。 リスト (`list`) は、1 つ以上のリスト項目 (`listitem`) の子を持つか、代わりに 1 つ以上のグループ (`group`) が子として存在し、各グループ (`group`) が 1 つ以上のリスト項目 (`listitem`) を子として持つ必要があります。
+
+リストとリスト項目をマークアップするためにどの要素を使用するべきかについて、鉄則はありませんが、リスト項目がリストのコンテキストで意味をなすようにするべきです (例えば、買い物リスト、料理の手順、運転の指示) 。
+
+> **Warning:** 可能な限り、適切な意味論の HTML 要素を使用して、リストとそのリスト項目 ({{htmlelement("ul")}} や {{htmlelement("ol")}} と {{htmlelement("li")}}) をマークアップするべきです。 詳しい例は、[ベストプラクティス](#best_practices)を参照してください。
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+- [listitem](/ja/docs/Web/Accessibility/ARIA/Roles/Listitem_role)
+ - : リストやディレクトリー内の単一項目。 リスト項目ロールを持つ要素は、リスト (`list`) ロールやグループ (`group`) ロールを持つ要素内にのみ存在します。
+- [group](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_group_role)
+ - : ページの目次に掲載されるほど重要ではなく、リスト内にネストされている場合はリスト項目に限定される、関連するオブジェクトのコレクションです。
+
+### キーボードインタラクション
+
+無し
+
+### 必要な JavaScript 機能
+
+無し
+
+## 例
+
+[ARIA Lists](https://www.scottohara.me/blog/2018/05/26/aria-lists.html) — Scott O'Hara によるいくつかの有用な例と考え (英語)
+
+## ベストプラクティス
+
+`role="list"` と `role="listitem"` は必要な場合のみ使用してください。 例えば、HTML を制御できなくても、JavaScript で事後に動的にアクセシビリティを向上させることができる場合です。
+
+HTML の {{htmlelement("ol")}} と {{htmlelement("ul")}} とは異なり、ARIA のリスト (`list`) ロールは順序付きリストと順序無しリストを区別しません。 可能な場合は、リスト ({{htmlelement("ol")}} と {{htmlelement("ul")}}) とリスト項目 ({{htmlelement("li")}}) をマークアップするのに適切な意味論の HTML 要素を使用するべきです。 例えば、上記の例は次のように書き直すべきです。
+
+```html
+
+ リスト項目 1
+ リスト項目 2
+ リスト項目 3
+
+```
+
+また、リスト項目の順序が重要な場合は、順序付きリストを使用します。
+
+```html
+
+ リスト項目 1
+ リスト項目 2
+ リスト項目 3
+
+```
+
+> **Note:** ARIA のリストロールとリスト項目ロールでは、順序付きリストと順序無しリストを区別しません。
+
+余談ですが、意味論的な HTML 要素である `ol` または `ul` を使用してプレゼンテーション ([`presentation`](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_presentation_role)) ロールを適用する場合、ARIA ではリスト項目 (`listitem`) 要素に親のリスト (`list`) 要素が必須であるため、各子 `li` 要素はプレゼンテーション (`presentation`) ロールを継承することに注意してください。 そのため、`li` 要素は支援技術には公開されませんが、ネストされたリストを含め、これらの `li` 要素の内部に含まれる要素は、支援技術からは見えることになります。
+
+> **Note:** タブ付きインターフェイスとして機能する項目のリストをマークアップする場合は、代わりにタブ (`tab`)、タブパネル (`tabpanel`)、タブリスト (`tablist`) のロールを使用するべきです。
+
+## 仕様
+
+| 仕様 | 状態 |
+| ------------------------------------------------ | ------------------------ |
+| {{SpecName("ARIA","#list","list")}} | {{Spec2('ARIA')}} |
+
+## スクリーンリーダーのサポート
+
+TBD
+
+## 関連情報
+
+- [Accessibility Object Model](https://wicg.github.io/aom/spec/)
+- [ARIA in HTML](https://w3c.github.io/html-aria/)
+- {{htmlelement("ul")}}
+- {{htmlelement("ol")}}
+- {{htmlelement("li")}}
+- [ARIA: listitem ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Listitem_role)
+- [ARIA: group ロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_group_role)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/listbox_role/index.html b/files/ja/web/accessibility/aria/roles/listbox_role/index.html
deleted file mode 100644
index a44caaf6e1c06c..00000000000000
--- a/files/ja/web/accessibility/aria/roles/listbox_role/index.html
+++ /dev/null
@@ -1,221 +0,0 @@
----
-title: 'ARIA: listbox ロール'
-slug: Web/Accessibility/ARIA/Roles/listbox_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/listbox_role
----
-リストボックス (listbox
) ロールは、HTML の <select>
要素とは異なり、画像を含むことができる、1つまたは複数の静的な項目をユーザーが選択できるリストに使用します。
-
-説明
-
-リストボックス (listbox
) ロールは、HTML の選択 ({{htmlelement("select")}}) 要素と同様に、ユーザーが1つまたは複数の静的な項目を選択できるリストを作成する要素を識別するために使用します。 <select>
とは異なり、リストボックスは画像を含むことができます。 リストボックスのそれぞれの子は、オプション (option
) ロールを持つべきです。
-
-HTML の選択要素や、1項目しか選択できない場合はラジオボタンのグループ、複数項目を選択できる場合はチェックボックスのグループを使用することを強くお勧めします。 なぜなら、全ての子孫に対するフォーカスを管理するためには、キーボードでのインタラクティビティがたくさん必要であり、ネイティブの HTML 要素はこの機能を無料で提供してくれるからです。
-
-リストボックス (listbox
) ロールを持つ要素は、暗黙的な aria-orientation
の値として垂直 (vertical
) を持ちます。
-
-リストに Tab で移動すると、他に何も選択されていない場合はリストの最初の項目が選択されます。 上/下矢印 でリストをナビゲートし、Shift + 上/下矢印 を押すと選択範囲が移動して拡張されます。 1文字以上をタイプ入力すると、リスト項目をナビゲートします (同じ文字はその文字から始まる各項目に移動し、異なる文字はその文字列全体で始まる最初の項目に移動します) 。 現在の項目に関連付けられたコンテキストメニューがある場合、Shift + F10 でそのメニューが起動します。 リスト項目がチェック可能である場合、スペース を使用してチェックボックス (checkbox ) をトグルできます。 選択可能なリスト項目の場合、スペース を使用して選択をトグルし、Shift + スペース を使用して連続する項目を選択し、Ctrl + 矢印 を使用して選択せずに移動し、Ctrl + スペース を使用して連続しない項目を選択できます。 全ての項目を選択するには、チェックボックス、リンクまたは他の方法を使用することをお勧めします。 Ctrl + A は、このためのショートカットキーとして使用できます。 (訳注: 推奨モデルと説明の無い代替モデルの操作方法が混じっているし、それ以外にもキーボードインタラクションに無い説明や異なった説明もあります。)
-
-リストボックスロールが要素に追加されるか、そのような要素が可視になると、スクリーンリーダーは、リストボックスがフォーカスを得たときにリストボックスのラベルとロールをアナウンスします。 オプションや項目がリスト内でフォーカスされると、次にそれがアナウンスされ、スクリーンリーダーがサポートしていれば、続いてリストでの項目の位置が示されます。 リスト内でフォーカスが移動すると、スクリーンリーダーは関連する項目をアナウンスします。
-
-関連する ARIA のロール、ステート、プロパティ
-
-関連するロール
-
-
- option
- 1つ以上のネストされたオプションが必要です。 選択された全てのオプションでは、aria-selected
が true
に設定されています。 選択されていない全てのオプションでは、aria-selected
が (訳注: 省略されるか) false
に設定されています。 オプションが選択可能でない場合は、aria-selected
を省略します (訳注: オプションでは、aria-selected のデフォルトは、false であり、変更できないことを示すなら、aria-disabled や aria-readonly があります) 。
- list
- リスト項目 (listitem
) 要素を含むセクション。
-
-
-ステートとプロパティ
-
-
- aria-activedescendant
- リストボックス内で現在アクティブな要素の id
文字列を保持します。 それがオプション要素である場合、そのオプションの aria-selected
の値が true
であるかどうかに関係なく、それは最後にインタラクトされたオプションの id
になります。 複数選択可能なリストボックス内であっても、1つの id
の値のみを取ります。 id
がリストボックスの DOM 子孫を参照していない場合、その id
は aria-owns
属性の IDs の中に含まれている必要があります。
- aria-owns
- これは、リストボックスの DOM 子要素ではない要素 IDs のスペース区切りのリストです。 ここにリストされている IDs は、他の要素の aria-owns
属性にもリストできません。
- aria-multiselectable
- ユーザーが複数のオプションを選択できる場合は、これを含めて true
に設定します。 true
に設定されている場合、選択可能な全ての オプションには、aria-selected
属性が含まれ、true
または false
に設定されているべきです。 選択可能でない オプションは、aria-selected
属性を持つべきではありません 。
- false
または省略されている場合、いずれかのオプションが選択されているならば、現在選択されているオプションのみが aria-selected
属性を必要とし、true
に設定されている必要があります (訳注: 仕様では、単一選択コンテナーに関する説明が複数選択コンテナーに比べて具体的ではなく曖昧なので、aria-selected を使わない「選択がフォーカスに従う」単一選択コンテナーと aria-selected を使う「選択がフォーカスに従わない」単一選択コンテナーが混ざっているようです) 。
- aria-required
- 空でない文字列値を持つオプションを選択する必要があることを示す論理属性。
- aria-readonly
- ユーザーは、オプションが選択されているかいないかを変更することはできませんが、リストボックスはそれ以外の操作が可能です。
- aria-label
- リストボックスを識別する、人間が読むことができる文字列値。 可視のラベルがある場合は、代わりに aria-labelledby
を使用してそのラベルを参照するべきです。
- aria-labelledby
- リストボックスを識別する、要素 IDs のスペースで区切られたリストで、1つ以上の可視の要素を識別します。 可視のラベルがない場合は、代わりに aria-label
を使用してラベルを含めるべきです。 (注: 2つの L が付いた「labelled」は、アクセシビリティ API の規約に基づく正しいスペルです。)
- aria-roledescription
- リストボックスのロールをより明確に識別する、人間が読むことができる文字列値。 スクリーンリーダーは、ラベル (ある場合) を読んだ後に、「リストボックス」と言う代わりに、この値をユーザーに読み上げることがよくあります。
-
-
-(詳細および ARIA のステートとプロパティの完全なリストについては、ARIA の listbox
(role) の文書を参照してください。)
-
-キーボードインタラクション
-
-
- 単一選択リストボックスがフォーカスを受け取ったとき、
-
- リストボックスがフォーカスを受け取る前にどのオプションも選択されていなかった場合、最初のオプションがフォーカスを受け取ります。 任意で、最初のオプションを自動選択することもできます。
- リストボックスがフォーカスを受け取る前にオプションが選択されていた場合、フォーカスは選択されているオプションに設定されます。
-
-
- 複数選択リストボックスがフォーカスを受け取ったとき、
-
- リストボックスがフォーカスを受け取る前にどのオプションも選択されていなかった場合、フォーカスは最初のオプションに設定され、選択状態の自動変更は行われません。
-
- リストボックスがフォーカスを受け取る前に1つ以上のオプションが選択されていた場合、フォーカスはリストの中で最初に選択されているオプションに設定されます。
-
-
- ↓ (下矢印) : 次のオプションにフォーカスを移動します。 任意で、単一選択リストボックスでは、選択もフォーカスと共に移動することがあります。
- ↑ (上矢印) : 前のオプションにフォーカスを移動します。 任意で、単一選択リストボックスでは、選択もフォーカスと共に移動することがあります。
- Home (任意): 最初のオプションにフォーカスを移動します。 任意で、単一選択リストボックスでは、選択もフォーカスと共に移動することがあります。 5つ以上のオプションがあるリストでは、このキーをサポートすることを強くお勧めします。
- End (任意): 最後のオプションにフォーカスを移動します。 任意で、単一選択リストボックスでは、選択もフォーカスと共に移動することがあります。 5つ以上のオプションがあるリストでは、このキーをサポートすることを強くお勧めします。
- 先行入力は、全てのリストボックス、特に7つ以上のオプションがあるリストボックスに対してお勧めします。
-
- 文字を入力: フォーカスは、入力された文字で始まる名前を持つ次の項目に移動します。
- 複数の文字をすばやく続けて入力: フォーカスは、入力された文字列で始まる名前を持つ次の項目に移動します。
-
-
- 複数選択 : 作成者は、複数選択をサポートするために2つのインタラクションモデルのいずれかを実装することができます。 ユーザーがリストをナビゲートしながら Shift や Ctrl などの修飾キーを押し続けなくてもよい推奨モデルや、選択状態が失われるのを避けるためにナビゲート中に修飾キーを押し続ける必要のある代替モデルがあります。
-
- 推奨選択モデル — 修飾キーを押し続ける必要はありません。
-
- スペース : フォーカスされたオプションの選択状態を変更します。
- Shift + ↓ (下矢印) (任意): 次のオプションにフォーカスを移動し、選択状態をトグルします。
- Shift + ↑ (上矢印) (任意): 前のオプションにフォーカスを移動し、選択状態をトグルします。
- Shift + スペース (任意): 直前に選択した項目からフォーカスされた項目までの連続した項目を選択します。
- Ctrl + Shift + Home (任意): フォーカスされたオプションから最初のオプションまでの全てのオプションを選択します。 任意で、フォーカスを最初のオプションに移動します。
- Ctrl + Shift + End (任意): フォーカスされたオプションから最後のオプションまでの全てのオプションを選択します。 任意で、フォーカスを最後のオプションに移動します。
- Ctrl + A (任意): リスト内の全てのオプションを選択します。 任意で、全てのオプションが選択されている場合は、全てのオプションの選択を解除することもできます。
-
-
-
-
-
-
-必要な JavaScript 機能
-
-単一選択リストボックスでオプションを選択する
-
-ユーザーがオプションを選択すると、以下が起こる必要があります。
-
-
- 前に選択したオプションの選択を解除し、aria-selected
を false
に設定するか、属性を完全に削除して、新しく選択を解除したオプションの外観を選択されていないように変更します。
- 新しく選択したオプションを選択し、オプションに aria-selected="true"
を設定し、新しく選択したオプションの外観を選択されているように変更します。
- リストボックスの aria-activedescendant
の値を、新しく選択したオプションの id
に更新します。
- オプションのブラー (blur) 、フォーカス、選択状態を視覚的に処理します。
-
-
-複数選択リストボックスでオプションの状態をトグルする
-
-ユーザーがオプションをクリックしたり、オプションにフォーカスしているときにスペース を押すなどして、オプションの状態をトグルすると、以下が起こる必要があります。
-
-
- 現在フォーカスされているオプションの aria-selected
ステート (状態) をトグルし、aria-selected
の状態を false
なら true
に、true
なら false
に変更します。
- 選択状態を反映するようにオプションの外観を変更します。
- オプションを選択の解除へトグルしている場合でも、リストボックスの aria-activedescendant
の値を、ユーザーが直前にインタラクトしたオプションの id
に更新します。
-
-
-
-
ARIA の使用の第一のルールは、要素を転用して ARIA のロール、ステート、プロパティを追加することでアクセス可能にするのではなく、必要としている意味論と振る舞いがすでに組み込まれているネイティブな機能を使用できることです。 <option>
要素を子孫に持つ <select>
要素は、必要な全てのインタラクションをネイティブに処理します。
-
-
-例
-
-例 1: aria-activedescendant を使用する単一選択リストボックス
-
-以下のスニペットは、リストボックスロールが HTML ソースコードに直接どのように追加されるかを示しています。
-
-<p id="listbox1label" role="label">色を選択:</p>
-<div role="listbox" tabindex="0" id="listbox1" aria-labelledby="listbox1label"
- onclick="return listItemClick(event);"
- onkeydown="return listItemKeyEvent(event);"
- onkeypress="return listItemKeyEvent(event);"
- aria-activedescendant="listbox1-1">
- <div role="option" id="listbox1-1" class="selected" aria-selected="true">緑</div>
- <div role="option" id="listbox1-2">オレンジ</div>
- <div role="option" id="listbox1-3">赤</div>
- <div role="option" id="listbox1-4">青</div>
- <div role="option" id="listbox1-5">紫</div>
- <div role="option" id="listbox1-6">ペリウィンクル</div>
-</div>
-
-
-これは、ネイティブの HTML の {{htmlelement("select")}} 要素と {{htmlelement("label")}} 要素でより簡単に処理できます。
-
-<label for="listbox1">色を選択:</label>
-<select id="listbox1">
- <option selected>緑</option>
- <option>オレンジ</option>
- <option>赤</option>
- <option>青</option>
- <option>紫</option>
- <option>ペリウィンクル</option>
-</select>
-
-より多くの例
-
-
-
-ベストプラクティス
-
-
- キーボードからアクセス可能にするために、作成者はこのロールの全ての子孫のフォーカスを管理 (Managing Focus ) するべきです。
- リストがフォーカスされていない場合、作成者は選択に異なるスタイリングを使用することをお勧めします。 例えば、アクティブでない選択は、より明るい背景色で表示されることが多いです。
- リストボックスが別のウィジェットの一部でない場合は、aria-labelledby
プロパティが設定されているべきです。
- 1つ以上のエントリーがリストボックスの DOM の子でない場合、追加の aria-*
プロパティを設定する必要があります (ARIA のベストプラクティス (英語) を参照) 。
- リストボックスを展開 (expand ) する正当な理由がある場合は、コンボボックス (combobox
) ロールの方がより適切かもしれません。
-
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#listbox","ARIA listbox role")}}
- {{Spec2('ARIA')}}
-
-
- {{SpecName("ARIA Authoring Practices","#Listbox","Listbox Role")}}
- {{Spec2('ARIA Authoring Practices')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-TBD
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/listbox_role/index.md b/files/ja/web/accessibility/aria/roles/listbox_role/index.md
new file mode 100644
index 00000000000000..e9b213fd22cba2
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/listbox_role/index.md
@@ -0,0 +1,222 @@
+---
+title: 'ARIA: listbox ロール'
+slug: Web/Accessibility/ARIA/Roles/listbox_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/listbox_role
+---
+リストボックス (`listbox`) ロールは、HTML の `` 要素とは異なり、画像を含むことができる、1 つまたは複数の静的な項目をユーザーが選択できるリストに使用します。
+
+## 説明
+
+リストボックス (`listbox`) ロールは、HTML の選択 ({{htmlelement("select")}}) 要素と同様に、ユーザーが 1 つまたは複数の静的な項目を選択できるリストを作成する要素を識別するために使用します。 `` とは異なり、リストボックスは画像を含むことができます。 リストボックスのそれぞれの子は、オプション ([`option`](https://www.w3.org/TR/2010/WD-wai-aria-20100916/roles#option)) ロールを持つべきです。
+
+HTML の選択要素や、1 項目しか選択できない場合はラジオボタンのグループ、複数項目を選択できる場合はチェックボックスのグループを使用することを強くお勧めします。 なぜなら、全ての子孫に対するフォーカスを管理するためには、キーボードでのインタラクティビティがたくさん必要であり、ネイティブの HTML 要素はこの機能を無料で提供してくれるからです。
+
+リストボックス (`listbox`) ロールを持つ要素は、暗黙的な `aria-orientation` の値として垂直 (`vertical`) を持ちます。
+
+リストに Tab で移動すると、他に何も選択されていない場合はリストの最初の項目が選択されます。 上/下矢印 でリストをナビゲートし、Shift + 上/下矢印 を押すと選択範囲が移動して拡張されます。 1 文字以上をタイプ入力すると、リスト項目をナビゲートします (同じ文字はその文字から始まる各項目に移動し、異なる文字はその文字列全体で始まる最初の項目に移動します) 。 現在の項目に関連付けられたコンテキストメニューがある場合、Shift + F10 でそのメニューが起動します。 リスト項目がチェック可能である場合、スペース を使用してチェックボックス ([checkbox](https://www.w3.org/TR/wai-aria-practices/#checkbox)) をトグルできます。 選択可能なリスト項目の場合、スペース を使用して選択をトグルし、Shift + スペース を使用して連続する項目を選択し、Ctrl + 矢印 を使用して選択せずに移動し、Ctrl + スペース を使用して連続しない項目を選択できます。 全ての項目を選択するには、チェックボックス、リンクまたは他の方法を使用することをお勧めします。 Ctrl + A は、このためのショートカットキーとして使用できます。 (訳注: 推奨モデルと説明の無い代替モデルの操作方法が混じっているし、それ以外にもキーボードインタラクションに無い説明や異なった説明もあります。)
+
+リストボックスロールが要素に追加されるか、そのような要素が可視になると、スクリーンリーダーは、リストボックスがフォーカスを得たときにリストボックスのラベルとロールをアナウンスします。 オプションや項目がリスト内でフォーカスされると、次にそれがアナウンスされ、スクリーンリーダーがサポートしていれば、続いてリストでの項目の位置が示されます。 リスト内でフォーカスが移動すると、スクリーンリーダーは関連する項目をアナウンスします。
+
+### 関連する ARIA のロール、ステート、プロパティ
+
+#### 関連するロール
+
+- [option](/ja/docs/Web/Accessibility/ARIA/Roles/option_role)
+ - : 1 つ以上のネストされたオプションが必要です。 選択された全てのオプションでは、`aria-selected` が `true` に設定されています。 選択されていない全てのオプションでは、`aria-selected` が (訳注: 省略されるか) `false` に設定されています。 オプションが選択可能でない場合は、`aria-selected` を省略します (訳注: オプションでは、aria-selected のデフォルトは、false であり、変更できないことを示すなら、aria-disabled や aria-readonly があります) 。
+- [list](/ja/docs/Web/Accessibility/ARIA/Roles/List_role)
+ - : リスト項目 (`listitem`) 要素を含むセクション。
+
+#### ステートとプロパティ
+
+- aria-activedescendant
+ - : リストボックス内で現在アクティブな要素の `id` 文字列を保持します。 それがオプション要素である場合、そのオプションの `aria-selected` の値が `true` であるかどうかに関係なく、それは最後にインタラクトされたオプションの `id` になります。 複数選択可能なリストボックス内であっても、1 つの `id` の値のみを取ります。 `id` がリストボックスの DOM 子孫を参照していない場合、その `id` は `aria-owns` 属性の IDs の中に含まれている必要があります。
+- aria-owns
+ - : これは、リストボックスの DOM 子要素ではない要素 IDs のスペース区切りのリストです。 ここにリストされている IDs は、他の要素の `aria-owns` 属性にもリストできません。
+- aria-multiselectable
+ - : ユーザーが複数のオプションを選択できる場合は、これを含めて `true` に設定します。 `true` に設定されている場合、選択可能な*全ての*オプションには、`aria-selected` 属性が含まれ、`true` または `false` に設定されているべきです。 選択可能*でない*オプションは、`aria-selected` 属性を持つ*べきではありません*。
+ `false` または省略されている場合、いずれかのオプションが選択されているならば、現在選択されているオプションのみが `aria-selected` 属性を必要とし、`true` に設定されている必要があります (訳注: 仕様では、単一選択コンテナーに関する説明が複数選択コンテナーに比べて具体的ではなく曖昧なので、aria-selected を使わない「選択がフォーカスに従う」単一選択コンテナーと aria-selected を使う「選択がフォーカスに従わない」単一選択コンテナーが混ざっているようです) 。
+- aria-required
+ - : 空でない文字列値を持つオプションを選択する必要があることを示す論理属性。
+- aria-readonly
+ - : ユーザーは、オプションが選択されているかいないかを変更することはできませんが、リストボックスはそれ以外の操作が可能です。
+- aria-label
+ - : リストボックスを識別する、人間が読むことができる文字列値。 可視のラベルがある場合は、代わりに `aria-labelledby` を使用してそのラベルを参照するべきです。
+- aria-labelledby
+ - : リストボックスを識別する、要素 IDs のスペースで区切られたリストで、1 つ以上の可視の要素を識別します。 可視のラベルがない場合は、代わりに `aria-label` を使用してラベルを含めるべきです。 (注: 2 つの L が付いた「labelled」は、アクセシビリティ API の規約に基づく正しいスペルです。)
+- aria-roledescription
+ - : リストボックスのロールをより明確に識別する、人間が読むことができる文字列値。 スクリーンリーダーは、ラベル (ある場合) を読んだ後に、「リストボックス」と言う代わりに、この値をユーザーに読み上げることがよくあります。
+
+(詳細および ARIA のステートとプロパティの完全なリストについては、[ARIA の `listbox` (role)](https://www.w3.org/TR/wai-aria-1.1/#listbox) の文書を参照してください。)
+
+### キーボードインタラクション
+
+- 単一選択リストボックスがフォーカスを受け取ったとき、
+
+ - リストボックスがフォーカスを受け取る前にどのオプションも選択されていなかった場合、最初のオプションがフォーカスを受け取ります。 任意で、最初のオプションを自動選択することもできます。
+ - リストボックスがフォーカスを受け取る前にオプションが選択されていた場合、フォーカスは選択されているオプションに設定されます。
+
+- 複数選択リストボックスがフォーカスを受け取ったとき、
+
+ - リストボックスがフォーカスを受け取る前にどのオプションも選択されていなかった場合、フォーカスは最初のオプションに設定され、選択状態の自動変更は行われません。
+ - リストボックスがフォーカスを受け取る前に 1 つ以上のオプションが選択されていた場合、フォーカスはリストの中で最初に選択されているオプションに設定されます。
+
+- ↓ (下矢印)
+
+ : 次のオプションにフォーカスを移動します。 任意で、単一選択リストボックスでは、選択もフォーカスと共に移動することがあります。
+
+- ↑ (上矢印)
+
+ : 前のオプションにフォーカスを移動します。 任意で、単一選択リストボックスでは、選択もフォーカスと共に移動することがあります。
+
+- Home
+
+ (任意): 最初のオプションにフォーカスを移動します。 任意で、単一選択リストボックスでは、選択もフォーカスと共に移動することがあります。 5 つ以上のオプションがあるリストでは、このキーをサポートすることを強くお勧めします。
+
+- End
+
+ (任意): 最後のオプションにフォーカスを移動します。 任意で、単一選択リストボックスでは、選択もフォーカスと共に移動することがあります。 5 つ以上のオプションがあるリストでは、このキーをサポートすることを強くお勧めします。
+
+- 先行入力は、全てのリストボックス、特に 7 つ以上のオプションがあるリストボックスに対してお勧めします。
+
+ - 文字を入力: フォーカスは、入力された文字で始まる名前を持つ次の項目に移動します。
+ - 複数の文字をすばやく続けて入力: フォーカスは、入力された文字列で始まる名前を持つ次の項目に移動します。
+
+- **複数選択**: 作成者は、複数選択をサポートするために 2 つのインタラクションモデルのいずれかを実装することができます。 ユーザーがリストをナビゲートしながら
+
+ Shift
+
+ や
+
+ Ctrl
+
+ などの修飾キーを押し続けなくてもよい推奨モデルや、選択状態が失われるのを避けるためにナビゲート中に修飾キーを押し続ける必要のある代替モデルがあります。
+
+ - 推奨選択モデル — 修飾キーを押し続ける必要はありません。
+
+ - スペース
+
+ : フォーカスされたオプションの選択状態を変更します。
+
+ - Shift + ↓ (下矢印)
+
+ (任意): 次のオプションにフォーカスを移動し、選択状態をトグルします。
+
+ - Shift + ↑ (上矢印)
+
+ (任意): 前のオプションにフォーカスを移動し、選択状態をトグルします。
+
+ - Shift + スペース
+
+ (任意): 直前に選択した項目からフォーカスされた項目までの連続した項目を選択します。
+
+ - Ctrl + Shift + Home
+
+ (任意): フォーカスされたオプションから最初のオプションまでの全てのオプションを選択します。 任意で、フォーカスを最初のオプションに移動します。
+
+ - Ctrl + Shift + End
+
+ (任意): フォーカスされたオプションから最後のオプションまでの全てのオプションを選択します。 任意で、フォーカスを最後のオプションに移動します。
+
+ - Ctrl + A
+
+ (任意): リスト内の全てのオプションを選択します。 任意で、全てのオプションが選択されている場合は、全てのオプションの選択を解除することもできます。
+
+### 必要な JavaScript 機能
+
+#### 単一選択リストボックスでオプションを選択する
+
+ユーザーがオプションを選択すると、以下が起こる必要があります。
+
+1. 前に選択したオプションの選択を解除し、`aria-selected` を `false` に設定するか、属性を完全に削除して、新しく選択を解除したオプションの外観を選択されていないように変更します。
+2. 新しく選択したオプションを選択し、オプションに `aria-selected="true"` を設定し、新しく選択したオプションの外観を選択されているように変更します。
+3. リストボックスの `aria-activedescendant` の値を、新しく選択したオプションの `id` に更新します。
+4. オプションのブラー (blur) 、フォーカス、選択状態を視覚的に処理します。
+
+#### 複数選択リストボックスでオプションの状態をトグルする
+
+ユーザーがオプションをクリックしたり、オプションにフォーカスしているときにスペース を押すなどして、オプションの状態をトグルすると、以下が起こる必要があります。
+
+1. 現在フォーカスされているオプションの `aria-selected` ステート (状態) をトグルし、`aria-selected` の状態を `false` なら `true` に、`true` なら `false` に変更します。
+2. 選択状態を反映するようにオプションの外観を変更します。
+3. オプションを選択の解除へトグルしている場合でも、リストボックスの `aria-activedescendant` の値を、ユーザーが直前にインタラクトしたオプションの `id` に更新します。
+
+> **Note:** ARIA の使用の第一のルールは、要素を転用して ARIA のロール、ステート、プロパティを追加することでアクセス可能にするのではなく、必要としている意味論と振る舞いがすでに組み込まれているネイティブな機能を使用できることです。 `` 要素を子孫に持つ `` 要素は、必要な全てのインタラクションをネイティブに処理します。
+
+## 例
+
+#### 例 1: aria-activedescendant を使用する単一選択リストボックス
+
+以下のスニペットは、リストボックスロールが HTML ソースコードに直接どのように追加されるかを示しています。
+
+```html
+色を選択:
+
+
緑
+
オレンジ
+
赤
+
青
+
紫
+
ペリウィンクル
+
+```
+
+これは、ネイティブの HTML の {{htmlelement("select")}} 要素と {{htmlelement("label")}} 要素でより簡単に処理できます。
+
+```html
+色を選択:
+
+ 緑
+ オレンジ
+ 赤
+ 青
+ 紫
+ ペリウィンクル
+
+```
+
+#### より多くの例
+
+- [スクロール可能なリストボックスの例](https://w3c.github.io/aria-practices/examples/listbox/listbox-scrollable.html): 1 より大きい `size` 属性を持つ HTML の `` と同様な、スクロールしてより多くのオプションを表示する単一選択リストボックス。 (英語)
+- [折りたたみ可能なドロップダウンリストボックスの例](https://w3c.github.io/aria-practices/examples/listbox/listbox-collapsible.html): 属性 `size="1"` を持つ HTML の `` と同様な、アクティブにすると展開される単一選択の折りたたみ可能なリストボックス。 (英語)
+- [並べ替え可能なオプションを持つリストボックスの例](https://w3c.github.io/aria-practices/examples/listbox/listbox-rearrangeable.html): オプションの追加、移動、および削除が可能なツールバーが付属する、単一選択リストボックスと複数選択リストボックスの両方の例。 (英語)
+
+## ベストプラクティス
+
+- キーボードからアクセス可能にするために、作成者はこのロールの全ての子孫のフォーカスを管理 ([Managing Focus](https://www.w3.org/TR/wai-aria-1.1/#managingfocus)) するべきです。
+- リストがフォーカスされていない場合、作成者は選択に異なるスタイリングを使用することをお勧めします。 例えば、アクティブでない選択は、より明るい背景色で表示されることが多いです。
+- リストボックスが別のウィジェットの一部でない場合は、`aria-labelledby` プロパティが設定されているべきです。
+- 1 つ以上のエントリーがリストボックスの DOM の子でない場合、追加の `aria-*` プロパティを設定する必要があります ([ARIA のベストプラクティス](https://www.w3.org/TR/wai-aria-practices/#listbox_div) (英語) を参照) 。
+- リストボックスを展開 ([expand](https://www.w3.org/TR/wai-aria-1.1/#aria-expanded)) する正当な理由がある場合は、コンボボックス ([`combobox`](/ja/docs/Web/Accessibility/ARIA/Roles/combobox_role)) ロールの方がより適切かもしれません。
+
+## 仕様
+
+| 仕様 | 状態 |
+| ---------------------------------------------------------------------------------------- | ------------------------------------------------ |
+| {{SpecName("ARIA","#listbox","ARIA listbox role")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#Listbox","Listbox Role")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## スクリーンリーダーのサポート
+
+TBD
+
+## 関連情報
+
+- [HTML `` 要素](/ja/docs/Web/HTML/Element/select)
+- [HTML `` 要素](/ja/docs/Web/HTML/Element/label)
+- [HTML `` 要素](/ja/docs/Web/HTML/Element/option)
+- [ARIA: `combobox` ロール](/ja/docs/Web/Accessibility/ARIA/Roles/combobox_role)
+- [ARIA: `option` ロール](/ja/docs/Web/Accessibility/ARIA/Roles/option_role)
+- [ARIA: `list` ロール](/ja/docs/Web/Accessibility/ARIA/Roles/List_role)
+- [ARIA: `listitem` ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Listitem_role)
+- [ARIA のベストプラクティス — リストボックス](https://www.w3.org/TR/wai-aria-practices/#Listbox) (英語)
+- [ARIA のロールモデル — リストボックス](https://www.w3.org/TR/wai-aria-1.1/#listbox) (英語)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/listitem_role/index.html b/files/ja/web/accessibility/aria/roles/listitem_role/index.html
deleted file mode 100644
index bec88405164e73..00000000000000
--- a/files/ja/web/accessibility/aria/roles/listitem_role/index.html
+++ /dev/null
@@ -1,117 +0,0 @@
----
-title: 'ARIA: listitem ロール'
-slug: Web/Accessibility/ARIA/Roles/Listitem_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Listitem_role
----
-ARIA のリスト項目 (listitem
) ロールは、項目のリスト内の項目を識別するために使用できます。 これは、通常、リストコンテナーを識別するために使用するリスト (list
) ロールと組み合わせて使用します。
-
-<section role="list">
- <div role="listitem">リスト項目 1</div>
- <div role="listitem">リスト項目 2</div>
- <div role="listitem">リスト項目 3</div>
-</section>
-
-
-説明
-
-外側のコンテナーとその内側の要素のリストで構成されるコンテンツは、それぞれリスト (list
) とリスト項目 (listitem
) のコンテナーを使用して支援技術で識別できます。
-
-リストとリスト項目をマークアップするためにどの要素を使用するべきかについて、鉄則はありませんが、リスト項目がリストのコンテキストで意味をなすようにするべきです (例えば、買い物リスト、料理の手順、運転の指示) 。
-
-
-
警告 : 可能な限り、適切な意味論の HTML 要素を使用して、リストとそのリスト項目 ({{htmlelement("ul")}} や {{htmlelement("ol")}} と {{htmlelement("li")}}) をマークアップするべきです。 詳しい例は、ベストプラクティス を参照してください。
-
-
-関連する WAI-ARIA のロール、ステート、プロパティ
-
-
- list
-
- 項目のリスト。 リスト (list
) ロールを持つ要素には、子として1つ以上のリスト項目 (listitem
) ロールを持つ要素か、子として1つ以上のリスト項目 (listitem
) ロールを持つ要素を含む1つ以上のグループ (group
) ロールを持つ要素が必要です。
-
- group
-
- ページの目次に掲載されるほど重要ではなく、リスト内にネストされている場合はリスト項目に限定される、関連するオブジェクトのコレクションです。 (訳注: リスト内にグループをネストできるという仕様は、ARIA 1.2 で、無くなる予定です。)
-
-
-
-キーボードインタラクション
-
-無し
-
-必要な JavaScript 機能
-
-無し
-
-例
-
- ARIA Lists — Scott O'Hara によるいくつかの有用な例と考え (英語)
-
-ベストプラクティス
-
-role="list"
と role="listitem"
は必要な場合のみ使用してください。 例えば、HTML を制御できなくても、JavaScript で事後に動的にアクセシビリティを向上させることができる場合です。
-
-可能な限り、適切な意味論の HTML 要素を使用して、リストとリスト項目 ({{htmlelement("ol")}} や {{htmlelement("ul")}} と {{htmlelement("li")}}) をマークアップするべきです。 例えば、上記の例は次のように書き直すべきです。
-
-<ul>
- <li>リスト項目 1</li>
- <li>リスト項目 2</li>
- <li>リスト項目 3</li>
-</ul>
-
-また、リスト項目の順序が重要な場合は、順序付きリストを使用します。
-
-<ol>
- <li>リスト項目 1</li>
- <li>リスト項目 2</li>
- <li>リスト項目 3</li>
-</ol>
-
-
-
注 : ARIA のリストロールとリスト項目ロールでは、順序付きリストと順序無しリストを区別しません。
-
-
-
-
注 : タブ付きインターフェイスとして機能する項目のリストをマークアップする場合は、代わりにタブ (tab
)、タブパネル (tabpanel
)、タブリスト (tablist
) のロールを使用するべきです。
-
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#listitem","listitem")}}
- {{Spec2('ARIA')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-TBD
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/listitem_role/index.md b/files/ja/web/accessibility/aria/roles/listitem_role/index.md
new file mode 100644
index 00000000000000..5a00169c222bc5
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/listitem_role/index.md
@@ -0,0 +1,95 @@
+---
+title: 'ARIA: listitem ロール'
+slug: Web/Accessibility/ARIA/Roles/Listitem_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Listitem_role
+---
+ARIA のリスト項目 (`listitem`) ロールは、項目のリスト内の項目を識別するために使用できます。 これは、通常、リストコンテナーを識別するために使用するリスト (`list`) ロールと組み合わせて使用します。
+
+```html
+
+ リスト項目 1
+ リスト項目 2
+ リスト項目 3
+
+```
+
+## 説明
+
+外側のコンテナーとその内側の要素のリストで構成されるコンテンツは、それぞれリスト (`list`) とリスト項目 (`listitem`) のコンテナーを使用して支援技術で識別できます。
+
+リストとリスト項目をマークアップするためにどの要素を使用するべきかについて、鉄則はありませんが、リスト項目がリストのコンテキストで意味をなすようにするべきです (例えば、買い物リスト、料理の手順、運転の指示) 。
+
+> **Warning:** 可能な限り、適切な意味論の HTML 要素を使用して、リストとそのリスト項目 ({{htmlelement("ul")}} や {{htmlelement("ol")}} と {{htmlelement("li")}}) をマークアップするべきです。 詳しい例は、[ベストプラクティス](#best_practices)を参照してください。
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+- [list](/ja/docs/Web/Accessibility/ARIA/Roles/List_role)
+ - : 項目のリスト。 リスト (`list`) ロールを持つ要素には、子として 1 つ以上のリスト項目 (`listitem`) ロールを持つ要素か、子として 1 つ以上のリスト項目 (`listitem`) ロールを持つ要素を含む 1 つ以上のグループ (`group`) ロールを持つ要素が必要です。
+- [group](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_group_role)
+ - : ページの目次に掲載されるほど重要ではなく、リスト内にネストされている場合はリスト項目に限定される、関連するオブジェクトのコレクションです。 (訳注: リスト内にグループをネストできるという仕様は、ARIA 1.2 で、無くなる予定です。)
+
+### キーボードインタラクション
+
+無し
+
+### 必要な JavaScript 機能
+
+無し
+
+## 例
+
+[ARIA Lists](https://www.scottohara.me/blog/2018/05/26/aria-lists.html) — Scott O'Hara によるいくつかの有用な例と考え (英語)
+
+## ベストプラクティス
+
+`role="list"` と `role="listitem"` は必要な場合のみ使用してください。 例えば、HTML を制御できなくても、JavaScript で事後に動的にアクセシビリティを向上させることができる場合です。
+
+可能な限り、適切な意味論の HTML 要素を使用して、リストとリスト項目 ({{htmlelement("ol")}} や {{htmlelement("ul")}} と {{htmlelement("li")}}) をマークアップするべきです。 例えば、上記の例は次のように書き直すべきです。
+
+```html
+
+ リスト項目 1
+ リスト項目 2
+ リスト項目 3
+
+```
+
+また、リスト項目の順序が重要な場合は、順序付きリストを使用します。
+
+```html
+
+ リスト項目 1
+ リスト項目 2
+ リスト項目 3
+
+```
+
+> **Note:** ARIA のリストロールとリスト項目ロールでは、順序付きリストと順序無しリストを区別しません。
+
+> **Note:** タブ付きインターフェイスとして機能する項目のリストをマークアップする場合は、代わりにタブ (`tab`)、タブパネル (`tabpanel`)、タブリスト (`tablist`) のロールを使用するべきです。
+
+## 仕様
+
+| 仕様 | 状態 |
+| -------------------------------------------------------- | ------------------------ |
+| {{SpecName("ARIA","#listitem","listitem")}} | {{Spec2('ARIA')}} |
+
+## スクリーンリーダーのサポート
+
+TBD
+
+## 関連情報
+
+- [Accessibility Object Model](https://wicg.github.io/aom/spec/)
+- [ARIA in HTML](https://w3c.github.io/html-aria/)
+- [HTML `` 要素](/ja/docs/Web/HTML/Element/li)
+- [HTML `` 要素](/ja/docs/Web/HTML/Element/ul)
+- [HTML `` 要素](/ja/docs/Web/HTML/Element/ol)
+- [ARIA: list ロール](/ja/docs/Web/Accessibility/ARIA/Roles/List_role)
+- [ARIA: group ロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_group_role)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/log_role/index.html b/files/ja/web/accessibility/aria/roles/log_role/index.html
deleted file mode 100644
index 13600116fdceeb..00000000000000
--- a/files/ja/web/accessibility/aria/roles/log_role/index.html
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: log ロールの使用
-slug: Web/Accessibility/ARIA/Roles/log_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_log_role
-original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_log_role
----
-説明
-
-このテクニックは、log
ロールを使用する方法を示し、ブラウザーと支援技術に与える影響について説明します。
-
-log
ロールは、新しい情報が意味のある順序で追加され、古い情報が消えるライブリージョン を作成する要素を識別するために使用されます。 たとえば、チャットログ、メッセージ履歴、エラーログなどです。 他のタイプのライブリージョンとは対照的に、このロールは順番に並べられ、新しい情報はログの末尾にのみ追加されます。 このロールが要素に追加されると、ブラウザーは支援技術製品にアクセス可能なログイベントを送信し、ユーザーにそれを通知することができます。
-
-デフォルトでは、更新にはライブリージョンの変更のみが含まれ、ユーザーがアイドル状態のときにアナウンスされます。 変更の際にライブリージョン全体を聞く必要がある場合、 aria-atomic="true"
を設定するべきです。 できるだけ早くアナウンスし、ユーザーが中断する可能性がある場合は、より積極的な更新のために aria-live="assertive"
を設定することができます。
-
-ユーザーエージェントと支援技術への影響
-
-要素に log
ロールが追加されたとき、またはそのような要素が可視になるとき、ユーザーエージェントは以下を行うべきです。
-
-
- オペレーティングシステムのアクセシビリティ API で log
ロールを持つ要素を公開します。
- オペレーティングシステムのアクセシビリティ API がサポートされている場合は、アクセシビリティ API を使用してアクセス可能なログイベントを発生させます。
-
-
-支援技術製品は、そのようなイベントをリスンし、それに応じてユーザーに以下を通知するべきです。
-
-
- aria-live="assertive"
が設定されておらず、ユーザーが中断されている場合を除き、スクリーンリーダーは、ユーザーがアイドル状態のときにログ内の変更をアナウンスするべきです。
- スクリーン拡大鏡は、ログ更新が発生したことを視覚的に示すことができます。
-
-
-注 : 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の1つで、したがって規範的ではありません。
-
-例
-
-例 1: HTML コードにロールを追加する
-
-以下のスニペットは、log
ロールを HTML ソースコードに直接追加する方法を示しています。
-
-<div id="liveregion" class="region" role="log"></div>
-
-例 2: サンプルアプリケーションからのスニペット
-
-このスニペットは AJAX チャットアプリケーションにおいてチャットログを作成します。
-
-<div id="chatArea" role="log">
- <ul id="chatRegion" aria-live="polite" aria-atomic="false">
- <li>AJAX チャットの使用を開始するには、ユーザー名を選択してください。</li>
- </ul>
- <ul id="userListRegion" aria-live="off" aria-relevant="additions removals text">
- </ul>
-</div>
-
-
-動作する例
-
-
-
-注
-
-
- 要素に log
ロールを使用すると、その要素には aria-live="polite"
が暗黙で含まれます。
- 株式相場表示機のようにスクロールするテキストがある領域では、marquee
ロールを代わりに使用するべきです。
-
-
-使用された ARIA 属性
-
-
-
-
-
-
-
-互換性
-
-
-
-その他のリソース
-
-
diff --git a/files/ja/web/accessibility/aria/roles/log_role/index.md b/files/ja/web/accessibility/aria/roles/log_role/index.md
new file mode 100644
index 00000000000000..f35f5efba923d7
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/log_role/index.md
@@ -0,0 +1,80 @@
+---
+title: log ロールの使用
+slug: Web/Accessibility/ARIA/Roles/log_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_log_role
+original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_log_role
+---
+### 説明
+
+このテクニックは、[`log`](http://www.w3.org/TR/wai-aria/#log) ロールを使用する方法を示し、ブラウザーと支援技術に与える影響について説明します。
+
+`log` ロールは、新しい情報が意味のある順序で追加され、古い情報が消える[ライブリージョン](http://www.w3.org/WAI/PF/aria/terms#def_liveregion)を作成する要素を識別するために使用されます。 たとえば、チャットログ、メッセージ履歴、エラーログなどです。 他のタイプのライブリージョンとは対照的に、このロールは順番に並べられ、新しい情報はログの末尾にのみ追加されます。 このロールが要素に追加されると、ブラウザーは支援技術製品にアクセス可能なログイベントを送信し、ユーザーにそれを通知することができます。
+
+デフォルトでは、更新にはライブリージョンの変更のみが含まれ、ユーザーがアイドル状態のときにアナウンスされます。 変更の際にライブリージョン全体を聞く必要がある場合、 `aria-atomic="true"` を設定するべきです。 できるだけ早くアナウンスし、ユーザーが中断する可能性がある場合は、より積極的な更新のために `aria-live="assertive"` を設定することができます。
+
+### ユーザーエージェントと支援技術への影響
+
+要素に `log` ロールが追加されたとき、またはそのような要素が可視になるとき、ユーザーエージェントは以下を行うべきです。
+
+- オペレーティングシステムのアクセシビリティ API で `log` ロールを持つ要素を公開します。
+- オペレーティングシステムのアクセシビリティ API がサポートされている場合は、アクセシビリティ API を使用してアクセス可能なログイベントを発生させます。
+
+支援技術製品は、そのようなイベントをリスンし、それに応じてユーザーに以下を通知するべきです。
+
+- `aria-live="assertive"` が設定されておらず、ユーザーが中断されている場合を除き、スクリーンリーダーは、ユーザーがアイドル状態のときにログ内の変更をアナウンスするべきです。
+- スクリーン拡大鏡は、ログ更新が発生したことを視覚的に示すことができます。
+
+> **Note:** 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の 1 つで、したがって規範的ではありません。
+
+### 例
+
+#### 例 1: HTML コードにロールを追加する
+
+以下のスニペットは、`log` ロールを HTML ソースコードに直接追加する方法を示しています。
+
+```html
+
+```
+
+#### 例 2: サンプルアプリケーションからのスニペット
+
+このスニペットは AJAX チャットアプリケーションにおいてチャットログを作成します。
+
+```html
+
+
+ AJAX チャットの使用を開始するには、ユーザー名を選択してください。
+
+
+
+```
+
+#### 動作する例
+
+-
+
+### 注
+
+- 要素に `log` ロールを使用すると、その要素には `aria-live="polite"` が暗黙で含まれます。
+- 株式相場表示機のようにスクロールするテキストがある領域では、`marquee` ロールを代わりに使用するべきです。
+
+### 使用された ARIA 属性
+
+- [log](http://www.w3.org/TR/wai-aria/#log)
+
+### 関連する ARIA 技術
+
+- [marquee](http://www.w3.org/TR/wai-aria/#marquee) ロール
+
+### 互換性
+
+TBD: 一般的な UA と AT 製品の組み合わせに関するサポート情報を追加する
+
+### その他のリソース
+
+- ARIA のベストプラクティス - ライブリージョンの実装:
diff --git a/files/ja/web/accessibility/aria/roles/main_role/index.html b/files/ja/web/accessibility/aria/roles/main_role/index.html
deleted file mode 100644
index a5e6e7e900ff1c..00000000000000
--- a/files/ja/web/accessibility/aria/roles/main_role/index.html
+++ /dev/null
@@ -1,135 +0,0 @@
----
-title: 'ARIA: main ロール'
-slug: Web/Accessibility/ARIA/Roles/Main_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Main_role
----
-メイン (main
) ランドマークロール は、文書の主要なコンテンツを示すために使用します。 メインコンテンツ領域は、文書の中心的な話題やアプリケーションの中心的な機能と直接関連したり、それらを拡張するコンテンツで構成されます。
-
-<div id="main" role="main">
- <h1>アボカド</h1>
- <!-- メインセクションのコンテンツ -->
-</div>
-
-
-これは、アボカドについて説明する文書のメインセクションです。 この文書のサブセクションでは、その歴史、さまざまな品種、栽培地域などについて説明します。
-
-説明
-
-メイン (main
) ロールは、文書のメインコンテンツを識別する、ナビゲーションに関するランドマークロール です。 ランドマークは、支援技術によって、文書の大きなセクションをすばやく識別してナビゲートするために使用できます。 ページのセクションを分類およびラベル付けすることにより、レイアウトを通じて視覚的に伝えられる構造情報をプログラムで表現することができます。 スクリーンリーダーは、ランドマークロールを使用して、ページの重要なセクションへのキーボードナビゲーションを提供します。 ランドマークロールを介してナビゲートする場合、メインロールは「メインコンテンツへスキップする (Skip to main content) 」リンクの代わりになります。 メイン (main
) ランドマークロールは、文書ごとに1つだけあるべきです。
-
-<main>
要素 は、メイン (main
) ロールを持ちます。 開発者は、ARIA を使用するよりも、正しい意味論の HTML 要素を使用することを常に好むべきです。
-
-文書 (document
) とアプリケーション (application
) は DOM 内でネストすることができます。 これにより、DOM の子孫として複数のメイン要素を持つことになる可能性があります。 このような場合には、メインとその祖先である文書やアプリケーションとの関係を識別するために aria-owns
を含めます (訳注: aria-owns は、DOM 階層で親子関係に無い要素において、親に指定することで子でない要素を子として組み込むためのものであり、文書やアプリケーションとメインが DOM 階層で親子関係にあれば必要ありません) 。
-
-例
-
-<body>
- <!-- 主要なナビゲーション -->
-
- <div role="main">
- <h1>第一次インドシナ戦争</h1>
- <!-- 記事のコンテンツ -->
- </div>
-
- <!-- サイドバーとフッター -->
-</body>
-
-
-アクセシビリティに関する懸念
-
-文書ごとに main
ロールを1つのみ使用する
-
-メイン (main
) ランドマークロール は、文書ごとに1回のみ使用するべきです。
-
-JavaScript によってトリガーされたときにページコンテンツを更新するなどで、文書に2つのメイン (main
) ロールが含まれている場合、hidden
属性 をトグルするなどの手法によって、アクティブでないメイン (main
) ロールの存在を支援技術から取り除くべきです。
-
-<main>
- <h1>アクティブな <code>main</code> 要素</h1>
- <!-- コンテンツ -->
-</main>
-
-<main hidden>
- <h1>隠された <code>main</code> 要素</h1>
- <!-- コンテンツ -->
-</main>
-
-
-ベストプラクティス
-
-好ましい HTML
-
-<main>
要素 を使用すると自動的にセクションがメイン (main
) ロールを持つことを伝えます。 可能な限り、<main>
要素を代わりに使用することをお勧めします。
-
-スキップナビゲーション
-
-スキップナビゲーション (スキップナビ (skipnav) とも呼ばれる) は、支援技術のユーザーが繰り返されるコンテンツの大きなセクション (メインナビゲーション、情報バナーなど) をすばやくバイパスできるようにする手法です。 これにより、ユーザーはページのメインコンテンツにすばやくアクセスできます。 (訳注: このページでも、ページが表示されたらすぐ Tab キーを押すことで、ページ上部にリンクが表示されるようになっています。)
-
-role="main"
という宣言を持つ要素に id
属性 を追加すると、それをスキップナビゲーションリンクのターゲットにすることができます。
-
-<body>
- <a href="#main-content">メインコンテンツへスキップする</a>
-
- <!-- ナビゲーションとヘッダーのコンテンツ -->
-
- <div id="main-content" role="main">
- <!-- メインページのコンテンツ -->
- </div>
-</body>
-
-
-
-
-追加された利点
-
-ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、スクリーンリーダーを使用していないユーザーでも文書の大きなセクションを素早く識別してナビゲートできます。
-
-
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#main","ARIA Main Role")}}
- {{Spec2('ARIA')}}
-
-
- {{SpecName("ARIA Authoring Practices","#aria_lh_main","Main Landmark Role")}}
- {{Spec2('ARIA Authoring Practices')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-TBD
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/main_role/index.md b/files/ja/web/accessibility/aria/roles/main_role/index.md
new file mode 100644
index 00000000000000..ef3978089b5ab9
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/main_role/index.md
@@ -0,0 +1,117 @@
+---
+title: 'ARIA: main ロール'
+slug: Web/Accessibility/ARIA/Roles/Main_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Main_role
+---
+メイン (`main`) [ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、文書の主要なコンテンツを示すために使用します。 メインコンテンツ領域は、文書の中心的な話題やアプリケーションの中心的な機能と直接関連したり、それらを拡張するコンテンツで構成されます。
+
+```html
+
+
アボカド
+
+
+```
+
+これは、アボカドについて説明する文書のメインセクションです。 この文書のサブセクションでは、その歴史、さまざまな品種、栽培地域などについて説明します。
+
+## 説明
+
+メイン (`main`) ロールは、文書のメインコンテンツを識別する、ナビゲーションに関する[ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)です。 ランドマークは、支援技術によって、文書の大きなセクションをすばやく識別してナビゲートするために使用できます。 ページのセクションを分類およびラベル付けすることにより、レイアウトを通じて視覚的に伝えられる構造情報をプログラムで表現することができます。 スクリーンリーダーは、ランドマークロールを使用して、ページの重要なセクションへのキーボードナビゲーションを提供します。 ランドマークロールを介してナビゲートする場合、メインロールは「メインコンテンツへスキップする (Skip to main content) 」リンクの代わりになります。 メイン (`main`) ランドマークロールは、文書ごとに 1 つだけあるべきです。
+
+[`` 要素](/ja/docs/Web/HTML/Element/main)は、メイン (`main`) ロールを持ちます。 開発者は、ARIA を使用するよりも、正しい意味論の HTML 要素を使用することを常に好むべきです。
+
+文書 (`document`) とアプリケーション (`application`) は DOM 内でネストすることができます。 これにより、DOM の子孫として複数のメイン要素を持つことになる可能性があります。 このような場合には、メインとその祖先である文書やアプリケーションとの関係を識別するために `aria-owns` を含めます (訳注: aria-owns は、DOM 階層で親子関係に無い要素において、親に指定することで子でない要素を子として組み込むためのものであり、文書やアプリケーションとメインが DOM 階層で親子関係にあれば必要ありません) 。
+
+## 例
+
+```html
+
+
+
+
+
第一次インドシナ戦争
+
+
+
+
+
+```
+
+## アクセシビリティに関する懸念
+
+### 文書ごとに `main` ロールを 1 つのみ使用する
+
+メイン (`main`) [ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、文書ごとに 1 回のみ使用するべきです。
+
+JavaScript によってトリガーされたときにページコンテンツを更新するなどで、文書に 2 つのメイン (`main`) ロールが含まれている場合、[`hidden` 属性](/ja/docs/Web/HTML/Global_attributes/hidden)をトグルするなどの手法によって、アクティブでないメイン (`main`) ロールの存在を支援技術から取り除くべきです。
+
+```html
+
+ アクティブな main
要素
+
+
+
+
+ 隠された main
要素
+
+
+```
+
+## ベストプラクティス
+
+### 好ましい HTML
+
+[`` 要素](/ja/docs/Web/HTML/Element/main)を使用すると自動的にセクションがメイン (`main`) ロールを持つことを伝えます。 可能な限り、`` 要素を代わりに使用することをお勧めします。
+
+### スキップナビゲーション
+
+スキップナビゲーション (スキップナビ (skipnav) とも呼ばれる) は、支援技術のユーザーが繰り返されるコンテンツの大きなセクション (メインナビゲーション、情報バナーなど) をすばやくバイパスできるようにする手法です。 これにより、ユーザーはページのメインコンテンツにすばやくアクセスできます。 (訳注: このページでも、ページが表示されたらすぐ Tab キーを押すことで、ページ上部にリンクが表示されるようになっています。)
+
+`role="main"` という宣言を持つ要素に [`id` 属性](/ja/docs/Web/HTML/Global_attributes/id)を追加すると、それをスキップナビゲーションリンクのターゲットにすることができます。
+
+```html
+
+ メインコンテンツへスキップする
+
+
+
+
+
+
+
+```
+
+- [WebAIM: "Skip Navigation" Links](https://webaim.org/techniques/skipnav/) ([日本語対訳](https://raw.githubusercontent.com/Wind1808/Translated-into-Japanese/main/WebAIM/skipnav.txt))
+
+### 追加された利点
+
+ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、スクリーンリーダーを使用していないユーザーでも文書の大きなセクションを素早く識別してナビゲートできます。
+
+- [ランドマークブラウザー拡張](https://matatk.agrip.org.uk/landmarks/) (英語)
+
+## 仕様
+
+| 仕様 | 状態 |
+| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
+| {{SpecName("ARIA","#main","ARIA Main Role")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#aria_lh_main","Main Landmark Role")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## スクリーンリーダーのサポート
+
+TBD
+
+## 関連情報
+
+- [\: メイン要素](/ja/docs/Web/HTML/Element/main)
+- [main (role): Accessible Rich Internet Applications (WAI-ARIA) 1.1](https://www.w3.org/TR/wai-aria/#main)
+- [HTML のセクションとアウトラインの使用](/ja/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines)
+- [ランドマークロール: ARIA を使用する: ロール、ステート、プロパティ](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)
+- [Using WAI-ARIA Landmarks – 2013 | The Paciello Group](https://developer.paciellogroup.com/blog/2013/02/using-wai-aria-landmarks-2013/)
+- [Accessible Landmarks | scottohara.me](https://www.scottohara.me/blog/2018/03/03/landmarks.html)
+- [The main element | HTML5 Doctor](https://html5doctor.com/the-main-element/)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/navigation_role/index.html b/files/ja/web/accessibility/aria/roles/navigation_role/index.html
deleted file mode 100644
index 53284b8024fc32..00000000000000
--- a/files/ja/web/accessibility/aria/roles/navigation_role/index.html
+++ /dev/null
@@ -1,155 +0,0 @@
----
-title: 'ARIA: navigation ロール'
-slug: Web/Accessibility/ARIA/Roles/Navigation_Role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Navigation_Role
----
-ナビゲーション (navigation
) ランドマークロール は、ウェブサイトやページコンテンツをナビゲートするために使用される主要なリンクのグループを識別するために使用します。
-
-<div role="navigation" aria-label="メイン">
- <!-- 主要なウェブサイトの場所へのリンクのリスト -->
-</div>
-
-
-これはウェブサイトのメインナビゲーションです。
-
-説明
-
-ナビゲーション (navigation
) ロールは、ランドマークロール です。 ランドマークロールは、ウェブページの構成と構造を識別する方法を提供します。 ページのセクションを分類およびラベル付けすることにより、レイアウトを通じて視覚的に伝えられる構造情報をプログラムで表現することができます。 スクリーンリーダーは、ランドマークロールを使用して、ページの重要なセクションへのキーボードナビゲーションを提供します。 HTML の <nav>
要素と同様に、ナビゲーションランドマークは、ウェブサイトまたはページコンテンツのナビゲーションに使用するリンクのグループ (例えば、リスト) を識別する手段を提供します。 1つのページに複数のナビゲーションランドマークが含まれている場合は、それぞれが固有のラベルを持つべきです。 ページ上の2つ以上のナビゲーションに関するランドマークが同じリンクのセットを持つ場合は、それぞれに同じラベルを使用してください。
-
-ナビゲーションランドマークを定義するには、HTML5 の <nav>
要素 を使用することをお勧めします。 HTML5 の <nav>
要素の手法を使用しない場合は、role="navigation"
属性を使用してナビゲーションランドマークを定義してください。
-
-
-
<nav>
要素 を使用すると、自動的にセクションがナビゲーション (navigation
) ロールを持つことを伝えることができます。 開発者は、ARIA を使用するよりも、正しい意味論の HTML 要素を使用することを常に好むべきです。
-
-
-関連する WAI-ARIA のロール、ステート、プロパティ
-
-
- aria-label
- ナビゲーションの目的を簡単に説明します。 スクリーンリーダーはロールとラベルの内容の両方を読み上げるので、「ナビゲーション」という用語を省略します。
-
-
-キーボードインタラクション
-
-無し
-
-必要な JavaScript 機能
-
-無し
-
-例
-
-<div role="navigation" aria-label="顧客サービス">
- <ul>
- <li><a href="#">ヘルプ</a></li>
- <li><a href="#">注文追跡</a></li>
- <li><a href="#">出荷と配達</a></li>
- <li><a href="#">返品</a></li>
- <li><a href="#">お問い合わせ</a></li>
- <li><a href="#">お店を探す</a></li>
- </ul>
-</div>
-
-
-アクセシビリティに関する懸念
-
-ランドマークロール は、文書のより大きな全体的なセクションを識別するために、控えめに使用することを意図しています。 あまりにも多くのランドマークロールを使用すると、スクリーンリーダーで「ノイズ」が発生し、ページ全体のレイアウトを理解することが難しくなります。
-
-ベストプラクティス
-
-好ましい HTML
-
-<nav>
要素 を使用すると、自動的にセクションがナビゲーション (navigation
) ロールを持つことを伝えます。 可能な限り、<nav>
要素を代わりに使用することをお勧めします。
-
-ランドマークのラベル付け
-
-複数のランドマーク
-
-文書内に複数のナビゲーション (navigation
) ランドマークロールや <nav>
要素 がある場合は、各ランドマークに対してラベルを付けてください。 このラベルで、支援技術のユーザーがそれぞれのランドマークの目的をすぐに理解することができます。
-
-<div id="main-nav" role="navigation" aria-label="メイン">
- <!-- コンテンツ -->
-</div>
-
-...
-
-<nav id="footer-nav" aria-label="フッター">
- <!-- コンテンツ -->
-</nav>
-
-
-繰り返されるランドマーク
-
-文書内のナビゲーション (navigation
) ランドマークロールや <nav>
要素 が文書内で繰り返され、両方のランドマークのコンテンツが同じ場合は、それぞれのランドマークに同じラベルを使用します。 この例としては、ページの上部と下部でメインナビゲーションを繰り返すことが挙げられます。
-
-<header>
- <nav id="main-nav" aria-label="メイン">
- <!-- 主要なウェブサイトの場所へのリンクのリスト -->
- </nav>
-</header>
-
-...
-
-<footer>
- <nav id="footer-nav" aria-label="メイン">
- <!-- 主要なウェブサイトの場所へのリンクのリスト -->
- </nav>
-</footer>
-
-
-冗長な説明
-
-スクリーンリーダーは、ランドマークロールの種類をアナウンスします。 このため、ラベルでランドマークが何であるかを説明する必要はありません。 例えば、aria-label="主要なナビゲーション"
の role="navigation"
の宣言は、「主要なナビゲーションナビゲーション」のように重複してアナウンスされます。
-
-追加された利点
-
-ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、スクリーンリーダーを使用していないユーザーでも文書の大きなセクションを素早く識別してナビゲートできます。
-
-
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#navigation","ARIA Navigation Role")}}
- {{Spec2('ARIA')}}
-
-
- {{SpecName("ARIA Authoring Practices","#aria_lh_navigation","Navigation Landmark Role")}}
- {{Spec2('ARIA Authoring Practices')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-TBD
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/navigation_role/index.md b/files/ja/web/accessibility/aria/roles/navigation_role/index.md
new file mode 100644
index 00000000000000..beff6c2bceb4e9
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/navigation_role/index.md
@@ -0,0 +1,135 @@
+---
+title: 'ARIA: navigation ロール'
+slug: Web/Accessibility/ARIA/Roles/Navigation_Role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Navigation_Role
+---
+ナビゲーション (`navigation`) [ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、ウェブサイトやページコンテンツをナビゲートするために使用される主要なリンクのグループを識別するために使用します。
+
+```html
+
+
+
+```
+
+これはウェブサイトのメインナビゲーションです。
+
+## 説明
+
+ナビゲーション (`navigation`) ロールは、[ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)です。 ランドマークロールは、ウェブページの構成と構造を識別する方法を提供します。 ページのセクションを分類およびラベル付けすることにより、レイアウトを通じて視覚的に伝えられる構造情報をプログラムで表現することができます。 スクリーンリーダーは、ランドマークロールを使用して、ページの重要なセクションへのキーボードナビゲーションを提供します。 HTML の `` 要素と同様に、ナビゲーションランドマークは、ウェブサイトまたはページコンテンツのナビゲーションに使用するリンクのグループ (例えば、リスト) を識別する手段を提供します。 1 つのページに複数のナビゲーションランドマークが含まれている場合は、それぞれが固有のラベルを持つべきです。 ページ上の 2 つ以上のナビゲーションに関するランドマークが同じリンクのセットを持つ場合は、それぞれに同じラベルを使用してください。
+
+ナビゲーションランドマークを定義するには、HTML5 の [`` 要素](/ja/docs/Web/HTML/Element/nav)を使用することをお勧めします。 HTML5 の `` 要素の手法を使用しない場合は、`role="navigation"` 属性を使用してナビゲーションランドマークを定義してください。
+
+> **Note:** [`` 要素](/ja/docs/Web/HTML/Element/nav)を使用すると、自動的にセクションがナビゲーション (`navigation`) ロールを持つことを伝えることができます。 開発者は、ARIA を使用するよりも、正しい意味論の HTML 要素を使用することを常に好むべきです。
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+- aria-label
+ - : ナビゲーションの目的を簡単に説明します。 スクリーンリーダーはロールとラベルの内容の両方を読み上げるので、「ナビゲーション」という用語を省略します。
+
+### キーボードインタラクション
+
+無し
+
+### 必要な JavaScript 機能
+
+無し
+
+## 例
+
+```html
+
+```
+
+## アクセシビリティに関する懸念
+
+[ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、文書のより大きな全体的なセクションを識別するために、控えめに使用することを意図しています。 あまりにも多くのランドマークロールを使用すると、スクリーンリーダーで「ノイズ」が発生し、ページ全体のレイアウトを理解することが難しくなります。
+
+## ベストプラクティス
+
+### 好ましい HTML
+
+[`` 要素](/ja/docs/Web/HTML/Element/nav)を使用すると、自動的にセクションがナビゲーション (`navigation`) ロールを持つことを伝えます。 可能な限り、`` 要素を代わりに使用することをお勧めします。
+
+### ランドマークのラベル付け
+
+#### 複数のランドマーク
+
+文書内に複数のナビゲーション (`navigation`) ランドマークロールや [`` 要素](/ja/docs/Web/HTML/Element/nav)がある場合は、各ランドマークに対してラベルを付けてください。 このラベルで、支援技術のユーザーがそれぞれのランドマークの目的をすぐに理解することができます。
+
+```html
+
+
+
+
+...
+
+
+```
+
+#### 繰り返されるランドマーク
+
+文書内のナビゲーション (`navigation`) ランドマークロールや [`` 要素](/ja/docs/Web/HTML/Element/nav)が文書内で繰り返され、両方のランドマークのコンテンツが同じ場合は、それぞれのランドマークに同じラベルを使用します。 この例としては、ページの上部と下部でメインナビゲーションを繰り返すことが挙げられます。
+
+```html
+
+
+...
+
+
+```
+
+#### 冗長な説明
+
+スクリーンリーダーは、ランドマークロールの種類をアナウンスします。 このため、ラベルでランドマークが何であるかを説明する必要はありません。 例えば、`aria-label="主要なナビゲーション"` の `role="navigation"` の宣言は、「主要なナビゲーションナビゲーション」のように重複してアナウンスされます。
+
+### 追加された利点
+
+ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、スクリーンリーダーを使用していないユーザーでも文書の大きなセクションを素早く識別してナビゲートできます。
+
+- [ランドマークブラウザー拡張](https://matatk.agrip.org.uk/landmarks/) (英語)
+
+## 仕様
+
+| 仕様 | 状態 |
+| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------ |
+| {{SpecName("ARIA","#navigation","ARIA Navigation Role")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#aria_lh_navigation","Navigation Landmark Role")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## スクリーンリーダーのサポート
+
+TBD
+
+## 関連情報
+
+- [\: ナビゲーションセクション要素](/ja/docs/Web/HTML/Element/nav)
+- [navigation (role): Accessible Rich Internet Applications (WAI-ARIA) 1.1](https://www.w3.org/TR/wai-aria/#navigation)
+- [HTML のセクションとアウトラインの使用](/ja/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines)
+- [ランドマークロール: ARIA を使用する: ロール、ステート、プロパティ](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)
+- [Using WAI-ARIA Landmarks – 2013 | The Paciello Group](https://developer.paciellogroup.com/blog/2013/02/using-wai-aria-landmarks-2013/)
+- [Accessible Landmarks | scottohara.me](https://www.scottohara.me/blog/2018/03/03/landmarks.html)
+- [Semantic navigation with the nav element | HTML5 Doctor](https://html5doctor.com/nav-element/)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/presentation_role/index.html b/files/ja/web/accessibility/aria/roles/presentation_role/index.html
deleted file mode 100644
index 567a5941d90434..00000000000000
--- a/files/ja/web/accessibility/aria/roles/presentation_role/index.html
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: presentation ロールの使用
-slug: Web/Accessibility/ARIA/Roles/presentation_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_presentation_role
-original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_presentation_role
----
-このテクニックは、presentation
ロールの使い方を示し、ブラウザーや支援技術への影響について説明します。
-
-presentation
ロールは、要素とそれに関連する子要素の意味論的意味を取り除くために使用されます。 例えば、レイアウト目的で使用される表は、表要素に presentation
ロールを適用して、表要素およびその表に関連する子要素(表のヘッダーや表のデータの要素など)から意味論的意味を取り除けます。 しかし、表に関係のない要素は、その意味論的意味を保持するべきです。
-
-ユーザーエージェントと支援技術への影響
-
-
-
-注 : 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の1つで、したがって規範的ではありません。
-
-例
-
-Example 1:
-
-
-
-Code
-
-動作する例
-
-
-
-注
-
-
-
-使用された ARIA 属性
-
-
-
-
-
-
-
-互換性
-
-
-
-
-
-その他のリソース
-
-
diff --git a/files/ja/web/accessibility/aria/roles/presentation_role/index.md b/files/ja/web/accessibility/aria/roles/presentation_role/index.md
new file mode 100644
index 00000000000000..d74de92792a65d
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/presentation_role/index.md
@@ -0,0 +1,39 @@
+---
+title: presentation ロールの使用
+slug: Web/Accessibility/ARIA/Roles/presentation_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_presentation_role
+original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_presentation_role
+---
+このテクニックは、[`presentation`](https://www.w3.org/TR/wai-aria/#presentation) ロールの使い方を示し、ブラウザーや支援技術への影響について説明します。
+
+`presentation` ロールは、要素とそれに関連する子要素の意味論的意味を取り除くために使用されます。 例えば、レイアウト目的で使用される表は、表要素に `presentation` ロールを適用して、表要素およびその表に関連する子要素(表のヘッダーや表のデータの要素など)から意味論的意味を取り除けます。 しかし、表に関係のない要素は、その意味論的意味を保持するべきです。
+
+## ユーザーエージェントと支援技術への影響
+
+> **Note:** 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の 1 つで、したがって規範的ではありません。
+
+## 例
+
+### Example 1:
+
+```html
+Code
+```
+
+#### 動作する例
+
+## 注
+
+## 使用された ARIA 属性
+
+## 関連する ARIA 技術
+
+## 互換性
+
+TBD: 一般的な UA と AT 製品の組み合わせに関するサポート情報を追加する
+
+## その他のリソース
diff --git a/files/ja/web/accessibility/aria/roles/progressbar_role/index.html b/files/ja/web/accessibility/aria/roles/progressbar_role/index.html
deleted file mode 100644
index d7e1f719e9e811..00000000000000
--- a/files/ja/web/accessibility/aria/roles/progressbar_role/index.html
+++ /dev/null
@@ -1,75 +0,0 @@
----
-title: progressbar ロールの使用
-slug: Web/Accessibility/ARIA/Roles/progressbar_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_progressbar_role
-original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_progressbar_role
----
-このテクニックは、progressbar
ロールの使い方を示し、ブラウザーや支援技術への影響について説明します。
-
-progressbar
ロールは、長い時間がかかったり、いくつかの手順で構成されるタスクの進捗状況を表示する要素に使用するべきです。
-
-プログレスバーは、ユーザーの要求を受けて、アプリケーションが要求された操作を完了に向かって進捗していることを示します。 プログレスバーの実際の値が決定できる場合、開発者は aria-valuenow
、aria-valuemin
、aria-valuemax
属性を使用してこの進捗状況を示す必要があります。 進捗値が不確定な場合、開発者は aria-valuenow
属性を省略するべきです。
-
-タスクが進捗するにつれて、aria-valuenow
値は、この進捗を支援技術製品に示すために動的に更新されなければならない。
-
-プログレスバーがページの特定の領域のロード進捗状況を説明している場合、作者は、aria-describedby を使用してステータスを指し示すべきであり、ロードが完了するまで領域の aria-busy 属性を true
に設定するべき です(SHOULD)。 これは常に読み取り専用なので、ユーザーはプログレスバーの値を変更することはできません。
-
-注 : 支援技術は、
aria-valuetext が指定されていない限り、
aria-valuemin
の値と
aria-valuemax
の値の間の範囲のパーセントとして、
aria-valuenow
の値を一般にレンダリングします。 この計算に適した方法で、
aria-valuemin
、
aria-valuemax
、
aria-valuenow
の値を設定することをお勧めします。
-
-
-
-ユーザーエージェントと支援技術への影響
-
-スクリーンリーダーは進捗状況の更新が発生したときにアナウンスするべきです。 プログレスバーにラベルが付いている場合は、ラベルテキストも同様に述べるべきです。
-
-注 : 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の1つで、したがって規範的ではありません。
-
-例
-
-例 1: パーセンテージ値を持つ基本的なプログレスバー
-
-<div role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">20 %</div>
-
-
-
-
-例 2: aria-valuetext の使用
-
-<div role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuetext="ステップ 2: ファイルをコピーしています... " aria-valuemax="100">
- ステップ 2: ファイルをコピーしています...
-</div>
-
-
-
-
-動作する例
-
-
-
-注
-
-
-
-使用された ARIA 属性
-
-
-
-
-
-
-
-互換性
-
-
-
-その他のリソース
diff --git a/files/ja/web/accessibility/aria/roles/progressbar_role/index.md b/files/ja/web/accessibility/aria/roles/progressbar_role/index.md
new file mode 100644
index 00000000000000..8c148b64d6eb38
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/progressbar_role/index.md
@@ -0,0 +1,65 @@
+---
+title: progressbar ロールの使用
+slug: Web/Accessibility/ARIA/Roles/progressbar_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_progressbar_role
+original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_progressbar_role
+---
+このテクニックは、[`progressbar`](http://www.w3.org/TR/wai-aria/#progressbar) ロールの使い方を示し、ブラウザーや支援技術への影響について説明します。
+
+`progressbar` ロールは、長い時間がかかったり、いくつかの手順で構成されるタスクの進捗状況を表示する要素に使用するべきです。
+
+プログレスバーは、ユーザーの要求を受けて、アプリケーションが要求された操作を完了に向かって進捗していることを示します。 プログレスバーの実際の値が決定できる場合、開発者は [`aria-valuenow`](http://www.w3.org/TR/wai-aria/#aria-valuenow)、[`aria-valuemin`](http://www.w3.org/TR/wai-aria/#aria-valuemin)、[`aria-valuemax`](http://www.w3.org/TR/wai-aria/#aria-valuemax) 属性を使用してこの進捗状況を示す必要があります。 進捗値が不確定な場合、開発者は `aria-valuenow` 属性を省略するべきです。
+
+タスクが進捗するにつれて、`aria-valuenow` 値は、この進捗を支援技術製品に示すために動的に更新されなければならない。
+
+プログレスバーがページの特定の領域のロード進捗状況を説明している場合、作者は、[aria-describedby](http://www.w3.org/TR/wai-aria/#aria-describedby) を使用してステータスを指し示すべきであり、ロードが完了するまで領域の [aria-busy](http://www.w3.org/TR/wai-aria/#aria-busy) 属性を `true` に設定する**べき**です(SHOULD)。 これは常に読み取り専用なので、ユーザーはプログレスバーの値を変更することはできません。
+
+> **Note:** 支援技術は、[aria-valuetext](http://www.w3.org/TR/wai-aria/#aria-valuetext) が指定されていない限り、`aria-valuemin` の値と `aria-valuemax` の値の間の範囲のパーセントとして、`aria-valuenow` の値を一般にレンダリングします。 この計算に適した方法で、`aria-valuemin`、`aria-valuemax`、`aria-valuenow` の値を設定することをお勧めします。
+
+> **Note:** `progressbar` ロールを持つ要素の暗黙の [`aria-readonly`](http://www.w3.org/TR/wai-aria/#aria-readonly) の値は `true` です。
+
+## ユーザーエージェントと支援技術への影響
+
+スクリーンリーダーは進捗状況の更新が発生したときにアナウンスするべきです。 プログレスバーにラベルが付いている場合は、ラベルテキストも同様に述べるべきです。
+
+> **Note:** 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の 1 つで、したがって規範的ではありません。
+
+## 例
+
+### 例 1: パーセンテージ値を持つ基本的なプログレスバー
+
+```html
+20 %
+```
+
+### 例 2: aria-valuetext の使用
+
+```html
+
+ ステップ 2: ファイルをコピーしています...
+
+```
+
+### 動作する例
+
+## 注
+
+## 使用された ARIA 属性
+
+- [progressbar](http://www.w3.org/TR/wai-aria/#progressbar)
+- [aria-valuenow](http://www.w3.org/TR/wai-aria/#aria-valuenow)
+- [aria-valuemin](http://www.w3.org/TR/wai-aria/#aria-valuemin "ARIA techniques")
+- [aria-valuemax](http://www.w3.org/TR/wai-aria/#aria-valuemax)
+- [aria-valuetext](http://www.w3.org/TR/wai-aria/#aria-valuetext)
+
+## 関連する ARIA 技術
+
+## 互換性
+
+TBD: 一般的な UA と AT 製品の組み合わせに関するサポート情報を追加する
+
+## その他のリソース
diff --git a/files/ja/web/accessibility/aria/roles/radio_role/index.html b/files/ja/web/accessibility/aria/roles/radio_role/index.html
deleted file mode 100644
index 7b4d3111f496ad..00000000000000
--- a/files/ja/web/accessibility/aria/roles/radio_role/index.html
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: radio ロールの使用
-slug: Web/Accessibility/ARIA/Roles/radio_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_radio_role
-original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_radio_role
----
-説明
-
-このテクニックは、radio
ロールをどのように使用するかを示し、ブラウザーと支援技術に及ぼす影響について説明します。
-
-ユーザーエージェントと支援技術への影響
-
-注 : 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の1つで、したがって規範的ではありません。
-
-例
-
-例 1:
-
-MDN ページの基本的なフォームのヒント からの例
-
-<h3 id="rg1_label">ランチオプション</h3>
-
-<ul class="radiogroup" id="rg1" role="radiogroup" aria-labelledby="rg1_label">
- <li id="r1" tabindex="-1" role="radio" aria-checked="false">
- <img role="presentation" src="radio-unchecked.gif" /> タイ
- </li>
- <li id="r2" tabindex="-1" role="radio" aria-checked="false">
- <img role="presentation" src="radio-unchecked.gif" /> サブウェイ
- </li>
- <li id="r3" tabindex="0" role="radio" aria-checked="true">
- <img role="presentation" src="radio-checked.gif" /> ラジオマリア
- </li>
-</ul>
-
-動作する例
-
-
-
-注
-
-使用された ARIA 属性
-
-
-
-互換性
-
-
-
-その他のリソース
diff --git a/files/ja/web/accessibility/aria/roles/radio_role/index.md b/files/ja/web/accessibility/aria/roles/radio_role/index.md
new file mode 100644
index 00000000000000..d8f2b813954243
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/radio_role/index.md
@@ -0,0 +1,53 @@
+---
+title: radio ロールの使用
+slug: Web/Accessibility/ARIA/Roles/radio_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_radio_role
+original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_radio_role
+---
+### 説明
+
+このテクニックは、[`radio`](https://www.w3.org/TR/wai-aria/#radio) ロールをどのように使用するかを示し、ブラウザーと支援技術に及ぼす影響について説明します。
+
+### ユーザーエージェントと支援技術への影響
+
+> **Note:** 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の 1 つで、したがって規範的ではありません。
+
+### 例
+
+#### 例 1:
+
+MDN ページの[基本的なフォームのヒント](/ja/docs/Web/Accessibility/ARIA/forms/Basic_form_hints)からの例
+
+```html
+ランチオプション
+
+
+
+ タイ
+
+
+ サブウェイ
+
+
+ ラジオマリア
+
+
+```
+
+#### 動作する例
+
+### 注
+
+### 使用された ARIA 属性
+
+### 関連する ARIA 技術
+
+### 互換性
+
+TBD: 一般的な UA と AT 製品の組み合わせに関するサポート情報を追加する
+
+### その他のリソース
diff --git a/files/ja/web/accessibility/aria/roles/region_role/index.html b/files/ja/web/accessibility/aria/roles/region_role/index.html
deleted file mode 100644
index 805519350dbbb8..00000000000000
--- a/files/ja/web/accessibility/aria/roles/region_role/index.html
+++ /dev/null
@@ -1,139 +0,0 @@
----
-title: 'ARIA: region ロール'
-slug: Web/Accessibility/ARIA/Roles/Region_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Region_role
----
-リージョン (region
) ランドマークロール は、文書内で、著者が重要であると識別した領域を識別するために使用されます。 これは、他のランドマークロールのどれも適切でないときでも、汎用のランドマークを提供することで、人々が容易にナビゲートできるようにするために使用されます。
-
-<div role="region" aria-label="例">
- <!-- リージョンのコンテンツ -->
-</div>
-
-
-説明
-
-リージョン (region
) ロールは、ARIA のランドマークロール です。 ランドマークロールは、ウェブページの構成と構造を識別する方法を提供します。 ページのセクションを分類およびラベル付けすることにより、レイアウトを通じて視覚的に伝達される構造情報がプログラム的に表されます。 スクリーンリーダーは、ランドマークロールを使用して、ページの重要なセクションにキーボードナビゲーションを提供します。
-
-リージョン (region
) ロールは、ユーザーがそのセクションに簡単にナビゲートし、ページの要約にリストされることを望むほど重要なコンテンツのセクションのために予約するべきです。 リージョン (region
) ロールはより汎用の用語であり、識別が必要なセクションが、banner
、main
、contentinfo
、complementary
、navigation
などの他のランドマークロールのいずれかによって正確に説明できない場合にのみ使用するべきです。
-
-リージョン (region
) ロールを持つすべての要素には、リージョン内のコンテンツの目的を説明するラベルを含めるべきで、目に見えるヘッダーを参照する aria-labelledby
を伴うのが好ましいです。 目に見える適切なヘッダーがない場合は、aria-label
を使用するべきです。
-
-リージョン (region
) ランドマークロールのコンテンツは、文書のメインコンテンツから分離されている場合にも意味をなすべきです。
-
-{{htmlelement("section")}} 要素を使用すると、アクセス可能な名前が与えられている場合、自動的にセクションがリージョン (region
) ロールを持つことを伝えます。 開発者は、ARIA を使用するよりも正しい意味論の HTML 要素(この場合は <section>
)を常に使用するべきです。
-
-関連する WAI-ARIA のロール、ステート、プロパティ
-
-
- aria-labelledby
- リージョンにラベルを付けるには、この属性を使用します。 多くの場合、aria-labelledby
属性の値は、セクションのタイトルに使用される要素の ID になります。
-
-
-キーボードインタラクション
-
-無し
-
-必要な JavaScript 機能
-
-無し
-
-例
-
-<div role="region" aria-labelledby="region-heading">
- <h2 id="region-heading"> この見出しの <code>id</code> 属性は、このリージョンがアクセス可能な名前を持つのに役立ちます</h2>
- <!-- リージョンのコンテンツ -->
-</div>
-
-
-
アクセシビリティに関する懸念
-
-
控えめに使用してください! ランドマークロール は、文書のより大きな全体的なセクションを識別するために、控えめに使用することを意図しています。 あまりにも多くのランドマークロールを使用すると、スクリーンリーダーで「ノイズ」が発生し、ページ全体のレイアウトを理解することが難しくなります。
-
-
他の関連コンテンツセクショニング要素 またはランドマークロール が当てはまらない場合にのみ、リージョン (region
) ロールを使用してください。 ページ上に複数のリージョンが存在する場合は、そのページの全体構造を再検討する価値があります。
-
-
ベストプラクティス
-
-
好ましい HTML
-
-
{{htmlelement("section")}} 要素を使用すると、アクセス可能な名前が与えられている場合、自動的にセクションがリージョン (region
) ロールを持つことを伝えます。 可能であれば、<section>
を代わりに使用することをお勧めします。
-
-
ランドマークのラベル付け
-
-
文書に複数のリージョン (region
) ランドマークロールがある場合は、それぞれにラベルを付けます。 このラベルで、支援技術のユーザーがそれぞれのランドマークの目的をすばやく理解することができます。
-
-
<div role="region" aria-labelledby="use-discretion">
- <h3 id="use-discretion">慎重に <code>region</code> ロールを使用してください</h3>
- <!-- コンテンツ -->
-</div>
-
-...
-
-<div role="region" aria-labelledby="please-reconsider">
- <h3 id="please-reconsider">文書構造を再検討してください</h3>
- <!-- コンテンツ -->
-</div>
-
-
-
この例では、リージョンのラベルは aria-labelledby
属性によって作成されています。
-
-
オーバーフローテキストを含むコンテンツ領域のスクロール
-
-
tabindex="0"
のコンテンツ領域がある場合は、role="region"
を追加して、汎用のリージョンであるとスクリーンリーダーのユーザーに伝えます。 これは、キーボードのみのユーザーがオーバーフローテキストを含むリージョンをスクロールできるようにするためです。
-
-
SVG
-
-
SVG の個々のセクションを説明できるようにするために、SVG の領域上に role="region"
を aria-label
とともに宣言することができます。
-
-
追加された利点
-
-
ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、非スクリーンリーダーユーザーは文書の大きなセクションを素早く識別してナビゲートできます。
-
-
-
-
仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#region","ARIA Region Role")}}
- {{Spec2('ARIA')}}
-
-
- {{SpecName("ARIA Authoring Practices","#aria_lh_region","Region landmark role")}}
- {{Spec2('ARIA Authoring Practices')}}
-
-
-
-
-
スクリーンリーダーのサポート
-
-
TBD
-
-
関連情報
-
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/region_role/index.md b/files/ja/web/accessibility/aria/roles/region_role/index.md
new file mode 100644
index 00000000000000..252bb14fcdeb82
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/region_role/index.md
@@ -0,0 +1,119 @@
+---
+title: 'ARIA: region ロール'
+slug: Web/Accessibility/ARIA/Roles/Region_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Region_role
+---
+リージョン (`region`) [ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、文書内で、著者が重要であると識別した領域を識別するために使用されます。 これは、他のランドマークロールのどれも適切でないときでも、汎用のランドマークを提供することで、人々が容易にナビゲートできるようにするために使用されます。
+
+```html
+
+
+
+```
+
+## 説明
+
+リージョン (`region`) ロールは、ARIA の[ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)です。 ランドマークロールは、ウェブページの構成と構造を識別する方法を提供します。 ページのセクションを分類およびラベル付けすることにより、レイアウトを通じて視覚的に伝達される構造情報がプログラム的に表されます。 スクリーンリーダーは、ランドマークロールを使用して、ページの重要なセクションにキーボードナビゲーションを提供します。
+
+リージョン (`region`) ロールは、ユーザーがそのセクションに簡単にナビゲートし、ページの要約にリストされることを望むほど重要なコンテンツのセクションのために予約するべきです。 リージョン (`region`) ロールはより汎用の用語であり、識別が必要なセクションが、[`banner`](/ja/docs/Web/Accessibility/ARIA/Roles/Banner_role)、[`main`](/ja/docs/Web/Accessibility/ARIA/Roles/Main_role)、[`contentinfo`](/ja/docs/Web/Accessibility/ARIA/Roles/Contentinfo_role)、[`complementary`](/ja/docs/Web/Accessibility/ARIA/Roles/Complementary_role)、[`navigation`](/ja/docs/Web/Accessibility/ARIA/Roles/Navigation_Role) などの他のランドマークロールのいずれかによって正確に説明できない場合にのみ使用するべきです。
+
+リージョン (`region`) ロールを持つすべての要素には、リージョン内のコンテンツの目的を説明するラベルを含めるべきで、目に見えるヘッダーを参照する `aria-labelledby` を伴うのが好ましいです。 目に見える適切なヘッダーがない場合は、`aria-label` を使用するべきです。
+
+リージョン (`region`) ランドマークロールのコンテンツは、文書のメインコンテンツから分離されている場合にも意味をなすべきです。
+
+{{htmlelement("section")}} 要素を使用すると、アクセス可能な名前が与えられている場合、自動的にセクションがリージョン (`region`) ロールを持つことを伝えます。 開発者は、ARIA を使用するよりも正しい意味論の HTML 要素(この場合は `
`)を常に使用するべきです。
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+- aria-labelledby
+ - : リージョンにラベルを付けるには、この属性を使用します。 多くの場合、`aria-labelledby` 属性の値は、セクションのタイトルに使用される要素の ID になります。
+
+### キーボードインタラクション
+
+無し
+
+### 必要な JavaScript 機能
+
+無し
+
+## 例
+
+```html
+
+
この見出しの id
属性は、このリージョンがアクセス可能な名前を持つのに役立ちます
+
+
+```
+
+## アクセシビリティに関する懸念
+
+控えめに使用してください! [ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、文書のより大きな全体的なセクションを識別するために、控えめに使用することを意図しています。 あまりにも多くのランドマークロールを使用すると、スクリーンリーダーで「ノイズ」が発生し、ページ全体のレイアウトを理解することが難しくなります。
+
+他の関連[コンテンツセクショニング要素](/ja/docs/Web/HTML/Element#content_sectioning)または[ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)が当てはまらない場合にのみ、リージョン (`region`) ロールを使用してください。 ページ上に複数のリージョンが存在する場合は、そのページの全体構造を再検討する価値があります。
+
+## ベストプラクティス
+
+### 好ましい HTML
+
+{{htmlelement("section")}} 要素を使用すると、アクセス可能な名前が与えられている場合、自動的にセクションがリージョン (`region`) ロールを持つことを伝えます。 可能であれば、`` を代わりに使用することをお勧めします。
+
+### ランドマークのラベル付け
+
+文書に複数のリージョン (`region`) ランドマークロールがある場合は、それぞれにラベルを付けます。 このラベルで、支援技術のユーザーがそれぞれのランドマークの目的をすばやく理解することができます。
+
+```html
+
+
慎重に region
ロールを使用してください
+
+
+
+...
+
+
+
文書構造を再検討してください
+
+
+```
+
+この例では、リージョンのラベルは [`aria-labelledby`](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute) 属性によって作成されています。
+
+### オーバーフローテキストを含むコンテンツ領域のスクロール
+
+`tabindex="0"` のコンテンツ領域がある場合は、`role="region"` を追加して、汎用のリージョンであるとスクリーンリーダーのユーザーに伝えます。 これは、キーボードのみのユーザーがオーバーフローテキストを含むリージョンをスクロールできるようにするためです。
+
+### SVG
+
+[SVG](/ja/docs/Web/SVG/Element/svg) の個々のセクションを説明できるようにするために、SVG の領域上に `role="region"` を `aria-label` とともに宣言することができます。
+
+### 追加された利点
+
+ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、非スクリーンリーダーユーザーは文書の大きなセクションを素早く識別してナビゲートできます。
+
+- [ランドマークブラウザー拡張](https://matatk.agrip.org.uk/landmarks/)(英語)
+
+## 仕様
+
+| 仕様 | 状態 |
+| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------ |
+| {{SpecName("ARIA","#region","ARIA Region Role")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#aria_lh_region","Region landmark role")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## スクリーンリーダーのサポート
+
+TBD
+
+## 関連情報
+
+- {{htmlelement("section")}}: 汎用セクション要素
+- [region (role): Accessible Rich Internet Applications (WAI-ARIA) 1.1](https://www.w3.org/TR/wai-aria/#region)
+- [HTML のセクションとアウトラインの使用](/ja/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines)
+- [ランドマークロール: ARIA を使用する: ロール、ステート、プロパティ](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)
+- [Using WAI-ARIA Landmarks – 2013 | The Paciello Group](https://developer.paciellogroup.com/blog/2013/02/using-wai-aria-landmarks-2013/)
+- [Accessible Landmarks | scottohara.me](https://www.scottohara.me/blog/2018/03/03/landmarks.html)
+- [The section element | HTML5 Doctor](http://html5doctor.com/the-section-element/)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/role_img/index.html b/files/ja/web/accessibility/aria/roles/role_img/index.html
deleted file mode 100644
index 835ebffeb2082e..00000000000000
--- a/files/ja/web/accessibility/aria/roles/role_img/index.html
+++ /dev/null
@@ -1,122 +0,0 @@
----
-title: 'ARIA: img ロール'
-slug: Web/Accessibility/ARIA/Roles/Role_Img
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Role_Img
----
-ARIA の画像 (img
) ロールは、単一の画像とみなすべきページコンテンツ内の複数の要素を識別するために使用できます。 これらの要素は、組み合わせることで視覚的な方法で情報を伝達できる、画像、コードスニペット、テキスト、絵文字、またはその他のコンテンツである可能性があります。
-
-<div role="img" aria-label="全体的な画像の説明">
- <img src="graphic1.png" alt="">
- <img src="graphic2.png">
-</div>
-
-
-説明
-
-単一の画像として消費されるべきコンテンツの集合 (画像、動画、音声、コードスニペット、絵文字、その他のコンテンツを含む) は、画像ロール (role="img"
) を使用して識別できます。
-
-支援技術にコンテキストを伝えるために、個々の画像要素の代替テキストを当てにするべきではありません。 ほとんどのスクリーンリーダーは、画像ロール (role="img"
) を持つ要素をブラックボックスのように見なし、内部の個々の要素にはアクセスしません。 したがって、周囲のテキストの中か、aria-label
属性を使用して、画像の包括的で全体的な説明の代替テキストを提供します。 また、画像が失敗した場合に、検索エンジンまたはサイトユーザーがページに書き込めるように、任意で alt
属性を提供します。
-
-<div role="img" aria-label="全体的な画像の説明">
- <img src="graphic1.png" alt="">
- <img src="graphic2.png">
-</div>
-
-画像にページに表示されるキャプションやラベルを追加したい場合は、次の方法を使用できます。
-
-
- テキストが簡潔なラベルの場合は、aria-labelledby
。
- テキストがより長い説明である場合は、aria-describedby
。
-
-
-例えば、
-
-<div role="img" aria-labelledby="image-1">
- ...
- <p id="image-1">画像のグループを説明するテキスト。</p>
-</div>
-
-SVG と role="img"
-
-ページ内で埋め込み SVG 画像を使用している場合は、外側の <svg>
要素に画像ロール (role="img"
) を設定し、ラベルを付けることをお勧めします。 これにより、スクリーンリーダーは、この要素を単一の実体とみなし、全ての子ノードを読み上げようとするのではなく、ラベルを使用して説明するようになります。
-
-<svg role="img" aria-label="SVG 画像の説明">
- <!-- SVG 画像の内容 -->
-</svg>
-
-role="img" を使用して、不明瞭や暗黙なものに意味を付与する
-
-場合によっては、支援技術のユーザーは、特定の方法で表現されたり、特定の媒体を通したり、特定の方法で暗示されたコンテンツの意味を理解することができません。 これは画像の場合は明らかに直せますが (alt
属性を使うことができます) 、混在したコンテンツや他の特定の種類のコンテンツの場合はそれほど明白ではないので、画像ロール (role="img"
) が有用になります。
-
-例えば、テキストに絵文字を使用した場合、その意味は目の見えるユーザーにとっては明白かもしれませんが、スクリーンリーダーを使用している人は、絵文字にはテキスト表現が全くないか、代替テキストが紛らわしく、それが使用されているコンテキストと一致しないために混乱する可能性があります。 例えば、次のコードです。
-
-<div role="img" aria-label="その猫はとても面白い">
- <p>
- 🐈 😂
- </p>
-</div>
-
-🐈 😂 の絵文字の実体参照は「猫」と「涙が出るほど嬉しい顔」で読み上げられますが、これは必ずしも意味をなしません — 暗黙の意味はおそらく「その猫はとても面白い」で、それを aria-label
で画像ロール (role="img"
) と一緒に指定します。
-
-これは、いくつかのブラウザーとスクリーンリーダーの組み合わせでは問題なく動作するようですが、中にはラベルを2回読み上げてしまうものもあります。 注意して使用し、徹底的にテストしてください。
-
-これが適している別の例は、伝説的な「ちゃぶ台返し」のような ASCII 絵文字の組み合わせを使用する場合です。
-
-<div role="img" aria-label="ちゃぶ台返し">
- <p>
- (╯°□°)╯︵ ┻━┻
- </p>
-</div>
-
-関連する WAI-ARIA のロール、ステート、プロパティ
-
-
- aria-label
- アクセス可能な名前が必要です。 aria-label 属性
-
-
-キーボードインタラクション
-
-必要な JavaScript 機能
-
-例
-
-
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#img","img")}}
- {{Spec2('ARIA')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-TBD
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/role_img/index.md b/files/ja/web/accessibility/aria/roles/role_img/index.md
new file mode 100644
index 00000000000000..a3e2d974b115be
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/role_img/index.md
@@ -0,0 +1,112 @@
+---
+title: 'ARIA: img ロール'
+slug: Web/Accessibility/ARIA/Roles/Role_Img
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Role_Img
+---
+ARIA の画像 (`img`) ロールは、単一の画像とみなすべきページコンテンツ内の複数の要素を識別するために使用できます。 これらの要素は、組み合わせることで視覚的な方法で情報を伝達できる、画像、コードスニペット、テキスト、絵文字、またはその他のコンテンツである可能性があります。
+
+```html
+
+
+
+
+```
+
+## 説明
+
+単一の画像として消費されるべきコンテンツの集合 (画像、動画、音声、コードスニペット、絵文字、その他のコンテンツを含む) は、画像ロール (`role="img"`) を使用して識別できます。
+
+支援技術にコンテキストを伝えるために、個々の画像要素の代替テキストを当てにするべきではありません。 ほとんどのスクリーンリーダーは、画像ロール (`role="img"`) を持つ要素をブラックボックスのように見なし、内部の個々の要素にはアクセスしません。 したがって、周囲のテキストの中か、`aria-label` 属性を使用して、画像の包括的で全体的な説明の代替テキストを提供します。 また、画像が失敗した場合に、検索エンジンまたはサイトユーザーがページに書き込めるように、任意で `alt` 属性を提供します。
+
+```html
+
+
+
+
+```
+
+画像にページに表示されるキャプションやラベルを追加したい場合は、次の方法を使用できます。
+
+- テキストが簡潔なラベルの場合は、`aria-labelledby`。
+- テキストがより長い説明である場合は、`aria-describedby`。
+
+例えば、
+
+```html
+
+ ...
+
画像のグループを説明するテキスト。
+
+```
+
+### SVG と role="img"
+
+ページ内で埋め込み SVG 画像を使用している場合は、外側の `` 要素に画像ロール (`role="img"`) を設定し、ラベルを付けることをお勧めします。 これにより、スクリーンリーダーは、この要素を単一の実体とみなし、全ての子ノードを読み上げようとするのではなく、ラベルを使用して説明するようになります。
+
+```html
+
+
+
+```
+
+### role="img" を使用して、不明瞭や暗黙なものに意味を付与する
+
+場合によっては、支援技術のユーザーは、特定の方法で表現されたり、特定の媒体を通したり、特定の方法で暗示されたコンテンツの意味を理解することができません。 これは画像の場合は明らかに直せますが (`alt` 属性を使うことができます) 、混在したコンテンツや他の特定の種類のコンテンツの場合はそれほど明白ではないので、画像ロール (`role="img"`) が有用になります。
+
+例えば、テキストに絵文字を使用した場合、その意味は目の見えるユーザーにとっては明白かもしれませんが、スクリーンリーダーを使用している人は、絵文字にはテキスト表現が全くないか、代替テキストが紛らわしく、それが使用されているコンテキストと一致しないために混乱する可能性があります。 例えば、次のコードです。
+
+```html
+
+```
+
+\🐈 \😂 の絵文字の実体参照は「猫」と「涙が出るほど嬉しい顔」で読み上げられますが、これは必ずしも意味をなしません — 暗黙の意味はおそらく「その猫はとても面白い」で、それを `aria-label` で画像ロール (`role="img"`) と一緒に指定します。
+
+これは、いくつかのブラウザーとスクリーンリーダーの組み合わせでは問題なく動作するようですが、中にはラベルを 2 回読み上げてしまうものもあります。 注意して使用し、徹底的にテストしてください。
+
+これが適している別の例は、伝説的な「ちゃぶ台返し」のような ASCII 絵文字の組み合わせを使用する場合です。
+
+```html
+
+```
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+- aria-label
+ - : アクセス可能な名前が必要です。 aria-label 属性
+
+### キーボードインタラクション
+
+### 必要な JavaScript 機能
+
+## 例
+
+- [星評価 role="img"の例](https://codepen.io/svinkle/pen/oYjoNE)
+
+## 仕様
+
+| 仕様 | 状態 |
+| -------------------------------------------- | ------------------------ |
+| {{SpecName("ARIA","#img","img")}} | {{Spec2('ARIA')}} |
+
+## スクリーンリーダーのサポート
+
+TBD
+
+## 関連情報
+
+- [Accessibility Object Model](https://wicg.github.io/aom/spec/)
+- [ARIA in HTML](https://w3c.github.io/html-aria/)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/row_role/index.html b/files/ja/web/accessibility/aria/roles/row_role/index.html
deleted file mode 100644
index 3d279326dc125e..00000000000000
--- a/files/ja/web/accessibility/aria/roles/row_role/index.html
+++ /dev/null
@@ -1,232 +0,0 @@
----
-title: 'ARIA: row ロール'
-slug: Web/Accessibility/ARIA/Roles/Row_Role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Row_Role
----
-行ロール (role="row"
) を持つ要素は、表形式の構造内に並んだセルの一行です。 行には、1つ以上のセル、グリッドセル、列ヘッダー、場合によっては行ヘッダーが含まれます。 行は、グリッド (grid
)、表 (table
)、ツリーグリッド (treegrid
) 内に含まれ、任意で行グループ (rowgroup
) 内に含まれることもあります。
-
-<div role="table" aria-label="人口" aria-describedby="country_population_desc">
- <div id="country_population_desc">国別世界人口</div>
- <div role="rowgroup">
- <div role="row">
- <span role="columnheader" aria-sort="descending">国</span>
- <span role="columnheader" aria-sort="none">人口</span>
- </div>
- </div>
- <div role="rowgroup">
- <div role="row">
- <span role="cell">フィンランド</span>
- <span role="cell">550 万</span>
- </div>
- <div role="row">
- <span role="cell">フランス</span>
- <span role="cell">6700 万</span>
- </div>
- </div>
-</div>
-
-
-説明
-
-行ロール (role="row"
) 要素は、グリッド (grid
)、表 (table
)、ツリーグリッド (treegrid
) 内の行であり、任意で行グループ (rowgroup
) 内の行です。 行は、静的な表構造内の1つ以上のセル (cell
)、グリッドセル (gridcell
)、列ヘッダー (columnheader
)、行ヘッダー (rowheader
) のコンテナーです。 可能な限り、ネイティブな HTML の <tr>
要素を使用することを強く推奨します。
-
-ARIA の行を作成するには、コンテナー要素に行ロール (role="row"
) を追加します。 その行は、グリッド、表、ツリーグリッド内にネストするべきです。 行のグループは、グリッド、表、ツリーグリッド内に直接ネストすることも、これらのコンテナー内の行グループ内にネストすることもできます。 それぞれの行には子のセルが含まれています。 これらのセルには、列や行のヘッダー、グリッドや普通のセルとさまざまな種類のセルがあります。
-
-行には、aria-colindex
、aria-level
、aria-rowindex
、aria-selected
など、行のロールを明確にする多くの属性を含めることができます。
-
-行がツリーグリッド内にある場合、行には aria-expanded
属性を含めることができ、この属性を使って現在の (展開、折りたたみ) 状態を示すことができます。 これは、aria-expanded
属性が存在しない通常の表やグリッドの場合には当てはまりません。
-
-表形式の構造を持つインタラクティブなウィジェットを作成するには、代わりにグリッドパターンを使用します。 インタラクションが個々のセルの選択状態を提供する場合や、上下左右のナビゲーションを提供する場合や、ユーザーインターフェイスでセルの順序を入れ替えたり、ドラッグアンドドロップなどで個々のセルの順序を変更したりできる場合は、代わりにグリッド (grid
) やツリーグリッド (treegrid
) を使用してください。
-
-
-
注: 可能な限り、ネイティブな HTML の表要素 (<table>
) を表の行要素 (<tr>
) と共に使用することを強く推奨します。
-
-
-関連する WAI-ARIA のロール、ステート、プロパティ
-
-コンテキストロール
-
-
- role="rowgroup"
- 任意のコンテキスト上の行の親であり、子孫の行の間の関係を確立します。 これは、HTML の表要素の thead
、tfoot
、tbody
要素と構造的に同等です。
- role="table"
- グリッドとツリーグリッドと並んで、行を見つけることができる3つのコンテキストの1つであり、ネイティブな HTML の <table>
要素と同様に、行と列に配置されたデータを含むインタラクティブでない表構造の一部として行を識別します。
- role="grid"
- 表とツリーグリッドと並んで、行を見つけることができる3つのコンテキストの1つであり、ネイティブな HTML の <table>
要素と同様に、行と列に配置されたデータを含むインタラクティブでない表構造の一部として行を識別します。
- role="treegrid"
- グリッドに似ていますが、ツリー (tree
) と同じ方法で展開と折りたたみができる行があります (訳注: W3C のツリーグリッドによるメール受信ボックスの例 では、行単位でのインタラクションも可能となっています) 。
-
-
-子孫のロール
-
-
- role="cell"
- 表形式のコンテナー内の行にあるセル。
- role="gridcell"
- グリッドやツリーグリッド内の行にあるセル。
- role="columnheader"
- 列スコープを持つ HTML の <th>
要素と構造的に同等なヘッダーセル。 プレーンなセルとは異なり、列ヘッダーロールは、対応する列の全てのセルとの関係を確立します。
- role="rowheader"
- 行スコープを持つ HTML の <th>
要素と構造的に同等なヘッダーセル。 プレーンなセルとは異なり、行ヘッダーロールは、対応する行の全てのセルとの関係を確立します。
-
-
-ステートとプロパティ
-
-
- aria-expanded ステート
-
- 行の状態を定義する aria-expanded
属性は、次の3つの値のいずれかを取るか省略することができます。
-
-
- aria-expanded="true
: 行は現在展開されています。
- aria-expanded="false"
: 行は現在折りたたまれています。
- aria-expended="undefined"
、または属性がない: 行は展開も折りたたみもできません。
-
-
- aria-expanded
属性を持つ要素が、その要素が「所有」していない別のグループ化コンテナーの展開を制御する場合、作成者は aria-controls
属性を使用してそのコンテナーを参照するべき です。
-
- aria-selected ステート
- グリッドやツリーグリッドなどのインタラクティブなコンテナー内に行がある場合にのみ関連し、表内に行がある場合は関連しません。 aria-selected
属性は、次の3つの値のいずれかを取るか省略することができます。
-
- aria-selected="true
: 行は現在選択されています。
- aria-selected="false"
: 行は現在選択されていません。
- aria-selected="undefined"
、または属性がない: 行は選択できません。
-
-
- aria-colindex 属性
-
- aria-colindex
属性は、列が DOM から隠されている場合にのみ必要です。 一般的に、行自体ではなく、行の子に配置されます。 表示される列が連続している場合は、行に配置できます。
-
- この属性は、値として、1 と表、グリッド、ツリーグリッド内の全列数の間の整数をとります。 aria-colindex
は、行に配置されると、行内の全列数に対する要素の列インデックスまたは位置を定義します。 例えば、表内に 15 列あり、4、5、6 の列のみが DOM にある場合、全ての行に aria-colindex="4"
を設定できます。
-
- DOM に存在する列のセットが連続していない 場合や、複数の行や列にまたがるセルがある場合は、行自体ではなく各行の全ての子に aria-colindex
を配置します (訳注: 全ての列を 1 から昇順に数えたものを昇順に配置します) 。
-
- 全ての列が DOM にある場合、この属性は必要ありません。
-
- aria-rowindex 属性
-
- aria-rowindex
属性は、行が DOM から隠されている場合にのみ必要であり、全行のリスト内のどの行が読み込まれているかを示します。 属性は、それぞれの行に一意の値が設定され、値として、1 と表、グリッド、ツリーグリッド内の全行数の間の整数をとり、各行の位置またはインデックスを示します。 例えば、1,500 行ある表で、ヘッダーと 47 行目と 52 行目のみが DOM に存在する場合、ヘッダー行に aria-rowindex="1"
が設定され、47 行目と 52 行目にそれぞれ aria-rowindex="47"
と aria-rowindex="52"
が設定されます (訳注: ヘッダー行も含んだ全ての行を 1 から昇順に数えたものを昇順に配置します) 。
-
- 全ての行が DOM に存在する場合、この属性は必要ありません。
-
-
-
-キーボードインタラクション
-
-無し
-
-必要な JavaScript 機能
-
-無し。 ソート可能な列については、列ヘッダー (columnheader
) ロールを参照してください。
-
-
-
ARIA の使用の第一のルールは、要素を転用して ARIA のロール、ステート、プロパティを追加する ことでアクセス可能にするのではなく、必要としている意味論と振る舞いがすでに組み込まれているネイティブな機能を使用できることです。 可能な限り、ARIA の表ロールの代わりに HTML の <table>
要素を使用してください。
-
-
-例
-
-<div role="table" aria-label="意味論的な要素" aria-describedby="semantic_elements_table_desc" aria-rowcount="81">
- <div id="semantic_elements_table_desc">ARIA のロールの代わりに使用する意味論的な要素</div>
- <div role="rowgroup">
- <div role="row">
- <span role="columnheader" aria-sort="none">ARIA のロール</span>
- <span role="columnheader" aria-sort="none">意味論的な要素</span>
- </div>
- </div>
- <div role="rowgroup">
- <div role="row" aria-rowindex="11">
- <span role="cell">header</span>
- <span role="cell">h1</span>
- </div>
- <div role="row" aria-rowindex="16">
- <span role="cell">header</span>
- <span role="cell">h6</span>
- </div>
- <div role="row" aria-rowindex="18">
- <span role="cell">rowgroup</span>
- <span role="cell">thead</span>
- </div>
- <div role="row" aria-rowindex="24">
- <span role="cell">term</span>
- <span role="cell">dt</span>
- </div>
- </div>
-</div>
-
-
-上記は、DOM 内に 81 行のうち 5 行が存在する意味論的でない ARIA の表です。 表のヘッダー内に 1 行、表の本体内に 4 行あります。 ヘッダー行は、ヘッダーの行グループ内に単独であり、2 つの列ヘッダーを持ちます。 列はソート可能ですが、aria-sort
プロパティで示されているように、現在はソートされていません。 表の本体は別の行グループにあり、現在 DOM 内に 4 行あります。 全ての行が DOM 内にあるわけではないため、全ての行に aria-rowindex
プロパティを含めています。
-
-
-
-ベストプラクティス
-
-データ表構造には、<table>
、<tbody>
、<thead>
、<tr>
、<th>
、<td>
などのみを使用してください。 これらに ARIA ロールを追加することで、CSS などで表のネイティブな意味論が取り除かれても、アクセシビリティを確保することができます。 ARIA の表ロールの関連するユースケースは、display: grid
など、CSS の display
プロパティによって表のネイティブな意味論がオーバーライドされる場合です。 この場合、ARIA の表ロールを使用して意味論を追加し直すことができます。
-
-<table role="table" aria-label="意味論的な要素" aria-describedby="semantic_elements_table_desc" aria-rowcount="81">
- <caption id="semantic_elements_table_desc">ARIA のロールの代わりに使用する意味論的な要素</caption>
- <thead role="rowgroup">
- <tr role="row">
- <th role="columnheader" aria-sort="none">ARIA のロール</th>
- <th role="columnheader" aria-sort="none">意味論的な要素</th>
- </tr>
- </thead>
- <tbody role="rowgroup">
- <tr role="row" aria-rowindex="11">
- <td role="cell">header</td>
- <td role="cell">h1</td>
- </tr>
- <tr role="row" aria-rowindex="16">
- <td role="cell">header</td>
- <td role="cell">h6</td>
- </tr>
- <tr role="row" aria-rowindex="18">
- <td role="cell">rowgroup</td>
- <td role="cell">thead</td>
- </tr>
- <tr role="row" aria-rowindex="24">
- <td role="cell">term</td>
- <td role="cell">dt</td>
- </tr>
- </tbody>
- </table>
-
-上記は、表の意味論的な書き方です。 ARIA のロールが必要になるのは、display
プロパティを flex
や grid
に設定するなどして、表のネイティブな意味論、つまり表の行が完全に破壊されてしまう場合だけです (訳注: ここでの grid は、CSS グリッドレイアウトというグリッドロールとは全く別のものであることに注意してください) 。
-
-追加された利点
-
-無し
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#row","ARIA row role")}}
- {{Spec2('ARIA')}}
-
-
- {{SpecName("ARIA Authoring Practices","#row","ARIA row role")}}
- {{Spec2('ARIA Authoring Practices')}}
-
-
-
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/row_role/index.md b/files/ja/web/accessibility/aria/roles/row_role/index.md
new file mode 100644
index 00000000000000..3ff1e1da474ef4
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/row_role/index.md
@@ -0,0 +1,203 @@
+---
+title: 'ARIA: row ロール'
+slug: Web/Accessibility/ARIA/Roles/Row_Role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Row_Role
+---
+行ロール (`role="row"`) を持つ要素は、表形式の構造内に並んだセルの一行です。 行には、1 つ以上のセル、グリッドセル、列ヘッダー、場合によっては行ヘッダーが含まれます。 行は、グリッド ([`grid`](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role))、表 ([`table`](/ja/docs/Web/Accessibility/ARIA/Roles/Table_Role))、ツリーグリッド ([`treegrid`](/ja/docs/Web/Accessibility/ARIA/Roles/treegrid_role)) 内に含まれ、任意で行グループ ([`rowgroup`](/ja/docs/Web/Accessibility/ARIA/Roles/Rowgroup_Role)) 内に含まれることもあります。
+
+```html
+
+
国別世界人口
+
+
+
+ フィンランド
+ 550 万
+
+
+ フランス
+ 6700 万
+
+
+
+```
+
+## 説明
+
+行ロール (`role="row"`) 要素は、グリッド ([`grid`](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role))、表 ([`table`](/ja/docs/Web/Accessibility/ARIA/Roles/Table_Role))、ツリーグリッド ([`treegrid`](/ja/docs/Web/Accessibility/ARIA/Roles/treegrid_role)) 内の行であり、任意で行グループ ([`rowgroup`](/ja/docs/Web/Accessibility/ARIA/Roles/Rowgroup_Role)) 内の行です。 行は、静的な表構造内の 1 つ以上のセル ([`cell`](/ja/docs/Web/Accessibility/ARIA/Roles/Cell_Role))、グリッドセル ([`gridcell`](/ja/docs/Web/Accessibility/ARIA/Roles/Gridcell_role))、列ヘッダー ([`columnheader`](/ja/docs/Web/Accessibility/ARIA/Roles/columnheader_role))、行ヘッダー ([`rowheader`](/ja/docs/Web/Accessibility/ARIA/Roles/rowheader_role)) のコンテナーです。 可能な限り、ネイティブな [HTML の ``](/ja/docs/Web/HTML/Element/tr) 要素を使用することを強く推奨します。
+
+ARIA の行を作成するには、コンテナー要素に行ロール (`role="row"`) を追加します。 その行は、グリッド、表、ツリーグリッド内にネストするべきです。 行のグループは、グリッド、表、ツリーグリッド内に直接ネストすることも、これらのコンテナー内の行グループ内にネストすることもできます。 それぞれの行には子のセルが含まれています。 これらのセルには、列や行のヘッダー、グリッドや普通のセルとさまざまな種類のセルがあります。
+
+行には、`aria-colindex`、`aria-level`、`aria-rowindex`、`aria-selected` など、行のロールを明確にする多くの属性を含めることができます。
+
+行がツリーグリッド内にある場合、行には `aria-expanded` 属性を含めることができ、この属性を使って現在の (展開、折りたたみ) 状態を示すことができます。 これは、`aria-expanded` 属性が存在しない通常の表やグリッドの場合には当てはまりません。
+
+表形式の構造を持つインタラクティブなウィジェットを作成するには、代わりにグリッドパターンを使用します。 インタラクションが個々のセルの選択状態を提供する場合や、上下左右のナビゲーションを提供する場合や、ユーザーインターフェイスでセルの順序を入れ替えたり、ドラッグアンドドロップなどで個々のセルの順序を変更したりできる場合は、代わりにグリッド ([`grid`](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role)) やツリーグリッド ([`treegrid`](/ja/docs/Web/Accessibility/ARIA/Roles/treegrid_role)) を使用してください。
+
+> **Note:** 可能な限り、ネイティブな HTML の表要素 (``) を表の行要素 (``) と共に使用することを強く推奨します。
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+#### コンテキストロール
+
+- [role="rowgroup"](/ja/docs/Web/Accessibility/ARIA/Roles/Rowgroup_Role)
+ - : 任意のコンテキスト上の行の親であり、子孫の行の間の関係を確立します。 これは、HTML の表要素の `thead`、`tfoot`、`tbody` 要素と構造的に同等です。
+- [role="table"](/ja/docs/Web/Accessibility/ARIA/Roles/Table_Role)
+ - : グリッドとツリーグリッドと並んで、行を見つけることができる 3 つのコンテキストの 1 つであり、ネイティブな HTML の `` 要素と同様に、行と列に配置されたデータを含むインタラクティブでない表構造の一部として行を識別します。
+- [role="grid"](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role)
+ - : 表とツリーグリッドと並んで、行を見つけることができる 3 つのコンテキストの 1 つであり、ネイティブな HTML の `` 要素と同様に、行と列に配置されたデータを含むインタラクティブでない表構造の一部として行を識別します。
+- [role="treegrid"](/ja/docs/Web/Accessibility/ARIA/Roles/treegrid_role)
+ - : グリッドに似ていますが、ツリー (`tree`) と同じ方法で展開と折りたたみができる行があります (訳注: [W3C のツリーグリッドによるメール受信ボックスの例](https://www.w3.org/TR/wai-aria-practices-1.1/examples/treegrid/treegrid-1.html)では、行単位でのインタラクションも可能となっています) 。
+
+#### 子孫のロール
+
+- [role="cell"](/ja/docs/Web/Accessibility/ARIA/Roles/Cell_Role)
+ - : 表形式のコンテナー内の行にあるセル。
+- [role="gridcell"](/ja/docs/Web/Accessibility/ARIA/Roles/Gridcell_role)
+ - : グリッドやツリーグリッド内の行にあるセル。
+- role="columnheader"
+ - : 列スコープを持つ HTML の `` 要素と構造的に同等なヘッダーセル。 プレーンなセルとは異なり、列ヘッダーロールは、対応する列の全てのセルとの関係を確立します。
+- role="rowheader"
+ - : 行スコープを持つ HTML の ` ` 要素と構造的に同等なヘッダーセル。 プレーンなセルとは異なり、行ヘッダーロールは、対応する行の全てのセルとの関係を確立します。
+
+#### ステートとプロパティ
+
+- aria-expanded ステート
+
+ - : 行の状態を定義する `aria-expanded` 属性は、次の 3 つの値のいずれかを取るか省略することができます。
+
+ - `aria-expanded="true`: 行は現在展開されています。
+ - `aria-expanded="false"`: 行は現在折りたたまれています。
+ - `aria-expended="undefined"`、または属性がない: 行は展開も折りたたみもできません。
+
+ `aria-expanded` 属性を持つ要素が、その要素が「所有」していない別のグループ化コンテナーの展開を制御する場合、作成者は `aria-controls` 属性を使用してそのコンテナーを参照する**べき**です。
+
+- aria-selected ステート
+
+ - : グリッドやツリーグリッドなどのインタラクティブなコンテナー内に行がある場合にのみ関連し、表内に行がある場合は関連しません。 `aria-selected` 属性は、次の 3 つの値のいずれかを取るか省略することができます。
+
+ - `aria-selected="true`: 行は現在選択されています。
+ - `aria-selected="false"`: 行は現在選択されていません。
+ - `aria-selected="undefined"`、または属性がない: 行は選択できません。
+
+- aria-colindex 属性
+
+ - : `aria-colindex` 属性は、列が DOM から隠されている場合にのみ必要です。 一般的に、行自体ではなく、行の子に配置されます。 表示される列が連続している場合は、行に配置できます。
+
+ この属性は、値として、1 と表、グリッド、ツリーグリッド内の全列数の間の整数をとります。 `aria-colindex` は、行に配置されると、行内の全列数に対する要素の列インデックスまたは位置を定義します。 例えば、表内に 15 列あり、4、5、6 の列のみが DOM にある場合、全ての行に `aria-colindex="4"` を設定できます。
+
+ DOM に存在する列のセットが連続して**いない**場合や、複数の行や列にまたがるセルがある場合は、行自体ではなく各行の全ての子に `aria-colindex` を配置します (訳注: 全ての列を 1 から昇順に数えたものを昇順に配置します) 。
+
+ 全ての列が DOM にある場合、この属性は必要ありません。
+
+- aria-rowindex 属性
+
+ - : `aria-rowindex` 属性は、行が DOM から隠されている場合にのみ必要であり、全行のリスト内のどの行が読み込まれているかを示します。 属性は、それぞれの行に一意の値が設定され、値として、1 と表、グリッド、ツリーグリッド内の全行数の間の整数をとり、各行の位置またはインデックスを示します。 例えば、1,500 行ある表で、ヘッダーと 47 行目と 52 行目のみが DOM に存在する場合、ヘッダー行に `aria-rowindex="1"` が設定され、47 行目と 52 行目にそれぞれ `aria-rowindex="47"` と `aria-rowindex="52"` が設定されます (訳注: ヘッダー行も含んだ全ての行を 1 から昇順に数えたものを昇順に配置します) 。
+
+ 全ての行が DOM に存在する場合、この属性は必要ありません。
+
+### キーボードインタラクション
+
+無し
+
+### 必要な JavaScript 機能
+
+無し。 ソート可能な列については、列ヘッダー ([`columnheader`](/ja/docs/Web/Accessibility/ARIA/Roles/columnheader_role)) ロールを参照してください。
+
+> **Note:** ARIA の使用の第一のルールは、要素を転用して ARIA のロール、ステート、プロパティを**追加する**ことでアクセス可能にするのではなく、必要としている意味論と振る舞いがすでに組み込まれているネイティブな機能を使用できることです。 可能な限り、ARIA の表ロールの代わりに HTML の `` 要素を使用してください。
+
+## 例
+
+```html
+
+
ARIA のロールの代わりに使用する意味論的な要素
+
+
+ ARIA のロール
+ 意味論的な要素
+
+
+
+
+ header
+ h1
+
+
+ header
+ h6
+
+
+ rowgroup
+ thead
+
+
+ term
+ dt
+
+
+
+```
+
+上記は、DOM 内に 81 行のうち 5 行が存在する意味論的でない ARIA の表です。 表のヘッダー内に 1 行、表の本体内に 4 行あります。 ヘッダー行は、ヘッダーの行グループ内に単独であり、2 つの列ヘッダーを持ちます。 列はソート可能ですが、`aria-sort` プロパティで示されているように、現在はソートされていません。 表の本体は別の行グループにあり、現在 DOM 内に 4 行あります。 全ての行が DOM 内にあるわけではないため、全ての行に `aria-rowindex` プロパティを含めています。
+
+## ベストプラクティス
+
+データ表構造には、``、``、``、``、``、` ` などのみを使用してください。 これらに ARIA ロールを追加することで、CSS などで表のネイティブな意味論が取り除かれても、アクセシビリティを確保することができます。 ARIA の表ロールの関連するユースケースは、`display: grid` など、CSS の `display` プロパティによって表のネイティブな意味論がオーバーライドされる場合です。 この場合、ARIA の表ロールを使用して意味論を追加し直すことができます。
+
+```html
+
+ ARIA のロールの代わりに使用する意味論的な要素
+
+
+ ARIA のロール
+ 意味論的な要素
+
+
+
+
+ header
+ h1
+
+
+ header
+ h6
+
+
+ rowgroup
+ thead
+
+
+ term
+ dt
+
+
+
+```
+
+上記は、表の意味論的な書き方です。 ARIA のロールが必要になるのは、[`display` プロパティを `flex` や `grid`](/ja/docs/Web/CSS/display#accessibility_concerns) に設定するなどして、表のネイティブな意味論、つまり表の行が完全に破壊されてしまう場合だけです (訳注: ここでの grid は、CSS グリッドレイアウトというグリッドロールとは全く別のものであることに注意してください) 。
+
+### 追加された利点
+
+無し
+
+## 仕様
+
+| 仕様 | 状態 |
+| ------------------------------------------------------------------------------------ | ------------------------------------------------ |
+| {{SpecName("ARIA","#row","ARIA row role")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#row","ARIA row role")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## 関連情報
+
+- [HTML の表の行要素](/ja/docs/Web/HTML/Element/tr)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/rowgroup_role/index.html b/files/ja/web/accessibility/aria/roles/rowgroup_role/index.html
deleted file mode 100644
index f23d47d8a9c718..00000000000000
--- a/files/ja/web/accessibility/aria/roles/rowgroup_role/index.html
+++ /dev/null
@@ -1,166 +0,0 @@
----
-title: 'ARIA: rowgroup ロール'
-slug: Web/Accessibility/ARIA/Roles/Rowgroup_Role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Rowgroup_Role
----
-行グループロール (role="rowgroup"
) を持つ要素は、表形式の構造内の行 (row
) のグループです。 行グループ (rowgroup
) には、グリッド (grid
)、表 (table
)、ツリーグリッド (treegrid
) 内のセル (cell
)、グリッドセル (gridcell
)、列ヘッダー (columnheader
)、行ヘッダー (rowheader
) の行が1つ以上含まれます。
-
-<div role="table" aria-label="人口" aria-describedby="country_population_desc">
- <div id="country_population_desc">国別世界人口</div>
- <div role="rowgroup">
- <div role="row">
- <span role="columnheader" aria-sort="descending">国</span>
- <span role="columnheader" aria-sort="none">人口</span>
- </div>
- </div>
- <div role="rowgroup">
- <div role="row">
- <span role="cell">フィンランド</span>
- <span role="cell">550 万</span>
- </div>
- <div role="row">
- <span role="cell">フランス</span>
- <span role="cell">6700 万</span>
- </div>
- </div>
-</div>
-
-
-説明
-
-行グループ (rowgroup
) は、所有する行の要素間の関係を確立し、HTML の表ヘッダー (<thead>
)、表フッター (<tfoot>
) 、および表本体 (<tbody>
) の要素と構造的に同等です。 ただし、異なる種類の行グループ間には区別がありません。 それらの要素は、表 (table
) やグリッド (grid
) のロールを持つ要素に含まれているか、またはそれらの要素によって所有されている必要があります。 可能な限り、ネイティブな HTML の <thead>
、<tfoot>
、<tbody>
の要素を使用することを強く推奨します。
-
-ARIA の表ヘッダー、表フッター、表本体を作成するには、行グループロール (role="rowgroup"
) を要素に追加します。 その行グループは、1つ以上の行のグループを含むグリッド、表、またはツリーグリッド内にネストするべきです。 各行には子のセルが含まれています。 これらのセルには、列や行のヘッダー、プレーンなセルやグリッドセルとさまざまな種類のセルがあります。
-
-
-
注 : 可能な限り、ネイティブな HTML の表要素(<table>
)を表ヘッダー(<thead>
)、表フッター(<tfoot>
)、表本体(<tbody>
)の要素と共に使用することを強く推奨します。
-
-
-関連する WAI-ARIA のロール、ステート、プロパティ
-
-コンテキストロール
-
-
- role="table"
- グリッドとツリーグリッドと並んで、行を見つけることができる3つのコンテキストの1つです。 ネイティブな HTML の <table>
要素と同様に、行と列に配置されたデータを含むインタラクティブでない表構造の一部として行を識別します。
- role="grid"
- 表とツリーグリッドと並んで、行を見つけることができる3つのコンテキストの1つです。 ネイティブな HTML の <table>
要素と同様に、行と列に配置されたデータを含むインタラクティブでない表構造の一部として行を識別します。
- role="treegrid"
- グリッドに似ていますが、ツリー (tree
) と同じ方法で展開と折りたたみができる行があります (訳注: W3C のツリーグリッドによるメール受信ボックスの例 では、行単位でのインタラクションも可能となっています) 。
-
-
-子孫のロール
-
-
- role="row"
- 表形式の構造内のセルの一行。 行には、1つ以上のセル(cell
)、グリッドセル(gridcell
)、または列ヘッダー(columnheader
)が含まれ、場合によっては行ヘッダー(rowheader
)も含まれます。
-
-
-キーボードインタラクション
-
-無し
-
-必要な JavaScript 機能
-
-無し。
-
-
-
ARIA の使用の第一のルールは、要素を転用して ARIA のロール、ステート、プロパティを追加する ことでアクセス可能にするのではなく、必要としている意味論と振る舞いがすでに組み込まれているネイティブな機能を使用できることです。 可能な限り、ARIA の表ロールの代わりに HTML の <table>
要素を使用してください。
-
-
-例
-
-<div role="table" aria-label="意味論的な要素" aria-describedby="semantic_elements_table_desc" aria-rowcount="81">
- <div id="semantic_elements_table_desc">ARIA のロールの代わりに使用する意味論的な要素</div>
- <div role="rowgroup">
- <div role="row">
- <span role="columnheader" aria-sort="none">ARIA のロール</span>
- <span role="columnheader" aria-sort="none">意味論的な要素</span>
- </div>
- </div>
- <div role="rowgroup">
- <div role="row" aria-rowindex="11">
- <span role="cell">header</span>
- <span role="cell">h1</span>
- </div>
- <div role="row" aria-rowindex="16">
- <span role="cell">header</span>
- <span role="cell">h6</span>
- </div>
- <div role="row" aria-rowindex="18">
- <span role="cell">rowgroup</span>
- <span role="cell">thead</span>
- </div>
- <div role="row" aria-rowindex="24">
- <span role="cell">term</span>
- <span role="cell">dt</span>
- </div>
- </div>
-</div>
-
-
-上記は、表のヘッダーと表の本体を備えた意味論的でない ARIA の表であり、DOM 内には 81 行のうち 5 行が存在しています。 表のヘッダー内に 1 行、表の本体内に 4 行あります。 ヘッダー行は、ヘッダーの行グループ内に単独であり、2 つの列ヘッダーを持ちます。 列はソート可能ですが、aria-sort
プロパティで示されているように、現在はソートされていません。 表の本体は別の行グループにあり、現在 DOM 内に 4 行あります。 全ての行が DOM 内にあるわけではないため、全ての行に aria-rowindex
プロパティを含めています。
-
-ベストプラクティス
-
-データ表構造には、<table>
、<tbody>
、<thead>
、<tr>
、<th>
、<td>
などのみを使用してください。 これらに ARIA ロールを追加することで、CSS などで表のネイティブな意味論が取り除かれても、アクセシビリティを確保することができます。 ARIA の表ロールの関連するユースケースは、display: grid
など、CSS の display
プロパティによって表のネイティブな意味論がオーバーライドされる場合です。 この場合、ARIA の表ロールを使用して意味論を追加し直すことができます。
-
-<table role="table" aria-label="意味論的な要素" aria-describedby="semantic_elements_table_desc" aria-rowcount="81">
- <caption id="semantic_elements_table_desc">ARIA のロールの代わりに使用する意味論的な要素</caption>
- <thead role="rowgroup">
- <tr role="row">
- <th role="columnheader" aria-sort="none">ARIA のロール</th>
- <th role="columnheader" aria-sort="none">意味論的な要素</th>
- </tr>
- </thead>
- <tbody role="rowgroup">
- <tr role="row" aria-rowindex="11">
- <td role="cell">header</td>
- <td role="cell">h1</td>
- </tr>
- <tr role="row" aria-rowindex="16">
- <td role="cell">header</td>
- <td role="cell">h6</td>
- </tr>
- </tbody>
- </table>
-
-上記は、表の意味論的な書き方です。 ARIA のロールが必要になるのは、display
プロパティを flex
や grid
に設定するなどして、表のネイティブな意味論、つまり表の行が完全に破壊されてしまう場合だけです (訳注: ここでの grid は、CSS グリッドレイアウトというグリッドロールとは全く別のものであることに注意してください) 。
-
-追加された利点
-
-無し
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#rowgroup","ARIA rowgroup role")}}
- {{Spec2('ARIA')}}
-
-
-
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/rowgroup_role/index.md b/files/ja/web/accessibility/aria/roles/rowgroup_role/index.md
new file mode 100644
index 00000000000000..dce63c9f51b598
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/rowgroup_role/index.md
@@ -0,0 +1,147 @@
+---
+title: 'ARIA: rowgroup ロール'
+slug: Web/Accessibility/ARIA/Roles/Rowgroup_Role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Rowgroup_Role
+---
+行グループロール (`role="rowgroup"`) を持つ要素は、表形式の構造内の行 ([`row`](/ja/docs/Web/Accessibility/ARIA/Roles/Row_Role)) のグループです。 行グループ (`rowgroup`) には、グリッド ([`grid`](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role))、表 ([`table`](/ja/docs/Web/Accessibility/ARIA/Roles/Table_Role))、ツリーグリッド ([`treegrid`](/ja/docs/Web/Accessibility/ARIA/Roles/Treegrid_Role)) 内のセル ([`cell`](/ja/docs/Web/Accessibility/ARIA/Roles/Cell_Role))、グリッドセル ([`gridcell`](/ja/docs/Web/Accessibility/ARIA/Roles/Gridcell_role))、列ヘッダー ([`columnheader`](/ja/docs/Web/Accessibility/ARIA/Roles/Columnheader_Role))、行ヘッダー ([`rowheader`](/ja/docs/Web/Accessibility/ARIA/Roles/rowheader_Role)) の行が 1 つ以上含まれます。
+
+```html
+
+
国別世界人口
+
+
+
+ フィンランド
+ 550 万
+
+
+ フランス
+ 6700 万
+
+
+
+```
+
+## 説明
+
+行グループ (`rowgroup`) は、所有する行の要素間の関係を確立し、HTML の表ヘッダー ([``](/ja/docs/Web/HTML/Element/thead))、表フッター ([` `](/ja/docs/Web/HTML/Element/tfoot)) 、および表本体 ([` `](/ja/docs/Web/HTML/Element/tbody)) の要素と構造的に同等です。 ただし、異なる種類の行グループ間には区別がありません。 それらの要素は、表 ([`table`](/ja/docs/Web/Accessibility/ARIA/Roles/Table_Role)) やグリッド ([`grid`](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role)) のロールを持つ要素に含まれているか、またはそれらの要素によって所有されている必要があります。 可能な限り、ネイティブな HTML の [``](/ja/docs/Web/HTML/Element/thead)、[` `](/ja/docs/Web/HTML/Element/tfoot)、[` `](/ja/docs/Web/HTML/Element/tbody) の要素を使用することを強く推奨します。
+
+ARIA の表ヘッダー、表フッター、表本体を作成するには、行グループロール (`role="rowgroup"`) を要素に追加します。 その行グループは、1 つ以上の行のグループを含むグリッド、表、またはツリーグリッド内にネストするべきです。 各行には子のセルが含まれています。 これらのセルには、列や行のヘッダー、プレーンなセルやグリッドセルとさまざまな種類のセルがあります。
+
+> **Note:** 可能な限り、ネイティブな HTML の表要素(``)を表ヘッダー(``)、表フッター(` `)、表本体(` `)の要素と共に使用することを強く推奨します。
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+#### コンテキストロール
+
+- [role="table"](/ja/docs/Web/Accessibility/ARIA/Roles/Table_Role)
+ - : グリッドとツリーグリッドと並んで、行を見つけることができる 3 つのコンテキストの 1 つです。 ネイティブな HTML の [``](/ja/docs/Web/HTML/Element/table) 要素と同様に、行と列に配置されたデータを含むインタラクティブでない表構造の一部として行を識別します。
+- [role="grid"](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role)
+ - : 表とツリーグリッドと並んで、行を見つけることができる 3 つのコンテキストの 1 つです。 ネイティブな HTML の [``](/ja/docs/Web/HTML/Element/table) 要素と同様に、行と列に配置されたデータを含むインタラクティブでない表構造の一部として行を識別します。
+- [role="treegrid"](/ja/docs/Web/Accessibility/ARIA/Roles/Treegrid_Role)
+ - : グリッドに似ていますが、ツリー (`tree`) と同じ方法で展開と折りたたみができる行があります (訳注: [W3C のツリーグリッドによるメール受信ボックスの例](https://www.w3.org/TR/wai-aria-practices-1.1/examples/treegrid/treegrid-1.html)では、行単位でのインタラクションも可能となっています) 。
+
+#### 子孫のロール
+
+- [role="row"](/ja/docs/Web/Accessibility/ARIA/Roles/Row_Role)
+ - : 表形式の構造内のセルの一行。 行には、1 つ以上のセル([`cell`](/ja/docs/Web/Accessibility/ARIA/Roles/Cell_Role))、グリッドセル([`gridcell`](/ja/docs/Web/Accessibility/ARIA/Roles/Gridcell_role))、または列ヘッダー([`columnheader`](/ja/docs/Web/Accessibility/ARIA/Roles/Columnheader_Role))が含まれ、場合によっては行ヘッダー([`rowheader`](/ja/docs/Web/Accessibility/ARIA/Roles/rowheader_Role))も含まれます。
+
+### キーボードインタラクション
+
+無し
+
+### 必要な JavaScript 機能
+
+無し。
+
+> **Note:** ARIA の使用の第一のルールは、要素を転用して ARIA のロール、ステート、プロパティを**追加する**ことでアクセス可能にするのではなく、必要としている意味論と振る舞いがすでに組み込まれているネイティブな機能を使用できることです。 可能な限り、ARIA の表ロールの代わりに HTML の `` 要素を使用してください。
+
+## 例
+
+```html
+
+
ARIA のロールの代わりに使用する意味論的な要素
+
+
+ ARIA のロール
+ 意味論的な要素
+
+
+
+
+ header
+ h1
+
+
+ header
+ h6
+
+
+ rowgroup
+ thead
+
+
+ term
+ dt
+
+
+
+```
+
+上記は、表のヘッダーと表の本体を備えた意味論的でない ARIA の表であり、DOM 内には 81 行のうち 5 行が存在しています。 表のヘッダー内に 1 行、表の本体内に 4 行あります。 ヘッダー行は、ヘッダーの行グループ内に単独であり、2 つの列ヘッダーを持ちます。 列はソート可能ですが、`aria-sort` プロパティで示されているように、現在はソートされていません。 表の本体は別の行グループにあり、現在 DOM 内に 4 行あります。 全ての行が DOM 内にあるわけではないため、全ての行に `aria-rowindex` プロパティを含めています。
+
+## ベストプラクティス
+
+データ表構造には、``、``、``、``、``、` ` などのみを使用してください。 これらに ARIA ロールを追加することで、CSS などで表のネイティブな意味論が取り除かれても、アクセシビリティを確保することができます。 ARIA の表ロールの関連するユースケースは、`display: grid` など、CSS の `display` プロパティによって表のネイティブな意味論がオーバーライドされる場合です。 この場合、ARIA の表ロールを使用して意味論を追加し直すことができます。
+
+```html
+
+ ARIA のロールの代わりに使用する意味論的な要素
+
+
+ ARIA のロール
+ 意味論的な要素
+
+
+
+
+ header
+ h1
+
+
+ header
+ h6
+
+
+
+```
+
+上記は、表の意味論的な書き方です。 ARIA のロールが必要になるのは、[`display` プロパティを `flex` や `grid`](/ja/docs/Web/CSS/display#accessibility_concerns) に設定するなどして、表のネイティブな意味論、つまり表の行が完全に破壊されてしまう場合だけです (訳注: ここでの grid は、CSS グリッドレイアウトというグリッドロールとは全く別のものであることに注意してください) 。
+
+### 追加された利点
+
+無し
+
+## 仕様
+
+| 仕様 | 状態 |
+| ------------------------------------------------------------------------ | ------------------------ |
+| {{SpecName("ARIA","#rowgroup","ARIA rowgroup role")}} | {{Spec2('ARIA')}} |
+
+## 関連情報
+
+- [HTML の表](/ja/docs/Web/HTML/Element/table)
+- [HTML の表本体](/ja/docs/Web/HTML/Element/tbody)
+- [HTML の表フッター](/ja/docs/Web/HTML/Element/tfoot)
+- [HTML の表ヘッダー](/ja/docs/Web/HTML/Element/thead)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/search_role/index.html b/files/ja/web/accessibility/aria/roles/search_role/index.html
deleted file mode 100644
index d0bab247b21e49..00000000000000
--- a/files/ja/web/accessibility/aria/roles/search_role/index.html
+++ /dev/null
@@ -1,126 +0,0 @@
----
-title: 'ARIA: search ロール'
-slug: Web/Accessibility/ARIA/Roles/Search_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Search_role
----
-検索 (search
) ランドマークロール は、ページ、サイト、またはサイトのコレクションの検索に使用されるページのセクションを識別するために使用します。
-
-<form role="search">
- <!-- 検索入力 -->
-</form>
-
-
-説明
-
-検索 (search
) ロールは、ランドマーク です。 ランドマークは、支援技術によって使用され、文書の大きなセクションを素早く識別してナビゲートすることができます。 検索 (search
) ロールは、全体として組み合わせて検索機能を作成する項目およびオブジェクトを含むコンテナー要素に追加します。 <form>
が検索フォームの場合、フォーム (form
) ロールの代わりに検索 (search
) ロールを使用します。 文書に複数の検索が含まれている場合、それぞれに固有のラベルを持つべきです。 search
型の <input>
要素 はありますが、検索ランドマークを定義する HTML 要素はありません。
-
-例
-
-<form id="search" role="search">
- <label for="search-input">このサイトを検索</label>
- <input type="search" id="search-input" name="search" spellcheck="false">
- <input value="検索する" type="submit">
-</form>
-
-
-アクセシビリティに関する懸念
-
-ランドマークロール は、文書のより大きな全体的なセクションを識別するために、控えめに使用することを意図しています。 あまりにも多くのランドマークロールを使用すると、スクリーンリーダーで「ノイズ」が発生し、ページ全体のレイアウトを理解することが難しくなります。
-
-ベストプラクティス
-
-好ましい HTML
-
-<form>
要素 を検索ロール (role="search"
) の宣言と共に使用することで、最大限のサポートが提供されます。
-
-ランドマークのラベル付け
-
-複数のランドマーク
-
-文書内に複数の検索 (search
) ランドマークロールがある場合は、各ランドマークにラベルを付けます。 このラベルで、支援技術のユーザーがそれぞれのランドマークの目的を素早く理解することができます。
-
-<form id="site-search" role="search" aria-label="サイト全体">
- <!-- 検索入力 -->
-</form>
-
-...
-
-<form id="page-search" role="search" aria-label="このページ">
- <!-- 検索入力 -->
-</form>
-
-
-繰り返されるランドマーク
-
-文書内で検索 (search
) ランドマークロールが繰り返され、両方のランドマークのコンテンツが同じ場合は、各ランドマークに同じラベルを使用します。 この例では、ページの上部と下部でサイト全体の検索が繰り返されています。
-
-<header>
- <form id="site-search-top" role="search" aria-label="サイト全体">
- <!-- 検索入力 -->
- </form>
-</header>
-
-...
-
-<footer>
- <form id="site-search-bottom" role="search" aria-label="サイト全体">
- <!-- 検索入力 -->
- </form>
-</footer>
-
-
-冗長な説明
-
-スクリーンリーダーは、ランドマークロールの種類をアナウンスします。 このため、ラベルでランドマークが何であるかを説明する必要はありません。 例えば、aria-label="サイト全体の検索"
を使用した検索ロール (role="search"
) の宣言は、「サイト全体の検索検索」として重複してアナウンスされることがあります。
-
-追加された利点
-
-ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、スクリーンリーダーを使用していないユーザーでも文書の大きなセクションを素早く識別してナビゲートできます。
-
-
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#search","ARIA search role")}}
- {{Spec2('ARIA')}}
-
-
- {{SpecName("ARIA Authoring Practices","#aria_lh_search","ARIA search role")}}
- {{Spec2('ARIA Authoring Practices')}}
-
-
-
-
-スクリーンリーダーのサポート
-
-TBD
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/search_role/index.md b/files/ja/web/accessibility/aria/roles/search_role/index.md
new file mode 100644
index 00000000000000..ac48d40ce27e12
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/search_role/index.md
@@ -0,0 +1,110 @@
+---
+title: 'ARIA: search ロール'
+slug: Web/Accessibility/ARIA/Roles/Search_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Search_role
+---
+検索 (`search`) [ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、ページ、サイト、またはサイトのコレクションの検索に使用されるページのセクションを識別するために使用します。
+
+```html
+
+
+
+```
+
+## 説明
+
+検索 (`search`) ロールは、[ランドマーク](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)です。 ランドマークは、支援技術によって使用され、文書の大きなセクションを素早く識別してナビゲートすることができます。 検索 (`search`) ロールは、全体として組み合わせて検索機能を作成する項目およびオブジェクトを含むコンテナー要素に追加します。 `` が検索フォームの場合、フォーム ([`form`](/ja/docs/Web/Accessibility/ARIA/Roles/Form_Role)) ロールの代わりに検索 (`search`) ロールを使用します。 文書に複数の検索が含まれている場合、それぞれに固有のラベルを持つべきです。 [`search` 型の ` ` 要素](/ja/docs/Web/HTML/Element/input/search)はありますが、検索ランドマークを定義する HTML 要素はありません。
+
+## 例
+
+```html
+
+ このサイトを検索
+
+
+
+```
+
+## アクセシビリティに関する懸念
+
+[ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)は、文書のより大きな全体的なセクションを識別するために、控えめに使用することを意図しています。 あまりにも多くのランドマークロールを使用すると、スクリーンリーダーで「ノイズ」が発生し、ページ全体のレイアウトを理解することが難しくなります。
+
+## ベストプラクティス
+
+### 好ましい HTML
+
+[`` 要素](/ja/docs/Web/HTML/Element/form)を検索ロール (`role="search"`) の宣言と共に使用することで、最大限のサポートが提供されます。
+
+### ランドマークのラベル付け
+
+#### 複数のランドマーク
+
+文書内に複数の検索 (`search`) ランドマークロールがある場合は、各ランドマークにラベルを付けます。 このラベルで、支援技術のユーザーがそれぞれのランドマークの目的を素早く理解することができます。
+
+```html
+
+
+
+
+...
+
+
+
+
+```
+
+#### 繰り返されるランドマーク
+
+文書内で検索 (`search`) ランドマークロールが繰り返され、両方のランドマークのコンテンツが同じ場合は、各ランドマークに同じラベルを使用します。 この例では、ページの上部と下部でサイト全体の検索が繰り返されています。
+
+```html
+
+
+...
+
+
+```
+
+#### 冗長な説明
+
+スクリーンリーダーは、ランドマークロールの種類をアナウンスします。 このため、ラベルでランドマークが何であるかを説明する必要はありません。 例えば、`aria-label="サイト全体の検索"` を使用した検索ロール (`role="search"`) の宣言は、「サイト全体の検索検索」として重複してアナウンスされることがあります。
+
+### 追加された利点
+
+ブラウザー拡張などの特定の技術は、ページ上に存在する全てのランドマークロールのリストを生成することができ、スクリーンリーダーを使用していないユーザーでも文書の大きなセクションを素早く識別してナビゲートできます。
+
+- [ランドマークブラウザー拡張](https://matatk.agrip.org.uk/landmarks/)(英語)
+
+## 仕様
+
+| 仕様 | 状態 |
+| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
+| {{SpecName("ARIA","#search","ARIA search role")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#aria_lh_search","ARIA search role")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## スクリーンリーダーのサポート
+
+TBD
+
+## 関連情報
+
+- [\: フォーム要素](/ja/docs/Web/HTML/Element/form)
+- [\ ](/ja/docs/Web/HTML/Element/input/search)
+- [HTML のセクションとアウトラインの使用](/ja/docs/orphaned/Web/Guide/HTML/Using_HTML_sections_and_outlines)
+- [ランドマークロール: ARIA を使用する: ロール、ステート、プロパティ](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)
+- [Using WAI-ARIA Landmarks – 2013 | The Paciello Group](https://developer.paciellogroup.com/blog/2013/02/using-wai-aria-landmarks-2013/)
+- [Accessible Landmarks | scottohara.me](https://www.scottohara.me/blog/2018/03/03/landmarks.html)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/slider_role/index.html b/files/ja/web/accessibility/aria/roles/slider_role/index.html
deleted file mode 100644
index 178144c4f79e04..00000000000000
--- a/files/ja/web/accessibility/aria/roles/slider_role/index.html
+++ /dev/null
@@ -1,130 +0,0 @@
----
-title: slider ロールの使用
-slug: Web/Accessibility/ARIA/Roles/slider_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_slider_role
-original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_slider_role
----
-
-
-このテクニックは、slider
ロールの使い方を示し、ブラウザーと支援技術に及ぼす影響について説明します。
-
-slider
ロールは、ユーザーが所定の範囲内から値を選択できるマークアップに使用されます。 slider
ロールは、値を変更するために調節するコントロールである「つまみ」に割り当てられます。 ユーザーがつまみとやり取りするとき、アプリケーションはスライダーの aria-valuenow
(および可能なら aria-valuetext
)属性をプログラムで調整して現在の値を反映する必要があります。 詳細については、下記の例 のセクションを参照してください。
-
-キーボードとフォーカス
-
-スライダーはキーボードでフォーカス可能で操作可能であるべきです。 ユーザーがタブキーでスライダーにフォーカスを合わせると、フォーカスはつまみに当たるべきです。 つまみはマウスのユーザーがドラッグするコントロールです。 矢印キーは、次のように操作する必要があります(右から左の言語のローカライゼーションは矢印の方向を逆にする必要があります)。
-
-
-
-
- キー
- 動作
-
-
-
-
- 右矢印と上矢印
- 選択した値を増やす
-
-
- 左矢印と下矢印
- 選択した値を減らす
-
-
- ページアップとページダウン
- オプションで、設定した量だけ値を増減します(例えば、0 ~ 100 の範囲で 10 ずつ)
-
-
-
-
-ユーザーエージェントと支援技術への影響
-
-
-
-注 : 支援技術がこの手法をどのように扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の1つで、したがって規範的ではありません。
-
-例
-
-例 1: 単純な数値範囲
-
-次の例では、単純なスライダーを使用して 1 ~ 100 の値を選択しています。 現在のボリュームは 50 です。 アプリケーションは、ユーザーの入力に応じてプログラムで aria-valuenow
の値を更新します。
-
-<label for="fader">ボリューム</label>
-<input type="range"
- id="fader"
- min="1"
- max="100"
- value="50"
- step="1"
- aria-valuemin="1"
- aria-valuemax="100"
- aria-valuenow="50"
- oninput="outputUpdate(value)">
-<output for="fader" id="volume">50</output>
-
-
-次のコードスニペットを使用すると、ユーザー入力によって更新された出力を返すことができます。
-
-function outputUpdate(vol) {
- document.querySelector('#volume').value = vol;
-}
-
-
-例 2: テキスト値
-
-時には、意味的には数字ではない値を選択するためにスライダーが使用されることがあります。 このような場合、aria-valuetext
属性を使用して、現在選択されている値に対して適切なテキスト名を指定します。 次の例では、スライダーを使用して曜日を選択しています。
-
-<label id="day-label">曜日</label>
-<div class="day-slider">
- <div id="day-handle" class="day-slider-handle" role="slider" aria-labelledby="day-label"
- aria-valuemin="1"
- aria-valuemax="7"
- aria-valuenow="2
- aria-valuetext="月曜日">
- </div>
-</div>
-
-
-以下のコードスニペットは、ユーザーの入力に応答して aria-valuenow
および aria-valuetext
属性を更新する関数を示しています。
-
-var dayNames = ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"];
-var updateSlider = function (newValue) {
- var handle = document.getElementById("day-handle");
- handle.setAttribute("aria-valuenow" , newValue.toString() );
- handle.setAttribute("aria-valuetext", dayNames[newValue]);
-};
-
-
-注
-
-
-
-
-
-使用された ARIA 属性
-
-
-
-
-
-
-
-互換性
-
-
-
-その他のリソース
-
-
diff --git a/files/ja/web/accessibility/aria/roles/slider_role/index.md b/files/ja/web/accessibility/aria/roles/slider_role/index.md
new file mode 100644
index 00000000000000..bdde8ca1db7fda
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/slider_role/index.md
@@ -0,0 +1,103 @@
+---
+title: slider ロールの使用
+slug: Web/Accessibility/ARIA/Roles/slider_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_slider_role
+original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_slider_role
+---
+このテクニックは、[`slider`](http://www.w3.org/TR/wai-aria/#slider) ロールの使い方を示し、ブラウザーと支援技術に及ぼす影響について説明します。
+
+`slider` ロールは、ユーザーが所定の範囲内から値を選択できるマークアップに使用されます。 `slider` ロールは、値を変更するために調節するコントロールである「つまみ」に割り当てられます。 ユーザーがつまみとやり取りするとき、アプリケーションはスライダーの `aria-valuenow`(および可能なら `aria-valuetext`)属性をプログラムで調整して現在の値を反映する必要があります。 詳細については、下記の[例](#examples)のセクションを参照してください。
+
+### キーボードとフォーカス
+
+スライダーはキーボードでフォーカス可能で操作可能であるべきです。 ユーザーがタブキーでスライダーにフォーカスを合わせると、フォーカスはつまみに当たるべきです。 つまみはマウスのユーザーがドラッグするコントロールです。 矢印キーは、次のように操作する必要があります(右から左の言語のローカライゼーションは矢印の方向を逆にする必要があります)。
+
+| キー | 動作 |
+| -------------------------- | ------------------------------------------------------------------------------- |
+| 右矢印と上矢印 | 選択した値を増やす |
+| 左矢印と下矢印 | 選択した値を減らす |
+| ページアップとページダウン | オプションで、設定した量だけ値を増減します(例えば、0 ~ 100 の範囲で 10 ずつ) |
+
+## ユーザーエージェントと支援技術への影響
+
+> **Note:** 支援技術がこの手法をどのように扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の 1 つで、したがって規範的ではありません。
+
+## 例
+
+### 例 1: 単純な数値範囲
+
+次の例では、単純なスライダーを使用して 1 ~ 100 の値を選択しています。 現在のボリュームは 50 です。 アプリケーションは、ユーザーの入力に応じてプログラムで `aria-valuenow` の値を更新します。
+
+```html
+ボリューム
+
+50
+```
+
+次のコードスニペットを使用すると、ユーザー入力によって更新された出力を返すことができます。
+
+```
+function outputUpdate(vol) {
+ document.querySelector('#volume').value = vol;
+}
+```
+
+### 例 2: テキスト値
+
+時には、意味的には数字ではない値を選択するためにスライダーが使用されることがあります。 このような場合、`aria-valuetext` 属性を使用して、現在選択されている値に対して適切なテキスト名を指定します。 次の例では、スライダーを使用して曜日を選択しています。
+
+```html
+曜日
+
+```
+
+以下のコードスニペットは、ユーザーの入力に応答して `aria-valuenow` および `aria-valuetext` 属性を更新する関数を示しています。
+
+```js
+var dayNames = ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"];
+var updateSlider = function (newValue) {
+ var handle = document.getElementById("day-handle");
+ handle.setAttribute("aria-valuenow", newValue.toString());
+ handle.setAttribute("aria-valuetext", dayNames[newValue]);
+};
+```
+
+## 注
+
+## 使用された ARIA 属性
+
+- [aria-valuemin](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuemin_attribute "en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuemin_attribute")
+- [aria-valuemax](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuemax_attribute "en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuemax_attribute")
+- [aria-valuenow](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuenow_attribute "Using the aria-label attribute")
+- [aria-valuetext](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuetext_attribute "Using the aria-required attribute")
+- [aria-orientation](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-orientation_attribute "en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-orientation_attribute")
+
+## 関連する ARIA 技術
+
+## 互換性
+
+TBD: 一般的な UA と AT 製品の組み合わせに関するサポート情報を追加する
+
+## その他のリソース
+
+- [slider ロールの WAI-ARIA 仕様](https://www.w3.org/TR/wai-aria-1.1/#slider)(英語)
diff --git a/files/ja/web/accessibility/aria/roles/status_role/index.html b/files/ja/web/accessibility/aria/roles/status_role/index.html
deleted file mode 100644
index 491325d4bcd97b..00000000000000
--- a/files/ja/web/accessibility/aria/roles/status_role/index.html
+++ /dev/null
@@ -1,83 +0,0 @@
----
-title: status ロールの使用
-slug: Web/Accessibility/ARIA/Roles/status_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_status_role
-original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_status_role
----
-説明
-
-このテクニックは、status
ロールを使用する方法を示し、ブラウザーと支援技術に及ぼす影響について説明します。
-
-status
ロールは、ライブリージョン の一種であり、内容は alert
を正当化するほど重要ではないユーザーのためのアドバイザリ情報であり、多くの場合ステータスバーとして表示されます。 ロールが要素に追加されると、ブラウザーは、支援技術製品にアクセス可能なステータスイベントを送信し、ユーザーに通知することができます。
-
-ステータス情報のコンテンツは、ステータスオブジェクト内に提供されなければならず、このオブジェクトがフォーカスを受け取らないようにするべきです。 ページの別の部分がステータスに表示されるものを制御する場合、関係は aria-controls
属性を介して明示的に指定するべきです。
-
-支援技術は、ステータスをレンダリングするために点字ディスプレイのいくつかのセルを予約することができます。
-
-ユーザーエージェントと支援技術への影響
-
-status
ロールが要素に追加されるか、またはそのような要素が可視になると、ユーザーエージェントは以下を行うべきです。
-
-
- オペレーティングシステムのアクセシビリティ API で status
ロールを持つものとして要素を公開します。
- オペレーティングシステムのアクセシビリティ API がサポートされている場合は、アクセシビリティ API を使用してアクセス可能なステータスイベントを発生させます。
-
-
-支援技術製品は、そのようなイベントをリスンし、それに応じてユーザーに以下を通知するべきです。
-
-
- スクリーンリーダーは、現在のステータスをアナウンスするための特別なキーを提供することがあり、これはステータスのライブリージョンの内容を提示するべきです。 aria-live="assertive"
が設定されている場合を除いて、ユーザーがアイドル状態になったときにアナウンスするべきです。
- スクリーン拡大鏡でステータスが拡大されることがあります。
-
-
-注 : 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の1つで、したがって規範的ではありません。
-
-例
-
-例 1: HTMLで status ロールを追加する
-
-以下のスニペットは、status
ロールが html ソースコードに直接追加される仕組みを示しています。
-
-<p role="status">変更は自動的に保存されました。</p>
-
-動作する例
-
-
-
-注
-
-使用された ARIA 属性
-
-
-
-
-
-
-
-互換性
-
-
-
-その他のリソース
-
-
diff --git a/files/ja/web/accessibility/aria/roles/status_role/index.md b/files/ja/web/accessibility/aria/roles/status_role/index.md
new file mode 100644
index 00000000000000..d42511f8195b05
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/status_role/index.md
@@ -0,0 +1,66 @@
+---
+title: status ロールの使用
+slug: Web/Accessibility/ARIA/Roles/status_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_status_role
+original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_status_role
+---
+### 説明
+
+このテクニックは、[`status`](https://www.w3.org/TR/wai-aria/#status) ロールを使用する方法を示し、ブラウザーと支援技術に及ぼす影響について説明します。
+
+`status` ロールは、[ライブリージョン](http://www.w3.org/WAI/PF/aria/terms#def_liveregion)の一種であり、内容は [`alert`](https://www.w3.org/TR/wai-aria-practices/#alert) を正当化するほど重要ではないユーザーのためのアドバイザリ情報であり、多くの場合ステータスバーとして表示されます。 ロールが要素に追加されると、ブラウザーは、支援技術製品にアクセス可能なステータスイベントを送信し、ユーザーに通知することができます。
+
+ステータス情報のコンテンツは、ステータスオブジェクト内に提供されなければならず、このオブジェクトがフォーカスを受け取らないようにするべきです。 ページの別の部分がステータスに表示されるものを制御する場合、関係は [`aria-controls`](http://www.w3.org/TR/wai-aria/#aria-controls) 属性を介して明示的に指定するべきです。
+
+支援技術は、ステータスをレンダリングするために点字ディスプレイのいくつかのセルを予約することができます。
+
+### ユーザーエージェントと支援技術への影響
+
+`status` ロールが要素に追加されるか、またはそのような要素が可視になると、ユーザーエージェントは以下を行うべきです。
+
+- オペレーティングシステムのアクセシビリティ API で `status` ロールを持つものとして要素を公開します。
+- オペレーティングシステムのアクセシビリティ API がサポートされている場合は、アクセシビリティ API を使用してアクセス可能なステータスイベントを発生させます。
+
+支援技術製品は、そのようなイベントをリスンし、それに応じてユーザーに以下を通知するべきです。
+
+- スクリーンリーダーは、現在のステータスをアナウンスするための特別なキーを提供することがあり、これはステータスのライブリージョンの内容を提示するべきです。 `aria-live="assertive"` が設定されている場合を除いて、ユーザーがアイドル状態になったときにアナウンスするべきです。
+- スクリーン拡大鏡でステータスが拡大されることがあります。
+
+> **Note:** 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の 1 つで、したがって規範的ではありません。
+
+### 例
+
+#### 例 1: HTML で status ロールを追加する
+
+以下のスニペットは、`status` ロールが html ソースコードに直接追加される仕組みを示しています。
+
+```html
+変更は自動的に保存されました。
+```
+
+#### 動作する例
+
+### 注
+
+### 使用された ARIA 属性
+
+- [status](https://www.w3.org/TR/wai-aria/#status)
+
+### 関連する ARIA 技術
+
+- [alert](https://www.w3.org/TR/wai-aria-practices/#alert) ロール
+- [ライブリージョンのロール](https://www.w3.org/TR/wai-aria-1.1/#live_region_roles)
+- [ライブリージョンの属性](https://www.w3.org/TR/wai-aria-1.1/#attrs_liveregions)
+
+### 互換性
+
+- Paciello Group は、2014 年のブログ記事を通じて互換性に関するいくつかのデータを発表しました。 [ARIA ライブリージョンのスクリーンリーダーのサポート](https://developer.paciellogroup.com/blog/2014/03/screen-reader-support-aria-live-regions/)
+- TBD: 一般的な UA と AT 製品の組み合わせに関するサポート情報を追加する
+
+### その他のリソース
+
+- status ロールの [WAI-ARIA 1.0(2014 年)](https://www.w3.org/TR/wai-aria-1.1/#status)よりの以前の勧告
diff --git a/files/ja/web/accessibility/aria/roles/switch_role/index.html b/files/ja/web/accessibility/aria/roles/switch_role/index.html
deleted file mode 100644
index fa1607b718b9d3..00000000000000
--- a/files/ja/web/accessibility/aria/roles/switch_role/index.html
+++ /dev/null
@@ -1,193 +0,0 @@
----
-title: 'ARIA: switch ロール'
-slug: Web/Accessibility/ARIA/Roles/Switch_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Switch_role
----
-ARIA のスイッチ (switch
) ロールは、チェックボックス (checkbox
) ロールと機能的に同じですが、かなり一般的な意味を持つ「チェックされた」状態と「チェックされていない」状態を表す代わりに、スイッチ (switch
) ロールは「オン」と「オフ」の状態を表す点が異なります。
-
-この例では、ウィジェットを作成し、それに ARIA のスイッチ (switch
) ロールを割り当てています。
-
-<button type="button" role="switch" aria-checked="true"
- id="speakerPower" class="switch">
- <span>オフ</span>
- <span>オン</span>
-</button>
-<label for="speakerPower" class="switch">スピーカー出力</label>
-
-説明
-
-ARIA のスイッチ (switch
) ロールは、チェックボックス (checkbox
) ロールと同じですが、「チェックされた」や「チェックされていない」ではなく、「オン」と「オフ」のどちらかになります。 チェックボックス (checkbox
) ロールと同様に、aria-checked
属性が必須です。 可能な値は true
と false
の2つです。 <checkbox>
やチェックボックスロール (role="checkbox"
) とは異なり、不確定な状態 (indeterminate
) や混在した状態 (mixed
) はありません。 スイッチ (switch
) ロールは、aria-checked
属性に mixed
という値をサポートしていません。 スイッチ (switch
) に mixed
という値を割り当てると、代わりに値が false
に設定されます。
-
-支援技術では、スイッチのオン/オフの概念を反映するために、スイッチ (switch
) ウィジェットを特別な表現で表すことを選択できます。
-
-スイッチはインタラクティブなコントロールなので、フォーカス可能でキーボードによりアクセス可能でなければなりません。 このロールがフォーカス可能でない要素に適用されている場合は、tabindex
属性を使用してこれを変更してください。 スイッチの値を切り替えるために期待されるキーボードショートカットはスペース キーです。 開発者は、スイッチがトグルされたときに、aria-checked
属性の値を動的に変更する必要があります。
-
-関連する ARIA のロール、ステート、プロパティ
-
-
- aria-checked
属性
- aria-checked
属性は、スイッチ (switch
) ロールを使用する場合に必須 です。 これは、スイッチ (switch
) ロールが適用されているウィジェットの現在の状態を表すためです。 true
の値は「オン」状態を表し、false
の値は「オフ」状態を表します。 mixed
の値はスイッチロールでサポートされておらず、false
として扱われます。 デフォルト値は false
です。 (訳注: ARIA in HTML によると、input type=checkbox 要素では、この属性を使用するべきではなく、checked 属性が使用できるそうです。)
- aria-readonly
属性
- aria-readonly
属性は、スイッチ (switch
) ロールでサポートされています。 これは、ウィジェットの状態がユーザーによって編集可能かどうかを示します。 false
の値は、ユーザーがウィジェットの状態を変更できる ことを意味し、true
の値は、ユーザーがウィジェットの状態を変更できない ことを意味します。 デフォルト値は false
です。 (訳注: ARIA in HTML によると、この属性は、readonly 属性や contenteditable 属性が使用できる要素と組み合わせる場合は注意が必要だそうです。)
-
-
-必要な JavaScript 機能
-
-
- click
イベントのハンドラー
- ユーザーがスイッチウィジェットをクリックすると、click
イベント が発生します。 これは、ウィジェットの状態を変更するために処理する必要があります。
- aria-checked
属性の変更
- スイッチウィジェットで click
イベントが発生した場合、ハンドラーは aria-checked
属性の値を true
から false
やその逆に変更する必要があります。
-
-
-ユーザーエージェントと支援技術への影響
-
-スイッチ (switch
) ロールが要素に追加されると、{{Glossary("user agent","ユーザーエージェント")}}は次のようにそれを処理します。
-
-
- その要素は、スイッチ (switch
) ロールを持つものとして、システムのアクセシビリティインフラストラクチャに公開されます。
- aria-checked
属性の値が変更されると、システムのアクセシビリティ API が使用可能で、それがスイッチ (switch
) ロールをサポートしている場合、それを使用してアクセス可能なイベントが発生します。
- スイッチ (switch
) ロールが適用された要素の子孫である全ての要素には、プレゼンテーション (presentation
) ロールが自動的に割り当てられます。 これにより、スイッチを構築するために使用された要素が、支援技術によって個別にインタラクションされることを防ぎます。 これらの要素内のテキストは、{{cssxref("display", "display: none")}} または aria-hidden="true"
を使用して明示的に隠されていない限り、ユーザーエージェントに可視のままであり、読み上げやその他の方法でユーザーに届けられる可能性があります。
-
-
-支援技術では、スイッチ (switch
) ロールをサポートしている場合、次のように対応します。
-
-
- スクリーンリーダーは、要素をスイッチとしてアナウンスし、任意でスイッチをアクティブ化する方法についての指示を提供するべきです。
-
-
-
-
支援技術がこのロールをどのように扱うべきかについては、さまざまな意見があります。 上記は推奨される実践方法の1つであり、他の情報源とは異なる場合があります。
-
-
-例
-
-次の例は、スイッチ (switch
) ロールを適用して使用する方法を理解するのに役立ちます。
-
-ARIA でのスイッチロールの追加
-
-この単純な例では、ウィジェットを作成して、ARIA のスイッチ (switch
) ロールを割り当てています。 このボタンは、電源スイッチのオン/オフを連想させるような外観でスタイリングされています。
-
-HTML
-
-ここでの HTML はかなり単純です。 スイッチは {{HTMLElement("button")}} 要素として実装され、aria-checked
属性が "true"
に設定されているため、最初はチェックされています。 スイッチには、「off」と「on」のラベルを含む2つの子要素があり、その後にスイッチを識別する {{HTMLElement("label")}} が続きます。
-
-<button role="switch" aria-checked="true"
- id="speakerPower" class="switch">
- <span>off</span>
- <span>on</span>
-</button>
-<label for="speakerPower" class="switch">Speaker power</label>
-
-
-JavaScript
-
-この JavaScript コードは、スイッチウィジェットの click
イベントを処理する関数を定義して適用します。 この関数は、aria-checked
属性を true
から false
やその逆に変更します。
-
-document.querySelectorAll(".switch").forEach(function(theSwitch) {
- theSwitch.addEventListener("click", handleClickEvent, false);
-});
-
-function handleClickEvent(evt) {
- let el = evt.target;
-
- if (el.getAttribute("aria-checked") == "true") {
- el.setAttribute("aria-checked", "false");
- } else {
- el.setAttribute("aria-checked", "true");
- }
-}
-
-CSS
-
-CSS の目的は、電源スイッチのパラダイムを連想させるスイッチのルックアンドフィールを確立することです。
-
-button.switch {
- margin: 0;
- padding: 0;
- width: 70px;
- height: 26px;
- border: 2px solid black;
- display: inline-block;
- margin-right: 0.25em;
- line-height: 20px;
- vertical-align: middle;
- text-align: center;
- font: 12px "Open Sans", "Arial", serif;
-}
-
-button.switch span {
- padding: 0 4px;
- pointer-events: none;
-}
-
-[role="switch"][aria-checked="false"] :first-child,
-[role="switch"][aria-checked="true"] :last-child {
- background: #262;
- color: #eef;
-}
-
-[role="switch"][aria-checked="false"] :last-child,
-[role="switch"][aria-checked="true"] :first-child {
- color: #bbd;
-}
-
-label.switch {
- font: 16px "Open Sans", "Arial", sans-serif;
- line-height: 20px;
- user-select: none;
- vertical-align: middle;
- -moz-user-select: none;
- -ms-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
-}
-
-最も興味深いのは、おそらく属性セレクターと {{cssxref(":first-child")}} と {{cssxref(":last-child")}} の擬似クラスを使用して、スイッチのオン/オフに応じてスイッチの外観を変えるという面倒な作業を全て行うことです。
-
-結果
-
-結果は次のようになります。
-
-{{EmbedLiveSample("Adding_the_switch_role_in_ARIA", 600, 40)}}
-
-仕様
-
-
-
-
- 仕様
- 状態
- コメント
-
-
-
-
- {{SpecName('ARIA', '#switch')}}
- {{Spec2('ARIA')}}
- ARIA 全般を全てのロール、プロパティなどとともに定義します。
-
-
- {{SpecName('ARIA in HTML', '#index-aria-switch')}}
- {{Spec2('ARIA in HTML')}}
- ARIA の機能がどのように HTML に統合されているかを説明します。
-
-
-
-
-関連情報
-
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
diff --git a/files/ja/web/accessibility/aria/roles/switch_role/index.md b/files/ja/web/accessibility/aria/roles/switch_role/index.md
new file mode 100644
index 00000000000000..138431676fb6ce
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/switch_role/index.md
@@ -0,0 +1,167 @@
+---
+title: 'ARIA: switch ロール'
+slug: Web/Accessibility/ARIA/Roles/Switch_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Switch_role
+---
+ARIA のスイッチ (**`switch`**) ロールは、チェックボックス ([`checkbox`](/ja/docs/Web/Accessibility/ARIA/Roles/checkbox_role)) ロールと機能的に同じですが、かなり一般的な意味を持つ「チェックされた」状態と「チェックされていない」状態を表す代わりに、スイッチ (`switch`) ロールは「オン」と「オフ」の状態を表す点が異なります。
+
+この例では、ウィジェットを作成し、それに ARIA のスイッチ (`switch`) ロールを割り当てています。
+
+```html
+
+ オフ
+ オン
+
+スピーカー出力
+```
+
+## 説明
+
+ARIA のスイッチ (**`switch`**) ロールは、チェックボックス ([`checkbox`](/ja/docs/Web/Accessibility/ARIA/Roles/checkbox_role)) ロールと同じですが、「チェックされた」や「チェックされていない」ではなく、「オン」と「オフ」のどちらかになります。 チェックボックス ([`checkbox`](/ja/docs/Web/Accessibility/ARIA/Roles/checkbox_role)) ロールと同様に、`aria-checked` 属性が必須です。 可能な値は `true` と `false` の 2 つです。 `` やチェックボックスロール (`role="checkbox"`) とは異なり、不確定な状態 (`indeterminate`) や混在した状態 (`mixed`) はありません。 スイッチ (`switch`) ロールは、`aria-checked` 属性に `mixed` という値をサポートしていません。 スイッチ (`switch`) に `mixed` という値を割り当てると、代わりに値が `false` に設定されます。
+
+支援技術では、スイッチのオン/オフの概念を反映するために、スイッチ (`switch`) ウィジェットを特別な表現で表すことを選択できます。
+
+スイッチはインタラクティブなコントロールなので、フォーカス可能でキーボードによりアクセス可能でなければなりません。 このロールがフォーカス可能でない要素に適用されている場合は、`tabindex` 属性を使用してこれを変更してください。 スイッチの値を切り替えるために期待されるキーボードショートカットはスペース キーです。 開発者は、スイッチがトグルされたときに、`aria-checked` 属性の値を動的に変更する必要があります。
+
+### 関連する ARIA のロール、ステート、プロパティ
+
+- `aria-checked` 属性
+ - : `aria-checked` 属性は、スイッチ (`switch`) ロールを使用する場合に**必須**です。 これは、スイッチ (`switch`) ロールが適用されているウィジェットの現在の状態を表すためです。 `true` の値は「オン」状態を表し、`false` の値は「オフ」状態を表します。 `mixed` の値はスイッチロールでサポートされておらず、`false` として扱われます。 デフォルト値は `false` です。 (訳注: ARIA in HTML によると、input type=checkbox 要素では、この属性を使用するべきではなく、checked 属性が使用できるそうです。)
+- `aria-readonly` 属性
+ - : `aria-readonly` 属性は、スイッチ (`switch`) ロールでサポートされています。 これは、ウィジェットの状態がユーザーによって編集可能かどうかを示します。 `false` の値は、ユーザーがウィジェットの状態を変更*できる*ことを意味し、`true` の値は、ユーザーがウィジェットの状態を変更*できない*ことを意味します。 デフォルト値は `false` です。 (訳注: ARIA in HTML によると、この属性は、readonly 属性や contenteditable 属性が使用できる要素と組み合わせる場合は注意が必要だそうです。)
+
+### 必要な JavaScript 機能
+
+- `click` イベントのハンドラー
+ - : ユーザーがスイッチウィジェットをクリックすると、[`click` イベント](/ja/docs/Web/API/Element/click_event)が発生します。 これは、ウィジェットの状態を変更するために処理する必要があります。
+- `aria-checked` 属性の変更
+ - : スイッチウィジェットで `click` イベントが発生した場合、ハンドラーは `aria-checked` 属性の値を `true` から `false` やその逆に変更する必要があります。
+
+## ユーザーエージェントと支援技術への影響
+
+スイッチ (`switch`) ロールが要素に追加されると、{{Glossary("user agent","ユーザーエージェント")}}は次のようにそれを処理します。
+
+- その要素は、スイッチ (`switch`) ロールを持つものとして、システムのアクセシビリティインフラストラクチャに公開されます。
+- `aria-checked` 属性の値が変更されると、システムのアクセシビリティ API が使用可能で、それがスイッチ (`switch`) ロールをサポートしている場合、それを使用してアクセス可能なイベントが発生します。
+- スイッチ (`switch`) ロールが適用された要素の子孫である全ての要素には、プレゼンテーション (`presentation`) ロールが自動的に割り当てられます。 これにより、スイッチを構築するために使用された要素が、支援技術によって個別にインタラクションされることを防ぎます。 これらの要素内のテキストは、{{cssxref("display", "display: none")}} または `aria-hidden="true"` を使用して明示的に隠されていない限り、ユーザーエージェントに可視のままであり、読み上げやその他の方法でユーザーに届けられる可能性があります。
+
+支援技術では、スイッチ (`switch`) ロールをサポートしている場合、次のように対応します。
+
+- スクリーンリーダーは、要素をスイッチとしてアナウンスし、任意でスイッチをアクティブ化する方法についての指示を提供するべきです。
+
+> **Note:** 支援技術がこのロールをどのように扱うべきかについては、さまざまな意見があります。 上記は推奨される実践方法の 1 つであり、他の情報源とは異なる場合があります。
+
+## 例
+
+次の例は、スイッチ (`switch`) ロールを適用して使用する方法を理解するのに役立ちます。
+
+### ARIA でのスイッチロールの追加
+
+この単純な例では、ウィジェットを作成して、ARIA のスイッチ (`switch`) ロールを割り当てています。 このボタンは、電源スイッチのオン/オフを連想させるような外観でスタイリングされています。
+
+#### HTML
+
+ここでの HTML はかなり単純です。 スイッチは {{HTMLElement("button")}} 要素として実装され、`aria-checked` 属性が `"true"` に設定されているため、最初はチェックされています。 スイッチには、「off」と「on」のラベルを含む 2 つの子要素があり、その後にスイッチを識別する {{HTMLElement("label")}} が続きます。
+
+```html
+
+ off
+ on
+
+Speaker power
+```
+
+#### JavaScript
+
+この JavaScript コードは、スイッチウィジェットの `click` イベントを処理する関数を定義して適用します。 この関数は、`aria-checked` 属性を `true` から `false` やその逆に変更します。
+
+```js
+document.querySelectorAll(".switch").forEach(function(theSwitch) {
+ theSwitch.addEventListener("click", handleClickEvent, false);
+});
+
+function handleClickEvent(evt) {
+ let el = evt.target;
+
+ if (el.getAttribute("aria-checked") == "true") {
+ el.setAttribute("aria-checked", "false");
+ } else {
+ el.setAttribute("aria-checked", "true");
+ }
+}
+```
+
+#### CSS
+
+CSS の目的は、電源スイッチのパラダイムを連想させるスイッチのルックアンドフィールを確立することです。
+
+```css
+button.switch {
+ margin: 0;
+ padding: 0;
+ width: 70px;
+ height: 26px;
+ border: 2px solid black;
+ display: inline-block;
+ margin-right: 0.25em;
+ line-height: 20px;
+ vertical-align: middle;
+ text-align: center;
+ font: 12px "Open Sans", "Arial", serif;
+}
+
+button.switch span {
+ padding: 0 4px;
+ pointer-events: none;
+}
+
+[role="switch"][aria-checked="false"] :first-child,
+[role="switch"][aria-checked="true"] :last-child {
+ background: #262;
+ color: #eef;
+}
+
+[role="switch"][aria-checked="false"] :last-child,
+[role="switch"][aria-checked="true"] :first-child {
+ color: #bbd;
+}
+
+label.switch {
+ font: 16px "Open Sans", "Arial", sans-serif;
+ line-height: 20px;
+ user-select: none;
+ vertical-align: middle;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -webkit-user-select: none;
+ -o-user-select: none;
+}
+```
+
+最も興味深いのは、おそらく属性セレクターと {{cssxref(":first-child")}} と {{cssxref(":last-child")}} の擬似クラスを使用して、スイッチのオン/オフに応じてスイッチの外観を変えるという面倒な作業を全て行うことです。
+
+#### 結果
+
+結果は次のようになります。
+
+{{EmbedLiveSample("Adding_the_switch_role_in_ARIA", 600, 40)}}
+
+## 仕様
+
+| 仕様 | 状態 | コメント |
+| -------------------------------------------------------------------- | -------------------------------- | ------------------------------------------------------------- |
+| {{SpecName('ARIA', '#switch')}} | {{Spec2('ARIA')}} | ARIA 全般を全てのロール、プロパティなどとともに定義します。 |
+| {{SpecName('ARIA in HTML', '#index-aria-switch')}} | {{Spec2('ARIA in HTML')}} | ARIA の機能がどのように HTML に統合されているかを説明します。 |
+
+## 関連情報
+
+- [ARIA: checkbox ロール](/ja/docs/Web/Accessibility/ARIA/Roles/checkbox_role)
+- [` `](/ja/docs/Web/HTML/Element/input/checkbox)
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/tab_role/index.html b/files/ja/web/accessibility/aria/roles/tab_role/index.html
deleted file mode 100644
index 80a091e717e6c9..00000000000000
--- a/files/ja/web/accessibility/aria/roles/tab_role/index.html
+++ /dev/null
@@ -1,243 +0,0 @@
----
-title: 'ARIA: tab ロール'
-slug: Web/Accessibility/ARIA/Roles/Tab_Role
-tags:
- - ARIA
- - ARIA Role
- - ARIA Tab
- - ARIA widget
- - Reference
-translation_of: Web/Accessibility/ARIA/Roles/Tab_Role
----
-ARIA のタブ (tab
) ロールは、タブリスト (tablist
) 内のインタラクティブな要素を示し、アクティブ化されると、関連するタブパネル (tabpanel
) を表示します。
-
-<button role="tab" aria-selected="true" aria-controls="tabpanel-id" id="tab-id">Tab label</button>
-
-説明
-
-タブ (tab
) ロールを持つ要素は、タブパネル (tabpanel
) ロールに関連付けられた要素の可視性を制御します。 一般的なユーザーエクスペリエンスのパターンは、コンテンツ領域の上または横にある視覚的なタブのグループであり、別のタブを選択すると、コンテンツが変更され、選択したタブが他のタブよりも目立つようになります。
-
-タブ (tab
) ロールを持つ要素は、タブリスト (tablist
) ロールを持つ要素の子であるか、タブリスト (tablist
) の aria-owns
プロパティの id
部分を持っている必要があります 。 この組み合わせは、要素が関連要素のグループの一部であることを支援技術に識別させます。 一部の支援技術は、タブリスト (tablist
) 内のタブ (tab
) ロール要素の数を数えて、現在ターゲットにしているタブ (tab
) をユーザーに通知します。 これらには、タブパネル (tabpanel
) ロールを持つ要素を識別する aria-controls
プロパティが含まれているべきです 。 タブパネル (tabpanel
) ロールを持つ要素にフォーカスがある場合、またはその子にフォーカスがある場合、タブ (tab
) ロールを持つ接続された要素がタブリスト (tablist
) 内のアクティブなタブであることを示します。
-
-タブ (tab
) ロールを持つ要素を操作する場合、要素が選択されているかアクティブになっているときは、aria-selected
属性を true
に設定するべきです。 それ以外の場合は、false
に設定するべきです。 タブ (tab
) が選択されているかアクティブになっている場合、その制御されたタブパネル (tabpanel
) では、aria-expanded
属性を true
に設定し、hidden
属性 を false
に設定するべきです。 それ以外の場合は、その逆になります。
-
-関連するロールと属性
-
-
- aria-selected
- ブール値
- aria-controls
- タブパネル (tabpanel
) ロールを持つ要素の id
- id
- コンテンツ
-
-
-キーボードインタラクション
-
-
-
-
- キー
- アクション
-
-
-
-
- Tab
- フォーカスがタブリスト (tablist
) の外にある場合、フォーカスをアクティブなタブに移動します。 フォーカスがアクティブなタブにある場合、フォーカスをキーボードフォーカスの順序の次の要素、理想的にはアクティブなタブに関連付けられたタブパネル (tabpanel
) に移動します。
-
-
- →
- タブリストの次のタブにフォーカスし、任意でアクティブ化します。 現在のタブがタブリストの最後のタブである場合、最初のタブをアクティブ化します。
-
-
- ←
- タブリストの前のタブにフォーカスし、任意でアクティブ化します。 現在のタブがタブリストの最初のタブである場合、最後のタブをアクティブ化します。
-
-
- Delete
- 許可されている場合、現在選択されているタブをタブリストから削除します。
-
-
-
-
-必要な JavaScript 機能
-
-
-
JavaScript を使用せずにタブのような機能を構築する方法はありますが、コンテンツを含むアクセス可能なタブに上記で必要とされるのと同じ機能のセットを提供する HTML と CSS のみの代替の組み合わせはありません。
-
-
-例
-
-この例では、タブ (tab
) ロールとタブリスト (tablist
) 、そして要素とタブパネル (tabpanel
) を組み合わせて、タブ付きコンテンツのインタラクティブなグループを作成します。 ここでは、コンテンツのグループを div
で囲んでいます。 タブリスト (tablist
) には、支援技術用にラベルを付けるための aria-label
があります。 各タブ (tab
) は、前述の属性を持つボタン (button
) です。 最初のタブ (tab
) には tabindex=0
があり、後で aria-selected=true
のタブに変更します。 すべてのタブパネル (tabpanel
) 要素には Tab 可能にするために tabindex=0
があり、現在アクティブな要素を除くすべてに hidden
属性があって、これは JavaScript で変更されます。 ボタンのスタイルを変更し、タブ (tab
) 要素の z-index
を変更して、アクティブな要素のタブパネル (tabpanel
) に接続しているように見せたり、非アクティブな要素がアクティブなタブパネル (tabpanel
) の後ろにあるように見せたりする基本的なスタイルが適用されます。
-
-<div class="tabs">
- <div role="tablist" aria-label="Sample Tabs">
- <button role="tab" aria-selected="true" aria-controls="panel-1" id="tab-1" tabindex="0">
- First Tab
- </button>
- <button role="tab" aria-selected="false" aria-controls="panel-2" id="tab-2" tabindex="-1">
- Second Tab
- </button>
- <button role="tab" aria-selected="false" aria-controls="panel-3" id="tab-3" tabindex="-1">
- Third Tab
- </button>
- </div>
- <div id="panel-1" role="tabpanel" tabindex="0" aria-labelledby="tab-1">
- <p>Content for the first panel</p>
- </div>
- <div id="panel-2" role="tabpanel" tabindex="0" aria-labelledby="tab-2" hidden>
- <p>Content for the second panel</p>
- </div>
- <div id="panel-3" role="tabpanel" tabindex="0" aria-labelledby="tab-3" hidden>
- <p>Content for the third panel</p>
- </div>
-</div>
-
-
-
.tabs {
- padding: 1em;
-}
-
-[role="tablist"] {
- margin-bottom: -1px;
-}
-
-[role="tab"] {
- position: relative;
- z-index: 1;
- background: white;
- border-radius: 5px 5px 0 0;
- border: 1px solid grey;
- border-bottom: 0;
- padding: 0.2em;
-}
-
-[role="tab"][aria-selected="true"] {
- z-index: 3;
-}
-
-[role="tabpanel"] {
- position: relative;
- padding: 0 0.5em 0.5em 0.7em;
- border: 1px solid grey;
- border-radius: 0 0 5px 5px;
- background: white;
- z-index: 2;
-}
-
-[role="tabpanel"]:focus {
- border-color: orange;
- outline: 1px solid orange;
-}
-
-
-JavaScript でやるべきことは2つあります。 右矢印と左矢印を使用してタブ (tab
) 要素のフォーカスとタブインデックスを変更する必要があります。 また、タブ (tab
) をクリックしたときにアクティブなタブ (tab
) とタブパネル (tabpanel
) を変更する必要があります。
-
-最初のことを達成するために、タブリスト (tablist
) でキーダウン (keydown
) イベントをリッスンします。 イベントの keyCode
が右矢印の 39 や左矢印の 37 の場合、イベントに反応します。 まず、現在のタブ (tab
) 要素の tabindex
を -1 に設定して、Tab 不可能にします。 次に、右矢印が押されている場合は、タブフォーカスカウンターを 1 つ増やします。 カウンターがタブ (tab
) 要素の数よりも大きい場合は、そのカウンターを 0 に設定して、最初のタブに戻ります。 左矢印が押されている場合は、タブフォーカスカウンターを 1 つ減らし、0 未満の場合、タブ (tab
) 要素の数から 1 を引いた数に設定します(最後の要素に到達するため)。 最後に、タブフォーカスカウンターと等しいインデックスのタブ (tab
) 要素にフォーカスを設定し、 tabindex
を 0 に設定して Tab 可能にします。
-
-
-アクティブなタブ (tab
) とタブパネル (tabpanel
) の変更を処理するために、イベントを受け取り、イベントをトリガーした要素、トリガーした要素の親要素、およびその祖父母要素を取得する関数があります。 次に、親要素内で aria-selected=true
を持つすべてのタブを検索し、それを false
に設定してから、トリガーした要素の aria-selected
を true
に設定します。 その後、祖父母要素内のすべてのタブパネル (tabpanel
) 要素を見つけてすべて hidden
にし、最後に、トリガーしたタブ (tab
) の aria-controls
と等しい id
の要素を選択して、hidden
属性を削除して表示します。
-
-window.addEventListener("DOMContentLoaded", () => {
- const tabs = document.querySelectorAll('[role="tab"]');
- const tabList = document.querySelector('[role="tablist"]');
-
- // 各タブに click イベントハンドラーを追加します
- tabs.forEach(tab => {
- tab.addEventListener("click", changeTabs);
- });
-
- // タブリストのタブ間の矢印ナビゲーションを有効にします
- let tabFocus = 0;
-
- tabList.addEventListener("keydown", e => {
- // 右に移動
- if (e.keyCode === 39 || e.keyCode === 37) {
- tabs[tabFocus].setAttribute("tabindex", -1);
- if (e.keyCode === 39) {
- tabFocus++;
- // 最後にいる場合は、最初に移動します
- if (tabFocus >= tabs.length) {
- tabFocus = 0;
- }
- // 左に移動
- } else if (e.keyCode === 37) {
- tabFocus--;
- // 最初にいる場合は、最後に移動します
- if (tabFocus < 0) {
- tabFocus = tabs.length - 1;
- }
- }
-
- tabs[tabFocus].setAttribute("tabindex", 0);
- tabs[tabFocus].focus();
- }
- });
-});
-
-function changeTabs(e) {
- const target = e.target;
- const parent = target.parentNode;
- const grandparent = parent.parentNode;
-
- // タブから現在すべての選択状態を取り除きます
- parent
- .querySelectorAll('[aria-selected="true"]')
- .forEach(t => t.setAttribute("aria-selected", false));
-
- // このタブを選択されたタブとして設定します
- target.setAttribute("aria-selected", true);
-
- // すべてのタブパネルを非表示にします
- grandparent
- .querySelectorAll('[role="tabpanel"]')
- .forEach(p => p.setAttribute("hidden", true));
-
- // 選択されたパネルを表示します
- grandparent.parentNode
- .querySelector(`#${target.getAttribute("aria-controls")}`)
- .removeAttribute("hidden");
-}
-
-{{EmbedLiveSample("Example", 600, 130)}}
-
-ベストプラクティス
-
-自分で追加する必要はなく、代わりに、組み込みの機能的でアクセス可能な機能のために、ボタン (button
) 要素をタブ (tab
) ロールと一緒に使用することをお勧めします。 タブ (tab
) ロールを持つ要素の Tab キー機能を制御するには、すべての非アクティブ要素を tabindex=-1
に設定し、アクティブ要素を tabindex=0
に設定することをお勧めします。
-
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#tab","tab")}}
- {{Spec2('ARIA')}}
-
-
- {{SpecName("ARIA Authoring Practices","#tabpanel","tabs")}}
- {{Spec2('ARIA Authoring Practices')}}
-
-
-
-
-優先順位
-
-関連するプロパティは何ですか。 また、この属性やプロパティはどのような順序で読み取られますか(どのプロパティがこのプロパティよりも優先され、どのプロパティが上書きされますか)。
-
-スクリーンリーダーのサポート
-
-TBD
-
-
-
-
- WAI-ARIA ロール {{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
-
-
-
diff --git a/files/ja/web/accessibility/aria/roles/tab_role/index.md b/files/ja/web/accessibility/aria/roles/tab_role/index.md
new file mode 100644
index 00000000000000..0f84dd9123bef4
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/tab_role/index.md
@@ -0,0 +1,205 @@
+---
+title: 'ARIA: tab ロール'
+slug: Web/Accessibility/ARIA/Roles/Tab_Role
+tags:
+ - ARIA
+ - ARIA Role
+ - ARIA Tab
+ - ARIA widget
+ - Reference
+translation_of: Web/Accessibility/ARIA/Roles/Tab_Role
+---
+ARIA のタブ (`tab`) ロールは、タブリスト (`tablist`) 内のインタラクティブな要素を示し、アクティブ化されると、関連するタブパネル ([`tabpanel`](/ja/docs/Web/Accessibility/ARIA/Roles/Tabpanel_Role)) を表示します。
+
+```html
+Tab label
+```
+
+## 説明
+
+タブ (`tab`) ロールを持つ要素は、タブパネル (`tabpanel`) ロールに関連付けられた要素の可視性を制御します。 一般的なユーザーエクスペリエンスのパターンは、コンテンツ領域の上または横にある視覚的なタブのグループであり、別のタブを選択すると、コンテンツが変更され、選択したタブが他のタブよりも目立つようになります。
+
+タブ (`tab`) ロールを持つ要素は、タブリスト (`tablist`) ロールを持つ要素の子であるか、タブリスト (`tablist`) の `aria-owns` プロパティの `id` 部分を持っている*必要があります*。 この組み合わせは、要素が関連要素のグループの一部であることを支援技術に識別させます。 一部の支援技術は、タブリスト (`tablist`) 内のタブ (`tab`) ロール要素の数を数えて、現在ターゲットにしているタブ (`tab`) をユーザーに通知します。 これらには、タブパネル (`tabpanel`) ロールを持つ要素を識別する `aria-controls` プロパティが含まれている*べきです*。 タブパネル (`tabpanel`) ロールを持つ要素にフォーカスがある場合、またはその子にフォーカスがある場合、タブ (`tab`) ロールを持つ接続された要素がタブリスト (`tablist`) 内のアクティブなタブであることを示します。
+
+タブ (`tab`) ロールを持つ要素を操作する場合、要素が選択されているかアクティブになっているときは、`aria-selected` 属性を `true` に設定するべきです。 それ以外の場合は、`false` に設定するべきです。 タブ (`tab`) が選択されているかアクティブになっている場合、その制御されたタブパネル (`tabpanel`) では、`aria-expanded` 属性を `true` に設定し、`hidden` 属性 を `false` に設定するべきです。 それ以外の場合は、その逆になります。
+
+### 関連するロールと属性
+
+- aria-selected
+ - : ブール値
+- aria-controls
+ - : タブパネル (`tabpanel`) ロールを持つ要素の `id`
+- id
+ - : コンテンツ
+
+### キーボードインタラクション
+
+| キー | アクション |
+| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| Tab | フォーカスがタブリスト (`tablist`) の外にある場合、フォーカスをアクティブなタブに移動します。 フォーカスがアクティブなタブにある場合、フォーカスをキーボードフォーカスの順序の次の要素、理想的にはアクティブなタブに関連付けられたタブパネル (`tabpanel`) に移動します。 |
+| → | タブリストの次のタブにフォーカスし、任意でアクティブ化します。 現在のタブがタブリストの最後のタブである場合、最初のタブをアクティブ化します。 |
+| ← | タブリストの前のタブにフォーカスし、任意でアクティブ化します。 現在のタブがタブリストの最初のタブである場合、最後のタブをアクティブ化します。 |
+| Delete | 許可されている場合、現在選択されているタブをタブリストから削除します。 |
+
+### 必要な JavaScript 機能
+
+> **Note:** JavaScript を使用せずにタブのような機能を構築する方法はありますが、コンテンツを含むアクセス可能なタブに上記で必要とされるのと同じ機能のセットを提供する HTML と CSS のみの代替の組み合わせはありません。
+
+## 例
+
+この例では、タブ (`tab`) ロールとタブリスト (`tablist`) 、そして要素とタブパネル (`tabpanel`) を組み合わせて、タブ付きコンテンツのインタラクティブなグループを作成します。 ここでは、コンテンツのグループを `div` で囲んでいます。 タブリスト (`tablist`) には、支援技術用にラベルを付けるための `aria-label` があります。 各タブ (`tab`) は、前述の属性を持つボタン (`button`) です。 最初のタブ (`tab`) には `tabindex=0` があり、後で `aria-selected=true` のタブに変更します。 すべてのタブパネル (`tabpanel`) 要素には Tab 可能にするために `tabindex=0` があり、現在アクティブな要素を除くすべてに `hidden` 属性があって、これは JavaScript で変更されます。 ボタンのスタイルを変更し、タブ (`tab`) 要素の [`z-index`](/ja/docs/Web/CSS/z-index) を変更して、アクティブな要素のタブパネル (`tabpanel`) に接続しているように見せたり、非アクティブな要素がアクティブなタブパネル (`tabpanel`) の後ろにあるように見せたりする基本的なスタイルが適用されます。
+
+```html
+
+
+
+ First Tab
+
+
+ Second Tab
+
+
+ Third Tab
+
+
+
+
Content for the first panel
+
+
+
Content for the second panel
+
+
+
Content for the third panel
+
+
+```
+
+```css hidden
+.tabs {
+ padding: 1em;
+}
+
+[role="tablist"] {
+ margin-bottom: -1px;
+}
+
+[role="tab"] {
+ position: relative;
+ z-index: 1;
+ background: white;
+ border-radius: 5px 5px 0 0;
+ border: 1px solid grey;
+ border-bottom: 0;
+ padding: 0.2em;
+}
+
+[role="tab"][aria-selected="true"] {
+ z-index: 3;
+}
+
+[role="tabpanel"] {
+ position: relative;
+ padding: 0 0.5em 0.5em 0.7em;
+ border: 1px solid grey;
+ border-radius: 0 0 5px 5px;
+ background: white;
+ z-index: 2;
+}
+
+[role="tabpanel"]:focus {
+ border-color: orange;
+ outline: 1px solid orange;
+}
+```
+
+JavaScript でやるべきことは 2 つあります。 右矢印と左矢印を使用してタブ (`tab`) 要素のフォーカスとタブインデックスを変更する必要があります。 また、タブ (`tab`) をクリックしたときにアクティブなタブ (`tab`) とタブパネル (`tabpanel`) を変更する必要があります。
+
+最初のことを達成するために、タブリスト (`tablist`) でキーダウン ([`keydown`](/ja/docs/Web/API/Element/keydown_event)) イベントをリッスンします。 イベントの [`keyCode`](/ja/docs/Web/API/KeyboardEvent/keyCode) が右矢印の 39 や左矢印の 37 の場合、イベントに反応します。 まず、現在のタブ (`tab`) 要素の `tabindex` を -1 に設定して、Tab 不可能にします。 次に、右矢印が押されている場合は、タブフォーカスカウンターを 1 つ増やします。 カウンターがタブ (`tab`) 要素の数よりも大きい場合は、そのカウンターを 0 に設定して、最初のタブに戻ります。 左矢印が押されている場合は、タブフォーカスカウンターを 1 つ減らし、0 未満の場合、タブ (`tab`) 要素の数から 1 を引いた数に設定します(最後の要素に到達するため)。 最後に、タブフォーカスカウンターと等しいインデックスのタブ (`tab`) 要素にフォーカスを設定し、 `tabindex` を 0 に設定して Tab 可能にします。
+
+アクティブなタブ (`tab`) とタブパネル (`tabpanel`) の変更を処理するために、イベントを受け取り、イベントをトリガーした要素、トリガーした要素の親要素、およびその祖父母要素を取得する関数があります。 次に、親要素内で `aria-selected=true` を持つすべてのタブを検索し、それを `false` に設定してから、トリガーした要素の `aria-selected` を `true` に設定します。 その後、祖父母要素内のすべてのタブパネル (`tabpanel`) 要素を見つけてすべて `hidden` にし、最後に、トリガーしたタブ (`tab`) の `aria-controls` と等しい `id` の要素を選択して、`hidden` 属性を削除して表示します。
+
+```js
+window.addEventListener("DOMContentLoaded", () => {
+ const tabs = document.querySelectorAll('[role="tab"]');
+ const tabList = document.querySelector('[role="tablist"]');
+
+ // 各タブに click イベントハンドラーを追加します
+ tabs.forEach(tab => {
+ tab.addEventListener("click", changeTabs);
+ });
+
+ // タブリストのタブ間の矢印ナビゲーションを有効にします
+ let tabFocus = 0;
+
+ tabList.addEventListener("keydown", e => {
+ // 右に移動
+ if (e.keyCode === 39 || e.keyCode === 37) {
+ tabs[tabFocus].setAttribute("tabindex", -1);
+ if (e.keyCode === 39) {
+ tabFocus++;
+ // 最後にいる場合は、最初に移動します
+ if (tabFocus >= tabs.length) {
+ tabFocus = 0;
+ }
+ // 左に移動
+ } else if (e.keyCode === 37) {
+ tabFocus--;
+ // 最初にいる場合は、最後に移動します
+ if (tabFocus < 0) {
+ tabFocus = tabs.length - 1;
+ }
+ }
+
+ tabs[tabFocus].setAttribute("tabindex", 0);
+ tabs[tabFocus].focus();
+ }
+ });
+});
+
+function changeTabs(e) {
+ const target = e.target;
+ const parent = target.parentNode;
+ const grandparent = parent.parentNode;
+
+ // タブから現在すべての選択状態を取り除きます
+ parent
+ .querySelectorAll('[aria-selected="true"]')
+ .forEach(t => t.setAttribute("aria-selected", false));
+
+ // このタブを選択されたタブとして設定します
+ target.setAttribute("aria-selected", true);
+
+ // すべてのタブパネルを非表示にします
+ grandparent
+ .querySelectorAll('[role="tabpanel"]')
+ .forEach(p => p.setAttribute("hidden", true));
+
+ // 選択されたパネルを表示します
+ grandparent.parentNode
+ .querySelector(`#${target.getAttribute("aria-controls")}`)
+ .removeAttribute("hidden");
+}
+```
+
+{{EmbedLiveSample("Example", 600, 130)}}
+
+## ベストプラクティス
+
+自分で追加する必要はなく、代わりに、組み込みの機能的でアクセス可能な機能のために、ボタン (`button`) 要素をタブ (`tab`) ロールと一緒に使用することをお勧めします。 タブ (`tab`) ロールを持つ要素の Tab キー機能を制御するには、すべての非アクティブ要素を `tabindex=-1` に設定し、アクティブ要素を `tabindex=0` に設定することをお勧めします。
+
+## 仕様
+
+| 仕様 | 状態 |
+| -------------------------------------------------------------------------------- | ------------------------------------------------ |
+| {{SpecName("ARIA","#tab","tab")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#tabpanel","tabs")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## 優先順位
+
+関連するプロパティは何ですか。 また、この属性やプロパティはどのような順序で読み取られますか(どのプロパティがこのプロパティよりも優先され、どのプロパティが上書きされますか)。
+
+## スクリーンリーダーのサポート
+
+TBD
+
+1. [**WAI-ARIA ロール**](/ja/docs/Web/Accessibility/ARIA/Roles){{ListSubpagesForSidebar("/ja/docs/Web/Accessibility/ARIA/Roles")}}
diff --git a/files/ja/web/accessibility/aria/roles/table_role/index.html b/files/ja/web/accessibility/aria/roles/table_role/index.html
deleted file mode 100644
index 77157c22448503..00000000000000
--- a/files/ja/web/accessibility/aria/roles/table_role/index.html
+++ /dev/null
@@ -1,154 +0,0 @@
----
-title: 'ARIA: table ロール'
-slug: Web/Accessibility/ARIA/Roles/Table_Role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/Table_Role
----
-\{{ariaref}}
-
-ARIA の role 属性の table 値は、このロールを含む要素を、ネイティブの {{htmlelement("table")}} HTML 要素と同様に、行と列に配置されたデータを含む非インタラクティブな表構造を持つものとして識別します。
-
-<div role="table" aria-label="意味論的な表の要素" aria-describedby="semantic_table_desc">
- <div id="semantic_table_desc">ARIA の table ロールの代わりに使用する意味論的な要素</div>
- <div role="rowgroup">
- <div role="row">
- <span role="columnheader">ARIA の table ロール</span>
- <span role="columnheader">意味論的な要素</span>
- </div>
- </div>
- <div role="rowgroup">
- <div role="row">
- <span role="cell">table</span>
- <span role="cell">table</span>
- </div>
- <div role="row">
- <span role="cell">rowgroup</span>
- <span role="cell">thead, tbody, or tfoot </span>
- </div>
- </div>
-</div>
-
-
-説明
-
-role="table"
を持つ要素はセルを含む行を持つ静的な表構造です。 表の個々のセル内のウィジェットはインタラクティブになることがありますが、セルはフォーカス可能または選択可能ではありません。 可能な限りネイティブの HTML {{htmlelement("table")}} 要素を使用することを強くお勧めします。
-
-
-
表が選択状態を維持している場合、2次元ナビゲーションを使用している場合、またはユーザーがセルの順序を並べ替えることができる場合は、代わりにグリッド(grid
)またはツリーグリッド(treegrid
)を使用します。
-
-
-ARIA の表を作成するには、role="table"
をコンテナ要素に追加します。 そのコンテナ内では、各行に role="row"
を設定し、子セルを含ませます。 各セルには、列ヘッダー(columnheader
)、行ヘッダー(rowheader
)、または単なるセル(cell
)のいずれかのロールがあります。 行は、表の子になることも、行グループ(rowgroup
)内になることもあります。
-
-表のキャプションは、aria-labelledby
、aria-label
、または aria-describeby
によって定義できます。 {{htmlelement("tbody")}}、{{htmlelement("thead")}}、{{htmlelement("tr")}}、{{htmlelement("th")}}、{{htmlelement("td")}} など、他のすべての意味論的な表の要素は、rowgroup
、row
、columnheader
、cell
などの関連するロールを介して追加する必要があります。
-
-表にソート可能な列または行が含まれる場合は、aria-sort
属性をヘッダーのセル要素に追加する必要があります(表自体ではありません)。 ある行または列が隠されている場合は、それぞれのセルの aria-colindex
または aria-rowindex
とともに、それぞれ列または行の総数を示す aria-colcount
または aria-rowcount
を含める必要があります。 aria-colindex
または aria-rowindex
は、それぞれ行または列内のセルの位置に設定します。 表に複数行または複数列にわたるセルが含まれる場合は、aria-rowspan
または aria-colspan
も含める必要があります。 すべての支援技術でサポートされているすべての関連する意味論的な要素および属性と共に、{{htmlelement("table")}} 要素を単純に使用する方がはるかに簡単です。
-
-表構造を持つインタラクティブなウィジェットを作成するには、代わりにグリッドパターンを使用してください。 インタラクションが個々のセルの選択状態を提供する場合、左から右へ、上から下へのナビゲーションを提供する場合、またはユーザーインターフェイスでセルの順序の並べ替えやドラッグアンドドロップなどの個々のセルの順序の変更を許可する場合、代わりに grid
または treegrid
を使用してください。
-
-
-
-関連する WAI-ARIA のロール、ステート、プロパティ
-
-
- role="rowgroup"
- 表のオプションの子である行グループは、{{htmlelement("thead")}}、{{htmlelement("tbody")}}、および {{htmlelement("tfoot")}} と同様に、行のグループをカプセル化します。
- role="row"
- 表内の行、およびオプションで行グループ(rowgroup
)内の行、つまり1つ以上のセル(cell
)、列ヘッダー(columnheader
)、または行ヘッダー(rowheader
)のコンテナです。
- aria-describedby 属性
- 値として、表のキャプションとして機能する要素の id
を取ります。
- aria-label 属性
- aria-label
は、表にアクセス可能な名前を提供します。
- aria-colcount 属性
-
- この属性は、ある列が常に DOM に存在しない場合にのみ必要です。 全表の列数を明示的に示します。 値を全表の列の総数に設定します。 不明な場合は、aria-colcount="-1"
を設定してください。
-
- aria-rowcount 属性
- この属性は、DOM ノードの数を最小限に抑えるために行を再利用するスクロール可能な表など、ある行が常に DOM に存在しない場合にのみ必要です。 全表の行数を明示的に示します。 値を全表の行の総数に設定します。 不明な場合は、aria-rowcount="-1"
を設定してください。
-
-
-キーボードインタラクション
-
-無し
-
-必要な JavaScript 機能
-
-
-
-
-無し。 ソート可能な列については、 columnheader
ロールを参照してください。
-
-
-
ARIA の最初のルールは、要素を再定義し、ARIA のロール、ステート、プロパティを追加して アクセス可能にするのではなく、すでに組み込まれている意味論と挙動を持つネイティブな機能を使用できることです。 可能な限り、ARIA の table
ロールの代わりに HTML の {{htmlelement("table")}} 要素を使用してください。
-
-
-例
-
-<div role="table" aria-label="意味論的な要素" aria-describedby="semantic_elements_table_desc" aria-rowcount="81">
- <div id="semantic_elements_table_desc">ARIA のロールの代わりに使用する意味論的な要素</div>
- <div role="rowgroup">
- <div role="row">
- <span role="columnheader" aria-sort="none">ARIA のロール</span>
- <span role="columnheader" aria-sort="none">意味論的な要素</span>
- </div>
- </div>
- <div role="rowgroup">
- <div role="row" aria-rowindex="11">
- <span role="cell">header</span>
- <span role="cell">h1</span>
- </div>
- <div role="row" aria-rowindex="16">
- <span role="cell">header</span>
- <span role="cell">h6</span>
- </div>
- <div role="row" aria-rowindex="18">
- <span role="cell">rowgroup</span>
- <span role="cell">thead</span>
- </div>
- <div role="row" aria-rowindex="24">
- <span role="cell">term</span>
- <span role="cell">dt</span>
- </div>
- </div>
-</div>
-
-
-上記は表の一部です。 aria-rowcount
プロパティで示されるように、全表には81のエントリがありますが、現在表示されているのは4つだけです。 列ヘッダーの aria-sort
プロパティで示されるように、列はソート可能ですが、現在はソートされていません。
-
-ベストプラクティス
-
-データ表構造には、{{htmlelement("table")}}、{{htmlelement("tbody")}}、{{htmlelement("thead")}}、{{htmlelement("tr")}}、{{htmlelement("th")}}、{{htmlelement("td")}} などのみを使用します。 アクセシビリティを確保するために ARIA のロールを追加し、例えば CSS で表のネイティブな意味論を削除するべきです。 ARIA の table
ロールの関連するユースケースは、display: grid
など、CSS の {{cssxref("display")}} プロパティによって表のネイティブな意味論がオーバーライドされる場合です。 この場合、ARIA の table
ロールを使用して意味論を戻すことができます。
-
-追加された利点
-
-無し
-
-仕様
-
-
-
-
- 仕様
- 状態
-
-
- {{SpecName("ARIA","#table","ARIA Table Role")}}
- {{Spec2('ARIA')}}
-
-
- {{SpecName("ARIA Authoring Practices","#table","ARIA Table Role")}}
- {{Spec2('ARIA Authoring Practices')}}
-
-
-
-
-関連情報
-
-
diff --git a/files/ja/web/accessibility/aria/roles/table_role/index.md b/files/ja/web/accessibility/aria/roles/table_role/index.md
new file mode 100644
index 00000000000000..e88aa15e159218
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/table_role/index.md
@@ -0,0 +1,129 @@
+---
+title: 'ARIA: table ロール'
+slug: Web/Accessibility/ARIA/Roles/Table_Role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/Table_Role
+---
+\\{{ariaref}}
+
+ARIA の role 属性の table 値は、このロールを含む要素を、ネイティブの {{htmlelement("table")}} HTML 要素と同様に、行と列に配置されたデータを含む非インタラクティブな表構造を持つものとして識別します。
+
+```html
+
+
ARIA の table ロールの代わりに使用する意味論的な要素
+
+
+ ARIA の table ロール
+ 意味論的な要素
+
+
+
+
+ table
+ table
+
+
+ rowgroup
+ thead, tbody, or tfoot
+
+
+
+```
+
+## 説明
+
+`role="table"` を持つ要素はセルを含む行を持つ静的な表構造です。 表の個々のセル内のウィジェットはインタラクティブになることがありますが、セルはフォーカス可能または選択可能ではありません。 可能な限りネイティブの HTML {{htmlelement("table")}} 要素を使用することを強くお勧めします。
+
+> **Warning:** 表が選択状態を維持している場合、2 次元ナビゲーションを使用している場合、またはユーザーがセルの順序を並べ替えることができる場合は、代わりにグリッド([`grid`](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role))またはツリーグリッド([`treegrid`](/ja/docs/))を使用します。
+
+ARIA の表を作成するには、`role="table"` をコンテナ要素に追加します。 そのコンテナ内では、各行に `role="row"` を設定し、子セルを含ませます。 各セルには、列ヘッダー(`columnheader`)、行ヘッダー(`rowheader`)、または単なるセル([`cell`](/ja/docs/Web/Accessibility/ARIA/Roles/Cell_Role))のいずれかのロールがあります。 行は、表の子になることも、行グループ([`rowgroup`](/ja/docs/Web/Accessibility/ARIA/Roles/Rowgroup_Role))内になることもあります。
+
+表のキャプションは、`aria-labelledby`、`aria-label`、または `aria-describeby` によって定義できます。 {{htmlelement("tbody")}}、{{htmlelement("thead")}}、{{htmlelement("tr")}}、{{htmlelement("th")}}、{{htmlelement("td")}} など、他のすべての意味論的な表の要素は、`rowgroup`、`row`、`columnheader`、`cell` などの関連するロールを介して追加する必要があります。
+
+表にソート可能な列または行が含まれる場合は、`aria-sort` 属性をヘッダーのセル要素に追加する必要があります(表自体ではありません)。 ある行または列が隠されている場合は、それぞれのセルの `aria-colindex` または `aria-rowindex` とともに、それぞれ列または行の総数を示す `aria-colcount` または `aria-rowcount` を含める必要があります。 `aria-colindex` または `aria-rowindex` は、それぞれ行または列内のセルの位置に設定します。 表に複数行または複数列にわたるセルが含まれる場合は、`aria-rowspan` または `aria-colspan` も含める必要があります。 すべての支援技術でサポートされているすべての関連する意味論的な要素および属性と共に、{{htmlelement("table")}} 要素を単純に使用する方がはるかに簡単です。
+
+表構造を持つインタラクティブなウィジェットを作成するには、代わりにグリッドパターンを使用してください。 インタラクションが個々のセルの選択状態を提供する場合、左から右へ、上から下へのナビゲーションを提供する場合、またはユーザーインターフェイスでセルの順序の並べ替えやドラッグアンドドロップなどの個々のセルの順序の変更を許可する場合、代わりに [`grid`](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role) または [`treegrid`](/ja/docs/) を使用してください。
+
+> **Note:** 可能な限りネイティブの [HTML の表要素](/ja/docs/Learn/HTML/Tables/Advanced)を使用することを強くお勧めします。
+
+### 関連する WAI-ARIA のロール、ステート、プロパティ
+
+- [role="rowgroup"](/ja/docs/Web/Accessibility/ARIA/Roles/Rowgroup_Role)
+ - : 表のオプションの子である行グループは、{{htmlelement("thead")}}、{{htmlelement("tbody")}}、および {{htmlelement("tfoot")}} と同様に、行のグループをカプセル化します。
+- [role="row"](/ja/docs/Web/Accessibility/ARIA/Roles/Row_Role)
+ - : 表内の行、およびオプションで行グループ(`rowgroup`)内の行、つまり 1 つ以上のセル(`cell`)、列ヘッダー(`columnheader`)、または行ヘッダー(`rowheader`)のコンテナです。
+- aria-describedby 属性
+ - : 値として、表のキャプションとして機能する要素の `id` を取ります。
+- aria-label 属性
+ - : `aria-label` は、表にアクセス可能な名前を提供します。
+- aria-colcount 属性
+ - : この属性は、ある列が常に DOM に存在しない場合にのみ必要です。 全表の列数を明示的に示します。 値を全表の列の総数に設定します。 不明な場合は、`aria-colcount="-1"` を設定してください。
+- aria-rowcount 属性
+ - : この属性は、DOM ノードの数を最小限に抑えるために行を再利用するスクロール可能な表など、ある行が常に DOM に存在しない場合にのみ必要です。 全表の行数を明示的に示します。 値を全表の行の総数に設定します。 不明な場合は、`aria-rowcount="-1"` を設定してください。
+
+### キーボードインタラクション
+
+無し
+
+### 必要な JavaScript 機能
+
+無し。 ソート可能な列については、 [`columnheader`](/ja/docs/Web/Accessibility/ARIA/Roles/Columnheader_Role) ロールを参照してください。
+
+> **Note:** ARIA の最初のルールは、要素を再定義し、ARIA のロール、ステート、プロパティを**追加して**アクセス可能にするのではなく、すでに組み込まれている意味論と挙動を持つネイティブな機能を使用できることです。 可能な限り、ARIA の `table` ロールの代わりに HTML の {{htmlelement("table")}} 要素を使用してください。
+
+## 例
+
+```html
+
+
ARIA のロールの代わりに使用する意味論的な要素
+
+
+ ARIA のロール
+ 意味論的な要素
+
+
+
+
+ header
+ h1
+
+
+ header
+ h6
+
+
+ rowgroup
+ thead
+
+
+ term
+ dt
+
+
+
+```
+
+上記は表の一部です。 `aria-rowcount` プロパティで示されるように、全表には 81 のエントリがありますが、現在表示されているのは 4 つだけです。 列ヘッダーの `aria-sort` プロパティで示されるように、列はソート可能ですが、現在はソートされていません。
+
+## ベストプラクティス
+
+データ表構造には、{{htmlelement("table")}}、{{htmlelement("tbody")}}、{{htmlelement("thead")}}、{{htmlelement("tr")}}、{{htmlelement("th")}}、{{htmlelement("td")}} などのみを使用します。 アクセシビリティを確保するために ARIA のロールを追加し、例えば CSS で表のネイティブな意味論を削除するべきです。 ARIA の `table` ロールの関連するユースケースは、`display: grid` など、CSS の {{cssxref("display")}} プロパティによって表のネイティブな意味論がオーバーライドされる場合です。 この場合、ARIA の `table` ロールを使用して意味論を戻すことができます。
+
+### 追加された利点
+
+無し
+
+## 仕様
+
+| 仕様 | 状態 |
+| ---------------------------------------------------------------------------------------- | ------------------------------------------------ |
+| {{SpecName("ARIA","#table","ARIA Table Role")}} | {{Spec2('ARIA')}} |
+| {{SpecName("ARIA Authoring Practices","#table","ARIA Table Role")}} | {{Spec2('ARIA Authoring Practices')}} |
+
+## 関連情報
+
+- [HTML の表要素](/ja/docs/Learn/HTML/Tables/Advanced)
+- [ARIA: grid ロール](/ja/docs/Web/Accessibility/ARIA/Roles/Grid_Role)
diff --git a/files/ja/web/accessibility/aria/roles/textbox_role/index.html b/files/ja/web/accessibility/aria/roles/textbox_role/index.html
deleted file mode 100644
index 4e03443997e329..00000000000000
--- a/files/ja/web/accessibility/aria/roles/textbox_role/index.html
+++ /dev/null
@@ -1,130 +0,0 @@
----
-title: 'ARIA: textbox ロール'
-slug: Web/Accessibility/ARIA/Roles/textbox_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/Roles/textbox_role
----
-\{{ariaref}}textbox
ロールは、自由形式テキストの入力を可能にする要素を識別するために使用されます。 可能であれば、このロールを使用するのではなく、単一行入力の場合は type="text"
の {{HTMLElement("input")}} 要素を使用し、複数行入力の場合は {{HTMLElement("textarea")}} 要素を使用してください。
-
-説明
-
-要素に textbox
ロールがある場合、ブラウザーはアクセス可能なテキストボックスイベントを支援技術に送信し、ユーザーにそのことを通知できます。
-
-デフォルトは単一行入力で、Return や Enter はフォームを送信します。 この場合、 type="text"
の HTML の {{HTMLElement("input")}} を使用することをお勧めします。 HTML の {{HTMLElement("textarea")}} のように改行をサポートする複数行のテキストボックスを作成するには、aria-multiline="true"
を設定します。 HTML の contenteditable
属性を含めると、テキストノードが確実に編集可能になります。
-
-<!-- 単純なテキスト入力フィールド -->
-<div id="txtboxLabel">5桁の郵便番号を入力してください</div>
-<div role="textbox" contenteditable="true" aria-placholder="5-digit zipcode" aria-labeledby="txtboxLabel"></div>
-
-<!-- 複数行のテキスト領域 -->
-<div id="txtboxMultilineLabel">記事のタグを入力してください</div>
-<div role="textbox" contenteditable="true" aria-multiline="true"
- aria-labeledby="txtboxMultilineLabel" aria-required="true"></div>
-
-意味論的な要素はより簡潔であり、テキストボックス機能をサポートするために JavaScript を必要としません。
-
-
-
-<label for="txtbox">5桁の郵便番号を入力してください</label>
-<input type="text" placholder="5-digit zipcode" id="txtbox"/>
-
-<!-- 複数行のテキスト領域 -->
-<label for="txtboxMultiline">記事のタグを入力してください</lable>
-<textarea id="txtboxMultiline" required></textarea>
-
-
-
-テキストフィールドが読み取り専用の場合、要素に対して aria-readonly="true"
と設定することでこれを示します。
-
-
-
-
-関連する ARIA のプロパティ
-
-
- aria-activedescendent
属性
- その値として、ID は DOM のフォーカスを持つ要素の子孫であるか、または aria-owns
属性で指定された論理的子孫であり、combobox
などの複合ウィジェットの一部であるときに、その要素にフォーカスがあるときを示します。 たとえば、コンボボックスでは、テキストボックスにフォーカスが残ることがありますが、textbox
要素の aria-activedescendant
の値は、テキストボックスによって制御されるポップアップリストボックスの子孫を参照します。 この属性は、フォーカスが変更されるとプログラムで更新する必要があります。
- aria-autocomplete
属性
- フィールドへのユーザーの入力が、意図した値の予測の表示をトリガーできるかどうか、およびその方法を示します。 これは以下の値をサポートしています。
-
- inline
: 予測されたテキストがキャレットの後に挿入されます。
- list
: 予測されたテキストは、値の集まりとして提示されます。
- both
: 予測されたテキストは、値の集まりとして提示され、補完に必要なテキストの1つの値がキャレットの後に挿入されます。
- none
(デフォルト): 予測されたテキストは提供されません。
-
-
- list
または both
が設定されている場合は、aria-controls
属性と aria-haspopup
属性も含める必要があります。 aria-controls
の値は、提案値のリストを含む要素の ID です。 さらに、テキストボックスまたは combobox
ロールを含む包含要素のいずれかに、提案値のリストを含む要素のロールに一致する aria-haspopup
の値を持ちます。
-
- aria-multiline
属性
- aria-multiline="true"
が設定されている場合、支援技術は、テキストボックスが複数行入力をサポートしていることをユーザーに知らせます。 Enter や Return はフォームを送信するのではなく改行を作成します。 ARIA は要素の動作を変更しません。 むしろ、この機能は開発者によって制御されなければなりません。 false
が設定されている場合、または属性が省略されていて false
がデフォルトの場合、ユーザーはコントロールが単一行のテキストボックスであり、Enter や Return がフォームを送信することを期待しています。
- aria-placeholder
属性
- テキストフィールドに何を入力するかについてのヒント(単語またはフレーズ)をユーザーに示します。 ヒントは、サンプル値または期待されるフォーマットの簡単な説明であるべきです。 この情報は、ラベルの代用として使用するべきではありません。 ラベルはフォーカス可能で永続的で、どのような情報が期待されているかを示し、プレースホルダーのテキストは期待値を一時的に示唆しているだけで、誤って実装するとアクセシビリティが低下する可能性があります。 プレースホルダーは、コントロールが最初にフォーカスを受け取ったときやユーザーが以前に入力した値を削除したときなど、コントロールの値が空の文字列のときに表示するべきです。 aria-placeholder
を使用する代わりに、意味論的な <input type="text">
や <textarea>
に placeholder
属性を使用します。
- aria-readonly
属性
- ユーザーがテキストフィールドの値を変更できないことを示します。 aria-readonly
を使用する代わりに、意味論的な <input type="text">
や <textarea>
に readonly
属性を使用します。
- aria-required
属性
- フィールドが送信される前にフィールドに値を指定する必要があることを示します。 aria-required
を使用する代わりに、意味論的な <input type="text">
や <textarea>
に required
属性を使用します。
-
-
-キーボードインタラクション
-
-単一行での使用(aria-multiline
が false
または使用されていない場合)では、Return キーや Enter キーがフォームを送信します。 複数行での使用(aria-multiline
が true
の場合)では、Return キーや Enter キーを押すと改行が挿入されます。
-
-必要な JavaScript 機能
-
-すべてのプロパティとステートに関連するすべての機能を維持する必要があります。 また、単一行のテキストボックスにおいて Enter や Return でフォームを送信する必要があります。
-
-
- フォーカスイベントハンドラと aria-activedescendent 属性
- テキストボックスとリストボックスで構成されるコンボボックスなどの複合ウィジェットを実装する場合は、ハンドラを使用して aria-activedescendent
属性を管理する必要があります。 この手法を使用する前に、ターゲットとするブラウザーが現在サポートしていることを確認してください。 詳細については、aria-descendent の仕様 (英語)を参照してください。
-
-
-
-
ARIA の textbox
ロールの代わりに type="text"
の {{HTMLElement("input")}} 要素、または {{HTMLElement("textarea")}} 要素を使用する方が良い方法です。 どちらの意味論的な要素を使用する場合でも、ARIA の textbox
ロールは必要ありません。 HTML で ARIA を使用する場合の注意 (英語)を参照してください。
-
-
-ユーザーエージェントと支援技術への影響
-
-textbox
ロールが要素に追加されるか、そのような要素が可視になると、ユーザーエージェントは以下を行うべきです。
-
-
- オペレーティングシステムのアクセシビリティ API で textbox
ロールを持つものとして要素を公開します。
- オペレーティングシステムのアクセシビリティ API をサポートしている場合は、アクセシビリティ API を使用してアクセス可能なテキストボックスイベントを発生させます。
-
-
-支援技術製品は、そのようなイベントをリスンし、それに応じてユーザーに以下を通知するするべきです。
-
-
- スクリーンリーダーは、フォーカスが最初にテキストボックスに着くと、そのラベルとロールをアナウンスするべきです。 コンテンツも含まれている場合は、これを通常のテキストボックスの場合と同様にアナウンスするべきです。
- スクリーン拡大鏡でテキストボックスが拡大されることがあります。
-
-
-注 : 支援技術がこの手法をどのように扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の1つで、したがって規範的ではありません。
-
-例
-
-
-
-以下のスニペットは、textbox
ロールが HTML ソースコードにどのように直接追加されるかを示しています。
-
-<div role="textbox" contenteditable="true"></div>
-
-
-
-以下のスニペットは、textbox
ロールが HTML ソースコードにどのように直接追加されるかを示しています。
-
-<div role="textbox" contenteditable="true" aria-multiline="true"></div>
-
-ベストプラクティス
-
-
- このロールが適用される HTML 要素に contenteditable="true"
属性を必ず追加してください。 aria-readonly
を true
に設定した場合でもそうします。 このようにして、読み取り専用でない場合は、コンテンツを編集可能にすることを通知します。
-
-
-関連情報
-
-
diff --git a/files/ja/web/accessibility/aria/roles/textbox_role/index.md b/files/ja/web/accessibility/aria/roles/textbox_role/index.md
new file mode 100644
index 00000000000000..f4f0bc128fc659
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/textbox_role/index.md
@@ -0,0 +1,135 @@
+---
+title: 'ARIA: textbox ロール'
+slug: Web/Accessibility/ARIA/Roles/textbox_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/Roles/textbox_role
+---
+\\{{ariaref}}`textbox` ロールは、自由形式テキストの入力を可能にする要素を識別するために使用されます。 可能であれば、このロールを使用するのではなく、単一行入力の場合は [`type="text"`](/ja/docs/Web/HTML/Element/input/text) の {{HTMLElement("input")}} 要素を使用し、複数行入力の場合は {{HTMLElement("textarea")}} 要素を使用してください。
+
+## 説明
+
+要素に `textbox` ロールがある場合、ブラウザーはアクセス可能なテキストボックスイベントを支援技術に送信し、ユーザーにそのことを通知できます。
+
+デフォルトは単一行入力で、Return や Enter はフォームを送信します。 この場合、 `type="text"` の HTML の {{HTMLElement("input")}} を使用することをお勧めします。 HTML の {{HTMLElement("textarea")}} のように改行をサポートする複数行のテキストボックスを作成するには、`aria-multiline="true"` を設定します。 HTML の `contenteditable` 属性を含めると、テキストノードが確実に編集可能になります。
+
+```html
+
+5桁の郵便番号を入力してください
+
+
+
+記事のタグを入力してください
+
+```
+
+意味論的な要素はより簡潔であり、テキストボックス機能をサポートするために JavaScript を必要としません。
+
+```html
+5桁の郵便番号を入力してください
+
+
+
+記事のタグを入力してください
+
+```
+
+テキストフィールドが読み取り専用の場合、要素に対して `aria-readonly="true"` と設定することでこれを示します。
+
+### 関連する ARIA のプロパティ
+
+- `aria-activedescendent` 属性
+ - : その値として、ID は DOM のフォーカスを持つ要素の子孫であるか、または `aria-owns` 属性で指定された論理的子孫であり、[`combobox`](/ja/docs/Web/Accessibility/ARIA/Roles/combobox) などの複合ウィジェットの一部であるときに、その要素にフォーカスがあるときを示します。 たとえば、コンボボックスでは、テキストボックスにフォーカスが残ることがありますが、`textbox` 要素の `aria-activedescendant` の値は、テキストボックスによって制御されるポップアップリストボックスの子孫を参照します。 この属性は、フォーカスが変更されるとプログラムで更新する必要があります。
+- `aria-autocomplete` 属性
+
+ - : フィールドへのユーザーの入力が、意図した値の予測の表示をトリガーできるかどうか、およびその方法を示します。 これは以下の値をサポートしています。
+
+ - `inline`: 予測されたテキストがキャレットの後に挿入されます。
+ - `list`: 予測されたテキストは、値の集まりとして提示されます。
+ - `both`: 予測されたテキストは、値の集まりとして提示され、補完に必要なテキストの 1 つの値がキャレットの後に挿入されます。
+ - `none`(デフォルト): 予測されたテキストは提供されません。
+
+ `list` または `both` が設定されている場合は、`aria-controls` 属性と` aria-haspopup` 属性も含める必要があります。 `aria-controls` の値は、提案値のリストを含む要素の ID です。 さらに、テキストボックスまたは `combobox` ロールを含む包含要素のいずれかに、提案値のリストを含む要素のロールに一致する `aria-haspopup` の値を持ちます。
+
+- `aria-multiline` 属性
+
+ - : `aria-multiline="true"` が設定されている場合、支援技術は、テキストボックスが複数行入力をサポートしていることをユーザーに知らせます。
+
+ Enter
+
+ や
+
+ Return
+
+ はフォームを送信するのではなく改行を作成します。 ARIA は要素の動作を変更しません。 むしろ、この機能は開発者によって制御されなければなりません。 `false` が設定されている場合、または属性が省略されていて `false` がデフォルトの場合、ユーザーはコントロールが単一行のテキストボックスであり、
+
+ Enter
+
+ や
+
+ Return
+
+ がフォームを送信することを期待しています。
+
+- `aria-placeholder` 属性
+ - : テキストフィールドに何を入力するかについてのヒント(単語またはフレーズ)をユーザーに示します。 ヒントは、サンプル値または期待されるフォーマットの簡単な説明であるべきです。 この情報は、ラベルの代用として使用するべきではありません。 ラベルはフォーカス可能で永続的で、どのような情報が期待されているかを示し、プレースホルダーのテキストは期待値を一時的に示唆しているだけで、誤って実装するとアクセシビリティが低下する可能性があります。 プレースホルダーは、コントロールが最初にフォーカスを受け取ったときやユーザーが以前に入力した値を削除したときなど、コントロールの値が空の文字列のときに表示するべきです。 `aria-placeholder` を使用する代わりに、意味論的な ` ` や `` に `placeholder` 属性を使用します。
+- `aria-readonly` 属性
+ - : ユーザーがテキストフィールドの値を変更できないことを示します。 `aria-readonly` を使用する代わりに、意味論的な ` ` や `` に `readonly` 属性を使用します。
+- `aria-required` 属性
+ - : フィールドが送信される前にフィールドに値を指定する必要があることを示します。 `aria-required` を使用する代わりに、意味論的な ` ` や `` に `required` 属性を使用します。
+
+### キーボードインタラクション
+
+単一行での使用(`aria-multiline` が `false` または使用されていない場合)では、Return キーや Enter キーがフォームを送信します。 複数行での使用(`aria-multiline` が `true` の場合)では、Return キーや Enter キーを押すと改行が挿入されます。
+
+### 必要な JavaScript 機能
+
+すべてのプロパティとステートに関連するすべての機能を維持する必要があります。 また、単一行のテキストボックスにおいて Enter や Return でフォームを送信する必要があります。
+
+- フォーカスイベントハンドラと aria-activedescendent 属性
+ - : テキストボックスとリストボックスで構成されるコンボボックスなどの複合ウィジェットを実装する場合は、ハンドラを使用して `aria-activedescendent` 属性を管理する必要があります。 この手法を使用する前に、ターゲットとするブラウザーが現在サポートしていることを確認してください。 詳細については、[aria-descendent の仕様](https://www.w3.org/TR/wai-aria/#aria-activedescendant)(英語)を参照してください。
+
+> **Note:** ARIA の `textbox` ロールの代わりに `type="text"` の {{HTMLElement("input")}} 要素、または {{HTMLElement("textarea")}} 要素を使用する方が良い方法です。 どちらの意味論的な要素を使用する場合でも、ARIA の `textbox` ロールは必要ありません。 [HTML で ARIA を使用する場合の注意](https://www.w3.org/TR/aria-in-html/)(英語)を参照してください。
+
+## ユーザーエージェントと支援技術への影響
+
+`textbox` ロールが要素に追加されるか、そのような要素が可視になると、ユーザーエージェントは以下を行うべきです。
+
+- オペレーティングシステムのアクセシビリティ API で `textbox` ロールを持つものとして要素を公開します。
+- オペレーティングシステムのアクセシビリティ API をサポートしている場合は、アクセシビリティ API を使用してアクセス可能なテキストボックスイベントを発生させます。
+
+支援技術製品は、そのようなイベントをリスンし、それに応じてユーザーに以下を通知するするべきです。
+
+- スクリーンリーダーは、フォーカスが最初にテキストボックスに着くと、そのラベルとロールをアナウンスするべきです。 コンテンツも含まれている場合は、これを通常のテキストボックスの場合と同様にアナウンスするべきです。
+- スクリーン拡大鏡でテキストボックスが拡大されることがあります。
+
+> **Note:** 支援技術がこの手法をどのように扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の 1 つで、したがって規範的ではありません。
+
+## 例
+
+### 例 1: 単一行入力の HTML コードにロールを追加する
+
+以下のスニペットは、`textbox` ロールが HTML ソースコードにどのように直接追加されるかを示しています。
+
+```html
+
+```
+
+### 例 2: 複数行入力の HTML コードにロールを追加する
+
+以下のスニペットは、`textbox` ロールが HTML ソースコードにどのように直接追加されるかを示しています。
+
+```html
+
+```
+
+## ベストプラクティス
+
+- このロールが適用される HTML 要素に `contenteditable="true"` 属性を必ず追加してください。 `aria-readonly` を `true` に設定した場合でもそうします。 このようにして、読み取り専用でない場合は、コンテンツを編集可能にすることを通知します。
+
+## 関連情報
+
+- [ARIA: search ロール](/ja/docs/Web/Accessibility/ARIA/Roles/searchbox)
diff --git a/files/ja/web/accessibility/aria/roles/toolbar_role/index.html b/files/ja/web/accessibility/aria/roles/toolbar_role/index.html
deleted file mode 100644
index b5a46da0ea1cf4..00000000000000
--- a/files/ja/web/accessibility/aria/roles/toolbar_role/index.html
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: toolbar ロールの使用
-slug: Web/Accessibility/ARIA/Roles/toolbar_role
-tags:
- - ARIA
- - ARIA Role
- - Accessibility
-translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_toolbar_role
-original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_toolbar_role
----
-説明
-
-このテクニックは、toolbar
ロールを使用する方法を示し、ブラウザーと支援技術に与える影響について説明します。
-
-ユーザーエージェントと支援技術への影響
-
-
-
-注 : 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の1つで、したがって規範的ではありません。
-
-例
-
-Example 1:
-
-
-
-Code
-
-動作する例
-
-W3C toolbar example
-
-
-
-注
-
-使用された ARIA 属性
-
-
-
-互換性
-
-
-
-その他のリソース
diff --git a/files/ja/web/accessibility/aria/roles/toolbar_role/index.md b/files/ja/web/accessibility/aria/roles/toolbar_role/index.md
new file mode 100644
index 00000000000000..2b93a0da2f362e
--- /dev/null
+++ b/files/ja/web/accessibility/aria/roles/toolbar_role/index.md
@@ -0,0 +1,41 @@
+---
+title: toolbar ロールの使用
+slug: Web/Accessibility/ARIA/Roles/toolbar_role
+tags:
+ - ARIA
+ - ARIA Role
+ - Accessibility
+translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_toolbar_role
+original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_toolbar_role
+---
+### 説明
+
+このテクニックは、[`toolbar`](https://www.w3.org/TR/wai-aria-1.1/#toolbar) ロールを使用する方法を示し、ブラウザーと支援技術に与える影響について説明します。
+
+### ユーザーエージェントと支援技術への影響
+
+> **Note:** 支援技術がどのようにこの技術を扱うべきかについての意見は異なる場合があります。 上記の情報は、これらの意見の 1 つで、したがって規範的ではありません。
+
+### 例
+
+#### Example 1:
+
+```html
+Code
+```
+
+#### 動作する例
+
+[W3C toolbar example](https://www.w3.org/TR/wai-aria-practices/examples/toolbar/toolbar.html)
+
+### 注
+
+### 使用された ARIA 属性
+
+### 関連する ARIA 技術
+
+### 互換性
+
+TBD: 一般的な UA と AT 製品の組み合わせに関するサポート情報を追加する
+
+### その他のリソース
diff --git a/files/ja/web/accessibility/community/index.html b/files/ja/web/accessibility/community/index.html
deleted file mode 100644
index ee8bc00fb7a44f..00000000000000
--- a/files/ja/web/accessibility/community/index.html
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: Community
-slug: Web/Accessibility/Community
-tags:
- - Accessibility
----
-
-
アクセシビリティに関する、役立つメーリングリストやニュースグループ、フォーラム、その他のコミュニティをご存知の方は、ここにリンクを追加してください。
-
-
-以下、日本語の情報:
-
-
diff --git a/files/ja/web/accessibility/community/index.md b/files/ja/web/accessibility/community/index.md
new file mode 100644
index 00000000000000..4e9545580e73a5
--- /dev/null
+++ b/files/ja/web/accessibility/community/index.md
@@ -0,0 +1,17 @@
+---
+title: Community
+slug: Web/Accessibility/Community
+tags:
+ - Accessibility
+---
+アクセシビリティに関する、役立つメーリングリストやニュースグループ、フォーラム、その他のコミュニティをご存知の方は、ここにリンクを追加してください。
+
+- [Mozilla Accessibility Newsgroup](news://news.mozilla.org/netscape.public.mozilla.accessibility)
+- [WAI interest group discussion list](http://www.w3.org/WAI/IG/)
+- [Unix Accessibility Project](http://www.mozilla.org/projects/ui/accessibility/unix) (reference)
+- [SUN Mozilla Accessibility Task Force](http://www.mozilla.org/access/resources)
+
+以下、日本語の情報:
+
+- [アックゼロヨン](http://www.acc04.jp/)
+- [UAI 研究会](http://www.comm.twcu.ac.jp/~nabe/UAI/)
diff --git a/files/ja/web/accessibility/index.html b/files/ja/web/accessibility/index.html
deleted file mode 100644
index ff49ca05ad7a75..00000000000000
--- a/files/ja/web/accessibility/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: アクセシビリティ
-slug: Web/Accessibility
-tags:
- - Accessibility
- - Landing
-translation_of: Web/Accessibility
----
-ウェブ開発におけるアクセシビリティとは、何らかの理由により能力に制約がある場合でも、可能な限り多くの人々がウェブサイトを使用できるようにすることを意味します。この記事では、アクセシビリティを考慮したコンテンツを開発するための情報を提供します。
-
-多くの人にとって、技術は物事を容易にします。障碍のある人にとっては、テクノロジーは物事を可能にしてくれます。アクセシビリティとは、個人の身体的・認知的能力やウェブへのアクセス方法に関わらず、可能な限りアクセス可能なコンテンツを開発することです。
-
-「ハードウェア、ソフトウェア、言語、文化、所在地、物理的/精神的能力にかかわらず、ウェブは基本的にすべての人に向けて設計されています 。ウェブがこの目的を達成できると、さまざまな聴力、視力、認知能力をもつ人々がウェブにアクセスできるようになります。」 (W3C - Accessibility )
-
-主なチュートリアル
-
-MDN のアクセシビリティ学習エリア には、アクセシビリティの基本事項を含むモダンな最新のチュートリアルが含まれています:
-
-
- アクセシビリティとは何か?
- この記事では、アクセシビリティが実際にどのようなものであるかをよく見てモジュールを開始します。これには、どのグループを考慮する必要があるのかとそのグループの理由、さまざまな人々がウェブとやりとりするために使用するツール、アクセシビリティをウェブ開発ワークフローの一部にする方法を含みます。
- HTML: アクセシビリティのための良い基礎
- 適切な HTML 要素が常に正しい目的で使用されていることを確認するだけで、大量のウェブコンテンツをアクセシブルにすることができます。この記事では、最大限のアクセシビリティを確保するために HTML をどのように使用できるかについて詳しく説明します。
- CSS と JavaScript のアクセシビリティベストプラクティス
- CSS と JavaScript を適切に使用すると、アクセシブルなウェブ体験を可能にするポテンシャルがあります。また、悪用されるとアクセシビリティに大きな悪影響を与える可能性があります。この記事では、複雑なコンテンツでさえも可能な限りアクセシブルであることを保証するために考慮する必要がある CSS と JavaScript のベストプラクティスの概要を説明します。
- WAI-ARIA の基礎
- 前の記事に従って、セマンティックでない HTML や動的に JavaScript で更新されたコンテンツを含む複雑なUIコントロールを作成することは理解しづらい場合があります。WAI-ARIA は、ブラウザーや支援技術が認識して使用できるセマンティクスを追加することで、このような問題の解決に役立つ技術です。ここでは、アクセシビリティを向上させるために基本レベルで使用する方法を示します。
- アクセシブルなマルチメディア
- アクセシビリティの問題を引き起こす可能性のある別のカテゴリーのコンテンツは、マルチメディアです。映像、音声、および画像のコンテンツには、補助的なテクノロジーとそのユーザーが理解できるように適切なテキストの代替が必要です。この記事では、その方法を示します。
- モバイルアクセシビリティ
- モバイル端末でのウェブアクセスが普及しており、iOS や Android などの普及しているプラットフォームではアクセシビリティツールが完全に提供されているため、これらのプラットフォームでのウェブコンテンツのアクセシビリティを考慮する必要があります。この記事では、モバイル固有のアクセシビリティの考慮事項について説明します。
-
-
-その他の文書
-
-
- ウェブコンテンツ・アクセシビリティガイドラインを理解する
- この一連の記事では、W3C ウェブコンテンツ・アクセシビリティガイドライン 2.0 (WCAG、Web Content Accessibility Guidelines) で概説されている推奨事項に準拠するために必要な手順を理解するのに役立つ簡単な説明を提供します。
- キーボードでナビゲート可能な JavaScript ウィジェット
- 今まで、スタイル付きの <div>
や <span>
ベースのウィジェットを作りたいというウェブ開発者は、適切な技術を欠いていました。 キーボード・アクセシビリティ は、開発者が知っておくべき最低限のアクセシビリティ要件の一部です。
- ARIA
- ARIAを使用してHTML文書をより使いやすくする方法を学ぶための記事のコレクション。
- 支援技術 (AT) 開発
- 支援技術の開発者向け記事のコレクション
- モバイルアクセシビリティのチェックリスト
- このドキュメントは、モバイルアプリ開発者向けのアクセシビリティ要求事項の簡潔なチェックリストを提供します。
- Cognitive accessibility
- ウェブコンテンツを作成する際には、認知機能障碍者がアクセスできるようにすることを意識してください。
- 痙攣性疾患に対するアクセシビリティ
- ウェブ上のビジュアルコンテンツの中には、特定の脳疾患を持つ人に発作を引き起こす可能性があるものがあります。問題となりうるコンテンツの種類を理解し、それらを回避するためのツールや戦略を見つけましょう。
-
-
-関連情報
-
-
diff --git a/files/ja/web/accessibility/index.md b/files/ja/web/accessibility/index.md
new file mode 100644
index 00000000000000..cd2ae3d4de80ae
--- /dev/null
+++ b/files/ja/web/accessibility/index.md
@@ -0,0 +1,55 @@
+---
+title: アクセシビリティ
+slug: Web/Accessibility
+tags:
+ - Accessibility
+ - Landing
+translation_of: Web/Accessibility
+---
+ウェブ開発におけるアクセシビリティとは、何らかの理由により能力に制約がある場合でも、可能な限り多くの人々がウェブサイトを使用できるようにすることを意味します。この記事では、アクセシビリティを考慮したコンテンツを開発するための情報を提供します。
+
+多くの人にとって、技術は物事を容易にします。障碍のある人にとっては、テクノロジーは物事を可能にしてくれます。アクセシビリティとは、個人の身体的・認知的能力やウェブへのアクセス方法に関わらず、可能な限りアクセス可能なコンテンツを開発することです。
+
+「ハードウェア、ソフトウェア、言語、文化、所在地、物理的/精神的能力にかかわらず、**ウェブは基本的にすべての人に向けて設計されています**。ウェブがこの目的を達成できると、さまざまな聴力、視力、認知能力をもつ人々がウェブにアクセスできるようになります。」 ([W3C - Accessibility](https://www.w3.org/standards/webdesign/accessibility))
+
+## 主なチュートリアル
+
+MDN の[アクセシビリティ学習エリア](/ja/docs/Learn/Accessibility)には、アクセシビリティの基本事項を含むモダンな最新のチュートリアルが含まれています:
+
+- [アクセシビリティとは何か?](/ja/docs/Learn/Accessibility/What_is_accessibility)
+ - : この記事では、アクセシビリティが実際にどのようなものであるかをよく見てモジュールを開始します。これには、どのグループを考慮する必要があるのかとそのグループの理由、さまざまな人々がウェブとやりとりするために使用するツール、アクセシビリティをウェブ開発ワークフローの一部にする方法を含みます。
+- [HTML: アクセシビリティのための良い基礎](/ja/docs/Learn/Accessibility/HTML)
+ - : 適切な HTML 要素が常に正しい目的で使用されていることを確認するだけで、大量のウェブコンテンツをアクセシブルにすることができます。この記事では、最大限のアクセシビリティを確保するために HTML をどのように使用できるかについて詳しく説明します。
+- [CSS と JavaScript のアクセシビリティベストプラクティス](/ja/docs/Learn/Accessibility/CSS_and_JavaScript)
+ - : CSS と JavaScript を適切に使用すると、アクセシブルなウェブ体験を可能にするポテンシャルがあります。また、悪用されるとアクセシビリティに大きな悪影響を与える可能性があります。この記事では、複雑なコンテンツでさえも可能な限りアクセシブルであることを保証するために考慮する必要がある CSS と JavaScript のベストプラクティスの概要を説明します。
+- [WAI-ARIA の基礎](/ja/docs/Learn/Accessibility/WAI-ARIA_basics)
+ - : 前の記事に従って、セマンティックでない HTML や動的に JavaScript で更新されたコンテンツを含む複雑な UI コントロールを作成することは理解しづらい場合があります。WAI-ARIA は、ブラウザーや支援技術が認識して使用できるセマンティクスを追加することで、このような問題の解決に役立つ技術です。ここでは、アクセシビリティを向上させるために基本レベルで使用する方法を示します。
+- [アクセシブルなマルチメディア](/ja/docs/Learn/Accessibility/Multimedia)
+ - : アクセシビリティの問題を引き起こす可能性のある別のカテゴリーのコンテンツは、マルチメディアです。映像、音声、および画像のコンテンツには、補助的なテクノロジーとそのユーザーが理解できるように適切なテキストの代替が必要です。この記事では、その方法を示します。
+- [モバイルアクセシビリティ](/ja/docs/Learn/Accessibility/Mobile)
+ - : モバイル端末でのウェブアクセスが普及しており、iOS や Android などの普及しているプラットフォームではアクセシビリティツールが完全に提供されているため、これらのプラットフォームでのウェブコンテンツのアクセシビリティを考慮する必要があります。この記事では、モバイル固有のアクセシビリティの考慮事項について説明します。
+
+## その他の文書
+
+- [ウェブコンテンツ・アクセシビリティガイドラインを理解する](/ja/docs/Web/Accessibility/Understanding_WCAG)
+ - : この一連の記事では、W3C ウェブコンテンツ・アクセシビリティガイドライン 2.0 (WCAG、Web Content Accessibility Guidelines) で概説されている推奨事項に準拠するために必要な手順を理解するのに役立つ簡単な説明を提供します。
+- [キーボードでナビゲート可能な JavaScript ウィジェット](/ja/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets)
+ - : 今まで、スタイル付きの `` や `
` ベースのウィジェットを作りたいというウェブ開発者は、適切な技術を欠いていました。 **キーボード・アクセシビリティ**は、開発者が知っておくべき最低限のアクセシビリティ要件の一部です。
+- [ARIA](/ja/docs/Accessibility/ARIA)
+ - : ARIA を使用して HTML 文書をより使いやすくする方法を学ぶための記事のコレクション。
+- [支援技術 (AT) 開発](/ja/docs/Web/Accessibility/AT_Development)
+ - : 支援技術の開発者向け記事のコレクション
+- [モバイルアクセシビリティのチェックリスト](/ja/docs/Web/Accessibility/Mobile_accessibility_checklist)
+ - : このドキュメントは、モバイルアプリ開発者向けのアクセシビリティ要求事項の簡潔なチェックリストを提供します。
+- [Cognitive accessibility](/ja/docs/Web/Accessibility/Cognitive_accessibility)
+ - : ウェブコンテンツを作成する際には、認知機能障碍者がアクセスできるようにすることを意識してください。
+- [痙攣性疾患に対するアクセシビリティ](/ja/docs/Web/Accessibility/Seizure_disorders)
+ - : ウェブ上のビジュアルコンテンツの中には、特定の脳疾患を持つ人に発作を引き起こす可能性があるものがあります。問題となりうるコンテンツの種類を理解し、それらを回避するためのツールや戦略を見つけましょう。
+
+## 関連情報
+
+- [アクセシビリティに関する Mozilla メーリングリスト](https://lists.mozilla.org/listinfo/accessibility)
+- [WAI Interest Group](https://www.w3.org/WAI/IG/)
+- [Mozillians group about accessibility](https://mozillians.org/en-US/group/1-accessibility)
+- [開発者ガイド](/ja/docs/Web/Guide)
+- [アクセシビリティと Mozilla](/ja/docs/Mozilla/Accessibility)
diff --git a/files/ja/web/accessibility/keyboard-navigable_javascript_widgets/index.html b/files/ja/web/accessibility/keyboard-navigable_javascript_widgets/index.html
deleted file mode 100644
index d6c35566430839..00000000000000
--- a/files/ja/web/accessibility/keyboard-navigable_javascript_widgets/index.html
+++ /dev/null
@@ -1,171 +0,0 @@
----
-title: キーボードでナビゲート可能な JavaScript ウィジェット
-slug: Web/Accessibility/Keyboard-navigable_JavaScript_widgets
-tags:
- - Accessibility
- - DOM
- - JavaScript
-translation_of: Web/Accessibility/Keyboard-navigable_JavaScript_widgets
----
-概要
-
-ウェブアプリケーションは、メニュー、ツリービュー、リッチテキストフィールド、タブパネルなどのデスクトップウィジェットを模倣するために JavaScript を使用することがよくあります。 これらのウィジェットは通常、{{htmlelement("div")}} 要素と {{htmlelement("span")}} 要素で構成されています。これらの要素は本来、デスクトップのものと同じキーボード機能を提供しません。 このドキュメントは JavaScript ウィジェットをキーボードでアクセス可能にするためのテクニックを説明します。
-
-tabindex を使う
-
-デフォルトでは、人々がウェブページを閲覧するために Tab キーを使うとき、(リンクやフォームコントロールのような)インタラクティブ要素だけがフォーカスされます。 {{htmlattrxref("tabindex")}} グローバル属性 を使うと、作成者は他の要素もフォーカス可能にできます。 0
に設定すると、要素はキーボードとスクリプトによってフォーカス可能になります。 -1
に設定すると、要素はスクリプトによってフォーカス可能になりますが、キーボードによるフォーカスの順序の一部にはなりません。
-
-キーボードを使用したときに要素がフォーカスを得る順序は、デフォルトではソースの順序です。 例外的な状況では、作成者は順序を再定義したいと思うかもしれません。 これを行うために、作成者は tabindex
を任意の正数に設定することができます。
-
-
-
警告 : tabindex
に正の値を使わないでください。 tabindex
に正の値を持つ要素は、ページ上のデフォルトのインタラクティブ要素の前に配置されます。 つまり、ページ作成者は、tabindex
に 1 以上の正の値を使用する時は必ず、ページ上の全てのフォーカス可能要素に対して tabindex
の値を設定(および維持)する必要があります。
-
-
-次の表は、最新のブラウザーにおける tabindex
の動作を説明しています。
-
-
-
-
- tabindex
属性
- element.focus()
を介してマウスや JavaScript でフォーカス可能
- タブでナビゲート可能
-
-
- 存在しない
- 要素のプラットフォーム規約に従います(フォームコントロール、リンクなどでは、可)。
- 要素のプラットフォーム規約に従います。
-
-
- 負(つまり、tabindex="-1"
)
- 可
- 不可。 作成者は、矢印キーなどの押下に応答して、focus()
で要素をフォーカスしなければなりません。
-
-
- ゼロ(つまり、tabindex="0"
)
- 可
- ドキュメント内の要素の位置を基準としたタブ順序({{htmlelement("a")}} のようなインタラクティブ要素は、デフォルトでこの振る舞いをすることに注意してください。 それらにこの属性は不要です)。
-
-
- 正(例えば、tabindex="33"
)
- 可
- tabindex
の値は、この要素がタブ順序のどこに配置されるかを決定します。 小さい値は、大きい値よりもタブ順序の早い位置に要素を配置します(例えば、tabindex="7"
は tabindex="11"
の前に配置されます)。
-
-
-
-
-ネイティブでないコントロール
-
-{{htmlelement("a")}}、{{htmlelement("input")}}、{{htmlelement("select")}} のようなインタラクティブなネイティブ HTML 要素はすでにキーボードによりアクセス可能であるため、これらのいずれかを使用することが、コンポーネントをキーボードで使えるようにするための最速の方法です。
-
-作成者は、0
の tabindex
を追加することによって、{{htmlelement("div")}} や {{htmlelement("span")}} をキーボードでアクセス可能にすることもできます。 これは、HTML には存在しないインタラクティブ要素を使用するコンポーネントに特に役立ちます。
-
-コントロールのグループ化
-
-メニュー、タブリスト、グリッド、ツリービューなどのウィジェットをグループ化するには、親要素をタブ順序に入れて(tabindex="0"
)、各子孫の選択項目/タブ/セル/行をタブ順序から除く(tabindex="-1"
)必要があります。 ユーザーは矢印キーを使って子孫要素をナビゲートできるべきです。 (典型的なウィジェットに通常期待されるキーボードサポートの詳細な説明については、WAI-ARIA のオーサリングプラクティス (英語)を参照してください。)
-
-以下の例は、入れ子になったメニューコントロールで使用されるこのテクニックを示しています。 キーボードフォーカスが含まれている {{htmlelement("ul")}} 要素に到達したら、JavaScript 開発者はプログラム的にフォーカスを管理し、矢印キーに応答する必要があります。 ウィジェット内でフォーカスを管理するためのテクニックについては、以下の「グループ内のフォーカス管理」を参照してください。
-
-例 2: tabindex を使用してキーボードアクセスを制御するメニューコントロール
-
-<ul id="mb1" tabindex="0">
- <li id="mb1_menu1" tabindex="-1"> フォント
- <ul id="fontMenu" title="フォント" tabindex="-1">
- <li id="sans-serif" tabindex="-1">サンセリフ</li>
- <li id="serif" tabindex="-1">セリフ</li>
- <li id="monospace" tabindex="-1">モノスペース</li>
- <li id="fantasy" tabindex="-1">ファンタジー</li>
- </ul>
- </li>
- <li id="mb1_menu2" tabindex="-1"> スタイル
- <ul id="styleMenu" title="スタイル" tabindex="-1">
- <li id="italic" tabindex="-1">斜体</li>
- <li id="bold" tabindex="-1">太字</li>
- <li id="underline" tabindex="-1">下線</li>
- </ul>
- </li>
- <li id="mb1_menu3" tabindex="-1"> 位置揃え
- <ul id="justificationMenu" title="位置揃え" tabindex="-1">
- <li id="left" tabindex="-1">左</li>
- <li id="center" tabindex="-1">中央</li>
- <li id="right" tabindex="-1">右</li>
- <li id="justify" tabindex="-1">両端</li>
- </ul>
- </li>
-</ul>
-
-無効なコントロール
-
-カスタムコントロールが無効になったら、tabindex="-1"
を設定して、タブ順序から除きます。 グループ化されたウィジェット内の無効な項目(メニュー内のメニュー項目など)は、矢印キーを使用してナビゲート可能なままにするべきであることに注意してください。
-
-グループ内のフォーカス管理
-
-ユーザーがウィジェットからタブで離れてから戻ると、フォーカスはフォーカスを持っていた特定の要素、例えば、ツリーアイテムやグリッドセルに戻るべきです。 これを実現するには次の2つのテクニックがあります。
-
-
- 動き回る tabindex
: プログラム的にフォーカスを移動
- aria-activedescendant
: 「仮想」フォーカスの管理
-
-
-テクニック 1: 動き回る tabindex
-
-フォーカスされた要素の tabindex
を "0"
に設定すると、ユーザーがウィジェットからタブで離れてから戻ってきた場合でも、グループ内の選択された項目にフォーカスが保持されます。 tabindex
を "0"
に更新したら、以前に選択した項目を tabindex="-1"
に更新する必要もあることに注意してください。 このテクニックでは、キーイベントに応答してプログラムでフォーカスを移動し、現在フォーカスされた項目を反映するように tabindex
を更新します。 次を行います。
-
-キーダウンハンドラをグループ内の各要素にバインドし、矢印キーを使用して別の要素に移動した場合、
-
-
- プログラム的に新しい要素にフォーカスを適用します。
- フォーカスされた要素の tabindex
を "0"
に更新します。
- 以前にフォーカスされた要素の tabindex
を "-1"
に更新します。
-
-
-これはこのテクニックを使った WAI-ARIA ツリービュー の例です。
-
-ヒント
-
-element.focus() を使ってフォーカスを設定する
-
-要素にフォーカスを移すために createEvent()
、initEvent()
、および dispatchEvent()
を使用しないでください。 DOM フォーカスイベントは情報提供のみを目的としています。 何かがフォーカスされた後にシステムによって生成されますが、実際にはフォーカスの設定には使用されません。 代わりに element.focus()
を使用してください。
-
-onfocus を使って現在のフォーカスを追跡する
-
-全てのフォーカスの変更がキーイベントやマウスイベントを介して行われるとは限りません。 スクリーンリーダーなどの支援技術では、フォーカスを任意のフォーカス可能な要素に設定できます。 代わりに onfocus
と onblur
を使ってフォーカスを追跡します。
-
-onfocus
と onblur
は全ての要素で使用できるようになりました。 現在のドキュメントのフォーカスを取得するための標準的な DOM インターフェースはありません。 フォーカスの状態を追跡したい場合は、document.activeElement
を使ってアクティブな要素を取得できます。 document.hasFocus
を使って、現在のドキュメントのフォーカスかどうかを確認することもできます。
-
-テクニック 2: aria-activedescendant
-
-このテクニックでは、単一のイベントハンドラをコンテナウィジェットにバインドし、aria-activedescendant
を使用して「仮想」フォーカスを追跡します。 (ARIA に関する詳細は、アクセス可能なウェブアプリケーションとウィジェットの概要 を参照してください。)
-
-aria-activedescendant
プロパティは、現在仮想フォーカスを持っている子孫要素の ID を識別します。 コンテナのイベントハンドラーは、aria-activedescendant
の値を更新し、(例えば、境界線や背景色で)現在の項目が適切にスタイル設定されていることを確実にすることで、キーイベントおよびマウスイベントに応答する必要があります。
-
-一般的なガイドライン
-
-onkeypress ではなく onkeydown を使ってキーイベントをトラップする
-
-IE は、英数字以外のキーに対する keypress
イベントを発生させません。 代わりに onkeydown
を使用してください。
-
-キーボードとマウスが同じエクスペリエンスを生み出すことを確実にする
-
-ユーザーエクスペリエンスが入力デバイスに関係なく一貫していることを保証するために、キーボードとマウスのイベントハンドラは適切な場所でコードを共有するべきです。 例えば、ユーザーが矢印キーを使用して移動したときに tabindex
やスタイルを更新するコードは、マウスクリックハンドラでも同じ変化を生み出すために使用するべきです。
-
-キーボードを使用して要素をアクティブにできることを確実にする
-
-キーボードを使用して要素をアクティブにできることを確実にするには、マウスイベントにバインドされているハンドラもキーボードイベントにバインドするべきです。 例えば、onclick="doSomething()"
がある場合、Enter キーで要素がアクティブにできることを確実にするには、onkeydown="return event.keyCode != 13 || doSomething();"
で doSomething()
をキーダウンイベントにもバインドするべきです。
-
-tabindex="-1" 項目およびプログラムでフォーカスを受け取る要素に常にフォーカスを描画する
-
-プログラム的にフォーカスを受け取る項目には、IE は自動的にフォーカスの輪郭を描画しません。 背景色を this.style.backgroundColor = "gray";
のようなもので変更するか、または this.style.border = "1px dotted invert"
で点線の境界線を追加することの中から選らんでください。 点線の境界線の場合は、最初から見えない 1px の境界線があるようにして、境界線スタイルを適用しても要素が大きくならないようにする必要があります(境界線はスペースを取り、IE は CSS アウトラインを実装しません)。
-
-
-
-ウィジェットがキーイベントを処理する場合は、イベントハンドラのリターンコードを使用して、ブラウザーもそれを処理しないようにします(例えば、矢印キーに応答してスクロールするなど)。 イベントハンドラが false
を返した場合、そのイベントはハンドラを超えて伝播しません。
-
-例えば、次で、
-
-<span tabindex="-1" onkeydown="return handleKeyDown();">
-
-handleKeyDown()
が false
を返すと、イベントは消費され、ブラウザーはキーストロークに基づいたアクションを実行できなくなります。
-
-現時点では、キーリピートに一貫した動作を当てにしないこと
-
-残念ながら onkeydown
は、使用しているブラウザーや OS によってはリピートするかもしれないし、しないかもしれません。
diff --git a/files/ja/web/accessibility/keyboard-navigable_javascript_widgets/index.md b/files/ja/web/accessibility/keyboard-navigable_javascript_widgets/index.md
new file mode 100644
index 00000000000000..f14dfad0ece2fd
--- /dev/null
+++ b/files/ja/web/accessibility/keyboard-navigable_javascript_widgets/index.md
@@ -0,0 +1,146 @@
+---
+title: キーボードでナビゲート可能な JavaScript ウィジェット
+slug: Web/Accessibility/Keyboard-navigable_JavaScript_widgets
+tags:
+ - Accessibility
+ - DOM
+ - JavaScript
+translation_of: Web/Accessibility/Keyboard-navigable_JavaScript_widgets
+---
+### 概要
+
+ウェブアプリケーションは、メニュー、ツリービュー、リッチテキストフィールド、タブパネルなどのデスクトップウィジェットを模倣するために JavaScript を使用することがよくあります。 これらのウィジェットは通常、{{htmlelement("div")}} 要素と {{htmlelement("span")}} 要素で構成されています。これらの要素は本来、デスクトップのものと同じキーボード機能を提供しません。 このドキュメントは JavaScript ウィジェットをキーボードでアクセス可能にするためのテクニックを説明します。
+
+### tabindex を使う
+
+デフォルトでは、人々がウェブページを閲覧するために Tab キーを使うとき、(リンクやフォームコントロールのような)インタラクティブ要素だけがフォーカスされます。 {{htmlattrxref("tabindex")}} [グローバル属性](/ja/docs/Web/HTML/Global_attributes)を使うと、作成者は他の要素もフォーカス可能にできます。 `0` に設定すると、要素はキーボードとスクリプトによってフォーカス可能になります。 `-1` に設定すると、要素はスクリプトによってフォーカス可能になりますが、キーボードによるフォーカスの順序の一部にはなりません。
+
+キーボードを使用したときに要素がフォーカスを得る順序は、デフォルトではソースの順序です。 例外的な状況では、作成者は順序を再定義したいと思うかもしれません。 これを行うために、作成者は `tabindex` を任意の正数に設定することができます。
+
+> **Warning:** `tabindex` に正の値を使わないでください。 `tabindex` に正の値を持つ要素は、ページ上のデフォルトのインタラクティブ要素の前に配置されます。 つまり、ページ作成者は、`tabindex` に 1 以上の正の値を使用する時は必ず、ページ上の全てのフォーカス可能要素に対して `tabindex` の値を設定(および維持)する必要があります。
+
+次の表は、最新のブラウザーにおける `tabindex` の動作を説明しています。
+
+| `tabindex` 属性 | `element.focus()` を介してマウスや JavaScript でフォーカス可能 | タブでナビゲート可能 |
+| ------------------------------ | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 存在しない | 要素のプラットフォーム規約に従います(フォームコントロール、リンクなどでは、可)。 | 要素のプラットフォーム規約に従います。 |
+| 負(つまり、`tabindex="-1"`) | 可 | 不可。 作成者は、矢印キーなどの押下に応答して、[`focus()`](/ja/docs/Web/API/HTMLElement/focus) で要素をフォーカスしなければなりません。 |
+| ゼロ(つまり、`tabindex="0"`) | 可 | ドキュメント内の要素の位置を基準としたタブ順序({{htmlelement("a")}} のようなインタラクティブ要素は、デフォルトでこの振る舞いをすることに注意してください。 それらにこの属性は不要です)。 |
+| 正(例えば、`tabindex="33"`) | 可 | `tabindex` の値は、この要素がタブ順序のどこに配置されるかを決定します。 小さい値は、大きい値よりもタブ順序の早い位置に要素を配置します(例えば、`tabindex="7"` は `tabindex="11"` の前に配置されます)。 |
+
+#### ネイティブでないコントロール
+
+{{htmlelement("a")}}、{{htmlelement("input")}}、{{htmlelement("select")}} のようなインタラクティブなネイティブ HTML 要素はすでにキーボードによりアクセス可能であるため、これらのいずれかを使用することが、コンポーネントをキーボードで使えるようにするための最速の方法です。
+
+作成者は、`0` の `tabindex` を追加することによって、{{htmlelement("div")}} や {{htmlelement("span")}} をキーボードでアクセス可能にすることもできます。 これは、HTML には存在しないインタラクティブ要素を使用するコンポーネントに特に役立ちます。
+
+#### コントロールのグループ化
+
+メニュー、タブリスト、グリッド、ツリービューなどのウィジェットをグループ化するには、親要素をタブ順序に入れて(`tabindex="0"`)、各子孫の選択項目/タブ/セル/行をタブ順序から除く(`tabindex="-1"`)必要があります。 ユーザーは矢印キーを使って子孫要素をナビゲートできるべきです。 (典型的なウィジェットに通常期待されるキーボードサポートの詳細な説明については、[WAI-ARIA のオーサリングプラクティス](https://www.w3.org/TR/wai-aria-practices-1.1/)(英語)を参照してください。)
+
+以下の例は、入れ子になったメニューコントロールで使用されるこのテクニックを示しています。 キーボードフォーカスが含まれている {{htmlelement("ul")}} 要素に到達したら、JavaScript 開発者はプログラム的にフォーカスを管理し、矢印キーに応答する必要があります。 ウィジェット内でフォーカスを管理するためのテクニックについては、以下の「グループ内のフォーカス管理」を参照してください。
+
+例 2: tabindex を使用してキーボードアクセスを制御するメニューコントロール
+
+```html
+
+```
+
+#### 無効なコントロール
+
+カスタムコントロールが無効になったら、`tabindex="-1"` を設定して、タブ順序から除きます。 グループ化されたウィジェット内の無効な項目(メニュー内のメニュー項目など)は、矢印キーを使用してナビゲート可能なままにするべきであることに注意してください。
+
+### グループ内のフォーカス管理
+
+ユーザーがウィジェットからタブで離れてから戻ると、フォーカスはフォーカスを持っていた特定の要素、例えば、ツリーアイテムやグリッドセルに戻るべきです。 これを実現するには次の 2 つのテクニックがあります。
+
+1. 動き回る `tabindex`: プログラム的にフォーカスを移動
+2. `aria-activedescendant`: 「仮想」フォーカスの管理
+
+#### テクニック 1: 動き回る tabindex
+
+フォーカスされた要素の `tabindex` を `"0"` に設定すると、ユーザーがウィジェットからタブで離れてから戻ってきた場合でも、グループ内の選択された項目にフォーカスが保持されます。 `tabindex` を `"0"` に更新したら、以前に選択した項目を `tabindex="-1"` に更新する必要もあることに注意してください。 このテクニックでは、キーイベントに応答してプログラムでフォーカスを移動し、現在フォーカスされた項目を反映するように `tabindex` を更新します。 次を行います。
+
+キーダウンハンドラをグループ内の各要素にバインドし、矢印キーを使用して別の要素に移動した場合、
+
+1. プログラム的に新しい要素にフォーカスを適用します。
+2. フォーカスされた要素の `tabindex` を `"0"` に更新します。
+3. 以前にフォーカスされた要素の `tabindex` を `"-1"` に更新します。
+
+これはこのテクニックを使った [WAI-ARIA ツリービュー](https://files.paciellogroup.com/training/WWW2012/samples/Samples/aria/tree/index.html)の例です。
+
+##### ヒント
+
+###### element.focus() を使ってフォーカスを設定する
+
+要素にフォーカスを移すために `createEvent()`、`initEvent()`、および `dispatchEvent()` を使用しないでください。 DOM フォーカスイベントは情報提供のみを目的としています。 何かがフォーカスされた後にシステムによって生成されますが、実際にはフォーカスの設定には使用されません。 代わりに `element.focus()` を使用してください。
+
+###### onfocus を使って現在のフォーカスを追跡する
+
+全てのフォーカスの変更がキーイベントやマウスイベントを介して行われるとは限りません。 スクリーンリーダーなどの支援技術では、フォーカスを任意のフォーカス可能な要素に設定できます。 代わりに `onfocus` と `onblur` を使ってフォーカスを追跡します。
+
+`onfocus` と `onblur` は全ての要素で使用できるようになりました。 現在のドキュメントのフォーカスを取得するための標準的な DOM インターフェースはありません。 フォーカスの状態を追跡したい場合は、[`document.activeElement`](/ja/docs/Web/API/DocumentOrShadowRoot/activeElement) を使ってアクティブな要素を取得できます。 [`document.hasFocus`](/ja/docs/Web/API/Document/hasFocus) を使って、現在のドキュメントのフォーカスかどうかを確認することもできます。
+
+#### テクニック 2: aria-activedescendant
+
+このテクニックでは、単一のイベントハンドラをコンテナウィジェットにバインドし、`aria-activedescendant` を使用して「仮想」フォーカスを追跡します。 (ARIA に関する詳細は、[アクセス可能なウェブアプリケーションとウィジェットの概要](/ja/docs/Web/Accessibility/An_Overview_of_Accessible_Web_Applications_and_Widgets)を参照してください。)
+
+`aria-activedescendant` プロパティは、現在仮想フォーカスを持っている子孫要素の ID を識別します。 コンテナのイベントハンドラーは、`aria-activedescendant` の値を更新し、(例えば、境界線や背景色で)現在の項目が適切にスタイル設定されていることを確実にすることで、キーイベントおよびマウスイベントに応答する必要があります。
+
+### 一般的なガイドライン
+
+#### onkeypress ではなく onkeydown を使ってキーイベントをトラップする
+
+IE は、英数字以外のキーに対する `keypress` イベントを発生させません。 代わりに `onkeydown` を使用してください。
+
+#### キーボードとマウスが同じエクスペリエンスを生み出すことを確実にする
+
+ユーザーエクスペリエンスが入力デバイスに関係なく一貫していることを保証するために、キーボードとマウスのイベントハンドラは適切な場所でコードを共有するべきです。 例えば、ユーザーが矢印キーを使用して移動したときに `tabindex` やスタイルを更新するコードは、マウスクリックハンドラでも同じ変化を生み出すために使用するべきです。
+
+#### キーボードを使用して要素をアクティブにできることを確実にする
+
+キーボードを使用して要素をアクティブにできることを確実にするには、マウスイベントにバインドされているハンドラもキーボードイベントにバインドするべきです。 例えば、`onclick="doSomething()"` がある場合、Enter キーで要素がアクティブにできることを確実にするには、`onkeydown="return event.keyCode != 13 || doSomething();"` で `doSomething()` をキーダウンイベントにもバインドするべきです。
+
+#### tabindex="-1" 項目およびプログラムでフォーカスを受け取る要素に常にフォーカスを描画する
+
+プログラム的にフォーカスを受け取る項目には、IE は自動的にフォーカスの輪郭を描画しません。 背景色を `this.style.backgroundColor = "gray";` のようなもので変更するか、または `this.style.border = "1px dotted invert"` で点線の境界線を追加することの中から選らんでください。 点線の境界線の場合は、最初から見えない 1px の境界線があるようにして、境界線スタイルを適用しても要素が大きくならないようにする必要があります(境界線はスペースを取り、IE は CSS アウトラインを実装しません)。
+
+#### 使用したキーイベントがブラウザー機能を実行しないようにする
+
+ウィジェットがキーイベントを処理する場合は、イベントハンドラのリターンコードを使用して、ブラウザーもそれを処理しないようにします(例えば、矢印キーに応答してスクロールするなど)。 イベントハンドラが `false` を返した場合、そのイベントはハンドラを超えて伝播しません。
+
+例えば、次で、
+
+```html
+
+```
+
+`handleKeyDown()` が `false` を返すと、イベントは消費され、ブラウザーはキーストロークに基づいたアクションを実行できなくなります。
+
+#### 現時点では、キーリピートに一貫した動作を当てにしないこと
+
+残念ながら `onkeydown` は、使用しているブラウザーや OS によってはリピートするかもしれないし、しないかもしれません。
diff --git a/files/ja/web/accessibility/mobile_accessibility_checklist/index.html b/files/ja/web/accessibility/mobile_accessibility_checklist/index.html
deleted file mode 100644
index 868db695ed7d4f..00000000000000
--- a/files/ja/web/accessibility/mobile_accessibility_checklist/index.html
+++ /dev/null
@@ -1,92 +0,0 @@
----
-title: モバイルアクセシビリティのチェックリスト
-slug: Web/Accessibility/Mobile_accessibility_checklist
-tags:
- - Accessibility
- - Guidelines
- - Mobile
- - checklist
-translation_of: Web/Accessibility/Mobile_accessibility_checklist
----
-
-
このドキュメントは、モバイルアプリ開発者向けのアクセシビリティ要件の簡潔なチェックリストを提供します。 それはより多くのパターンが生じるにつれて絶えず進化することを意図しています。
-
-
-色
-
-
- カラーコントラストは、WCAG 2.0 (英語)の AA レベルの要件に準拠しなければならない 。
-
-
- 通常のテキストでは、4.5:1 のコントラスト比(18 ポイント未満または 14 ポイント未満の太字)。
- 大きなテキストでは、3:1 のコントラスト比(少なくとも 18 ポイントまたは 14 ポイントの太字)。
-
-
- 色で伝えられる情報は、他の方法でも利用可能でなければならない (リンクのための下線付きテキストなど)。
-
-
-可視性
-
-
- {{cssxref("opacity")}} がゼロ、{{cssxref("z-index")}} 順、画面外配置のようなコンテンツ非表示テクニックは、可視性を扱うためだけに使用してはいけない 。
- 現在の表示画面以外のものは、本当に見えないものでなければならない (特に複数のカードを含む単一ページのアプリに関連します)。
-
- {{htmlattrxref("hidden")}} 属性、{{cssxref("visibility")}} スタイルプロパティ、または {{cssxref("display")}} スタイルプロパティを使用します 。
- 絶対に避けられない場合を除いて、aria-hidden
属性は使用するべきではない (SHOULD NOT)。
-
-
-
-
-フォーカス
-
-
- 全てのアクティブ化可能要素はフォーカス可能でなければならない 。
-
-
- リンク、ボタン、フォームフィールドのような標準コントロールは、デフォルトでフォーカス可能です。
- 非標準コントロールには、button
、link
、checkbox
のような適切な ARIA のロール (英語)が割り当てられていなければならない 。
-
-
- フォーカスは、論理的な順序と一貫した方法で扱われるべきです。
-
-
-同等のテキスト
-
-
- アプリ内の全ての非厳密で提示的な非テキスト要素には、同等のテキストを提供しなければならない 。
-
-
- 必要に応じて {{htmlattrxref("alt","img")}} と {{htmlattrxref("title")}} を使用してください(良いガイドについては、HTML の title 属性の使用 (英語)に関する Steve Faulkner の投稿を参照してください)。
- 上記の属性が適用できない場合は、aria-label
、aria-labelledby
、aria-describedby
のような適切な ARIA のプロパティ (英語)を使用してください。
-
-
- テキストの画像は避けなければならない 。
- スクリーンリーダーを使用するユーザーのために、全てのフォームコントロールにラベル({{htmlelement("label")}} 要素)を持たなければならない 。
-
-
-ステートの取り扱い
-
-
- ラジオボタンやチェックボックスのような標準コントロールは、オペレーティングシステムによって処理されます。 ただし、他のカスタムコントロールでは、aria-checked
、aria-disabled
、aria-selected
、aria-extended
、および aria-press
のような ARIA のステート (英語)を介してステートの変更を提供する必要があります。
-
-
-一般的なガイドライン
-
-
-
-
-
-
diff --git a/files/ja/web/accessibility/mobile_accessibility_checklist/index.md b/files/ja/web/accessibility/mobile_accessibility_checklist/index.md
new file mode 100644
index 00000000000000..ed8111ccd8f47a
--- /dev/null
+++ b/files/ja/web/accessibility/mobile_accessibility_checklist/index.md
@@ -0,0 +1,69 @@
+---
+title: モバイルアクセシビリティのチェックリスト
+slug: Web/Accessibility/Mobile_accessibility_checklist
+tags:
+ - Accessibility
+ - Guidelines
+ - Mobile
+ - checklist
+translation_of: Web/Accessibility/Mobile_accessibility_checklist
+---
+このドキュメントは、モバイルアプリ開発者向けのアクセシビリティ要件の簡潔なチェックリストを提供します。 それはより多くのパターンが生じるにつれて絶えず進化することを意図しています。
+
+## 色
+
+- カラーコントラストは、[WCAG 2.0](http://www.w3.org/TR/WCAG/)(英語)の AA レベルの要件に準拠**しなければならない**。
+
+ - 通常のテキストでは、4.5:1 のコントラスト比(18 ポイント未満または 14 ポイント未満の太字)。
+ - 大きなテキストでは、3:1 のコントラスト比(少なくとも 18 ポイントまたは 14 ポイントの太字)。
+
+- 色で伝えられる情報は、他の方法でも利用可能**でなければならない**(リンクのための下線付きテキストなど)。
+
+## 可視性
+
+- {{cssxref("opacity")}} がゼロ、{{cssxref("z-index")}} 順、画面外配置のようなコンテンツ非表示テクニックは、可視性を扱うためだけに使用**してはいけない**。
+- 現在の表示画面以外のものは、本当に見えないもの**でなければならない**(特に複数のカードを含む単一ページのアプリに関連します)。
+
+ - {{htmlattrxref("hidden")}} 属性、{{cssxref("visibility")}} スタイルプロパティ、または {{cssxref("display")}} スタイルプロパティを**使用します**。
+ - 絶対に避けられない場合を除いて、`aria-hidden` 属性は使用**するべきではない**(SHOULD NOT)。
+
+## フォーカス
+
+- 全てのアクティブ化可能要素はフォーカス可能**でなければならない**。
+
+ - リンク、ボタン、フォームフィールドのような標準コントロールは、デフォルトでフォーカス可能です。
+ - 非標準コントロールには、`button`、`link`、`checkbox` のような適切な [ARIA のロール](https://www.w3.org/TR/wai-aria/#roles)(英語)が割り当てられて**いなければならない**。
+
+- フォーカスは、論理的な順序と一貫した方法で扱われるべきです。
+
+## 同等のテキスト
+
+- アプリ内の全ての非厳密で提示的な非テキスト要素には、同等のテキストを提供**しなければならない**。
+
+ - 必要に応じて {{htmlattrxref("alt","img")}} と {{htmlattrxref("title")}} を使用してください(良いガイドについては、[HTML の title 属性の使用](http://blog.paciellogroup.com/2013/01/using-the-html-title-attribute-updated/)(英語)に関する Steve Faulkner の投稿を参照してください)。
+ - 上記の属性が適用できない場合は、`aria-label`、`aria-labelledby`、`aria-describedby` のような適切な [ARIA のプロパティ](https://www.w3.org/TR/wai-aria/#global_states)(英語)を使用してください。
+
+- テキストの画像は避け**なければならない**。
+- スクリーンリーダーを使用するユーザーのために、全てのフォームコントロールにラベル({{htmlelement("label")}} 要素)を持た**なければならない**。
+
+## ステートの取り扱い
+
+- ラジオボタンやチェックボックスのような標準コントロールは、オペレーティングシステムによって処理されます。 ただし、他のカスタムコントロールでは、`aria-checked`、`aria-disabled`、`aria-selected`、`aria-extended`、および `aria-press` のような [ARIA のステート](https://www.w3.org/TR/wai-aria/#attrs_widgets)(英語)を介してステートの変更を提供する必要があります。
+
+## 一般的なガイドライン
+
+- アプリのタイトルを提供**しなければならない**。
+- 見出しは階層構造を壊**してはならない**。
+
+ ```html
+ 最上位の見出し
+ 副見出し
+ 別の副見出し
+ 下位の見出し
+ ```
+
+- `banner`、`complementary`、`contentinfo`、`main`、`navigation`、`search` のような [ARIA のランドマークロール](https://www.w3.org/TR/wai-aria/#landmark_roles)(英語)は、アプリやドキュメントの構造を説明するために使用**するべきです**(SHOULD)。
+- タッチイベントハンドラは、`touchend` イベントでのみトリガ**されなければならない**。
+- タッチターゲットは、ユーザーが対話するのに十分な大きさ**でなければならない**(有用なタッチターゲットサイズのガイドラインについては、[BBC モバイルアクセシビリティ・ガイドライン](http://www.bbc.co.uk/guidelines/futuremedia/accessibility/mobile/design/touch-target-size)(英語)を参照してください)。
+
+> **Note:** **メモ**: [この文書のオリジナル版](http://yzen.github.io/firefoxos/2014/04/30/mobile-accessibility-checklist.html)(英語)は、[Yura Zenevich](http://yzen.github.io/) によって書かれました。
diff --git a/files/ja/web/accessibility/understanding_wcag/index.html b/files/ja/web/accessibility/understanding_wcag/index.html
deleted file mode 100644
index 9fc4851d2be4bf..00000000000000
--- a/files/ja/web/accessibility/understanding_wcag/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: ウェブコンテンツ・アクセシビリティガイドラインを理解する
-slug: Web/Accessibility/Understanding_WCAG
-tags:
- - Accessibility
- - WCAG
- - Web Content Accessibility Guidelines
-translation_of: Web/Accessibility/Understanding_WCAG
----
-この一連の記事では、W3C {{glossary("WCAG","ウェブコンテンツ・アクセシビリティガイドライン")}} 2.0 または 2.1(WCAG、Web Content Accessibility Guidelines)で概説されている推奨事項に準拠するために必要な手順を理解するのに役立つ簡単な説明を提供します。
-
-WCAG 2.0 と 2.1 は、さまざまな障碍を持つ人々にとってウェブコンテンツをよりアクセスしやすくするための詳細なガイドラインを提供しています。 それは包括的ですが信じられないほど詳細であり、そして迅速な理解を得ることは非常に困難です。 このため、さまざまな推奨事項を満たすために必要な実際的な手順をまとめ、必要に応じて詳細へのリンクを追加しました。
-
-4つの原則
-
-WCAG は大きく4つの原則に分割されます — ウェブコンテンツがアクセス可能であるように熟慮しなければならない 主要な事柄(WCAG 定義のためのアクセシビリティの4つの原則の理解 (英語)を参照してください)。
-
-以下の各リンクはこれらの分野をさらに拡大するページにあなたを連れて行くでしょう。 それらは、WCAG 2.0 および 2.1 の各ガイドラインで概説されている達成基準に準拠するように、ウェブコンテンツの書き方について実際的なアドバイスを与え、各原則をさらに細分化します。
-
-
- 知覚可能 : ユーザーは、1つ以上の感覚を使って何らかの方法でそれを知覚できなければなりません。
- 操作可能 : ユーザーは、UI 要素を制御できなければなりません(例えば、ボタンは、マウス、キーボード、音声コマンドなど、何らかの方法でクリック可能でなければならない)。
- 理解可能 : コンテンツはそのユーザーにとって理解可能でなければなりません。
- 堅牢 : コンテンツは、現在および将来にわたって、さまざまなブラウザで機能する、広く採用されているウェブ標準を使用して開発する必要があります。
-
-
-WCAG 2.0 と 2.1 のどちらを使うべきか?
-
-WCAG 2.1 は最新かつ関連性のあるアクセシビリティ標準です。 WCAG 2.1 を使用して、より多くの障碍者を支援し、ウェブサイト所有者に対する将来の法的リスクを軽減します。 リソースを割り当てるときは、最初に WCAG 2.0 を目標にしてください。 それから WCAG 2.1 にステップアップしてください。
-
-WCAG 2.1 とは何か?
-
-WCAG 2.1 は、2018年6月5日に公式勧告として発行されました。 欧州連合(EU)は、2018年9月にデジタルアクセシビリティ標準として WCAG 2.1 を採用しました。 W3C は、プレスリリース ヨーロッパにおける WCAG 2.1 の採用 (英語)を発表しました。
-
-WCAG 2.1 には以下が含まれます。
-
-
- WCAG 2.0 の全て(逐語的、一字一句違わないで)
- A / AA / AAA レベルの17の新しい達成基準は、主に次の分野におけるユーザーのニーズに対応しています。
-
- モバイルアクセシビリティ
- ロービジョン
- 認知
-
-
- WCAG 2.1 についてもっと読む
-
-
-
-
-法的地位
-
-このガイドは、より良く、よりアクセスしやすいウェブサイトを構築するのに役立つ実用的な情報を提供することを目的としています。 しかし、私たちは弁護士ではありません、そしてこれのどれも法的助言を構成しません。 ウェブのアクセシビリティが法的にどのような意味を持つのかを心配している場合は、あなたの国や地域のウェブや公共のリソースに対するアクセシビリティを規定する特定の法律を調べ、有資格の弁護士に相談することをお勧めします。
-
-アクセシビリティとは? と、その中のアクセシビリティのガイドラインと法律 のセクションには、より関連性の高い情報が記載されています。
diff --git a/files/ja/web/accessibility/understanding_wcag/index.md b/files/ja/web/accessibility/understanding_wcag/index.md
new file mode 100644
index 00000000000000..5f226c36bafac7
--- /dev/null
+++ b/files/ja/web/accessibility/understanding_wcag/index.md
@@ -0,0 +1,51 @@
+---
+title: ウェブコンテンツ・アクセシビリティガイドラインを理解する
+slug: Web/Accessibility/Understanding_WCAG
+tags:
+ - Accessibility
+ - WCAG
+ - Web Content Accessibility Guidelines
+translation_of: Web/Accessibility/Understanding_WCAG
+---
+この一連の記事では、W3C {{glossary("WCAG","ウェブコンテンツ・アクセシビリティガイドライン")}} 2.0 または 2.1(WCAG、Web Content Accessibility Guidelines)で概説されている推奨事項に準拠するために必要な手順を理解するのに役立つ簡単な説明を提供します。
+
+WCAG 2.0 と 2.1 は、さまざまな障碍を持つ人々にとってウェブコンテンツをよりアクセスしやすくするための詳細なガイドラインを提供しています。 それは包括的ですが信じられないほど詳細であり、そして迅速な理解を得ることは非常に困難です。 このため、さまざまな推奨事項を満たすために必要な実際的な手順をまとめ、必要に応じて詳細へのリンクを追加しました。
+
+## 4 つの原則
+
+WCAG は大きく 4 つの原則に分割されます — ウェブコンテンツがアクセス可能であるように熟慮**しなければならない**主要な事柄(WCAG 定義のための[アクセシビリティの 4 つの原則の理解](https://www.w3.org/TR/UNDERSTANDING-WCAG20/intro.html#introduction-fourprincs-head)(英語)を参照してください)。
+
+以下の各リンクはこれらの分野をさらに拡大するページにあなたを連れて行くでしょう。 それらは、WCAG 2.0 および 2.1 の各ガイドラインで概説されている達成基準に準拠するように、ウェブコンテンツの書き方について実際的なアドバイスを与え、各原則をさらに細分化します。
+
+- [知覚可能](/ja/docs/Web/Accessibility/Understanding_WCAG/Perceivable): ユーザーは、1 つ以上の感覚を使って何らかの方法でそれを知覚できなければなりません。
+- [操作可能](/ja/docs/Web/Accessibility/Understanding_WCAG/Operable): ユーザーは、UI 要素を制御できなければなりません(例えば、ボタンは、マウス、キーボード、音声コマンドなど、何らかの方法でクリック可能でなければならない)。
+- [理解可能](/ja/docs/Web/Accessibility/Understanding_WCAG/Understandable): コンテンツはそのユーザーにとって理解可能でなければなりません。
+- [堅牢](/ja/docs/Web/Accessibility/Understanding_WCAG/Robust): コンテンツは、現在および将来にわたって、さまざまなブラウザで機能する、広く採用されているウェブ標準を使用して開発する必要があります。
+
+## WCAG 2.0 と 2.1 のどちらを使うべきか?
+
+WCAG 2.1 は最新かつ関連性のあるアクセシビリティ標準です。 WCAG 2.1 を使用して、より多くの障碍者を支援し、ウェブサイト所有者に対する将来の法的リスクを軽減します。 リソースを割り当てるときは、最初に WCAG 2.0 を目標にしてください。 それから WCAG 2.1 にステップアップしてください。
+
+### WCAG 2.1 とは何か?
+
+WCAG 2.1 は、2018 年 6 月 5 日に公式勧告として発行されました。 欧州連合(EU)は、2018 年 9 月にデジタルアクセシビリティ標準として WCAG 2.1 を採用しました。 W3C は、プレスリリース [ヨーロッパにおける WCAG 2.1 の採用](https://www.w3.org/blog/2018/09/wcag-2-1-adoption-in-europe/)(英語)を発表しました。
+
+WCAG 2.1 には以下が含まれます。
+
+- WCAG 2.0 の全て(逐語的、一字一句違わないで)
+- A / AA / AAA レベルの 17 の新しい達成基準は、主に次の分野におけるユーザーのニーズに対応しています。
+
+ - モバイルアクセシビリティ
+ - ロービジョン
+ - 認知
+
+- WCAG 2.1 についてもっと読む
+
+ - Deque: [WCAG 2.1: アクセシビリティガイドラインの次のステップ](https://www.deque.com/blog/wcag-2-1-what-is-next-for-accessibility-guidelines/)(英語)
+ - TPG: [ウェブコンテンツ・アクセシビリティガイドライン(WCAG)2.1](https://developer.paciellogroup.com/blog/2018/06/web-content-accessibility-guidelines-wcag-2-1/)(英語)
+
+## 法的地位
+
+このガイドは、より良く、よりアクセスしやすいウェブサイトを構築するのに役立つ実用的な情報を提供することを目的としています。 しかし、私たちは弁護士ではありません、そしてこれのどれも法的助言を構成しません。 ウェブのアクセシビリティが法的にどのような意味を持つのかを心配している場合は、あなたの国や地域のウェブや公共のリソースに対するアクセシビリティを規定する特定の法律を調べ、有資格の弁護士に相談することをお勧めします。
+
+[アクセシビリティとは?](/ja/docs/Learn/Accessibility/What_is_accessibility)と、その中の[アクセシビリティのガイドラインと法律](/ja/docs/Learn/Accessibility/What_is_accessibility#Accessibility_guidelines_and_the_law)のセクションには、より関連性の高い情報が記載されています。
diff --git a/files/ja/web/accessibility/understanding_wcag/operable/index.html b/files/ja/web/accessibility/understanding_wcag/operable/index.html
deleted file mode 100644
index c277fef2bc7c84..00000000000000
--- a/files/ja/web/accessibility/understanding_wcag/operable/index.html
+++ /dev/null
@@ -1,319 +0,0 @@
----
-title: 操作可能
-slug: Web/Accessibility/Understanding_WCAG/Operable
-tags:
- - Accessibility
- - Focus
- - Navigation
- - Principle 2
- - Timing
- - WCAG
- - Web Content Accessibility Guidelines
- - headings
- - keyboard
- - keyboard trap
- - labels
- - operable
- - seizures
-translation_of: Web/Accessibility/Understanding_WCAG/Operable
----
-この記事では、ウェブコンテンツ・アクセシビリティガイドライン(WCAG)2.0 および 2.1 の操作可能 原則に概説されている達成基準に準拠するようにウェブコンテンツを作成する方法についての実用的なアドバイスを提供します。 操作可能とは、ユーザーインターフェイス・コンポーネントとナビゲーションが操作可能でなければならないということです。
-
-
-
-ガイドライン 2.1 — キーボードアクセス可能: キーボードから全ての機能を利用可能にする
-
-このガイドラインは、キーボード制御に頼るユーザーがコアウェブサイト機能にアクセスできるように、他の手段(例えば、マウス)に加えてキーボードを介してそれらを利用可能にする必要性をカバーする。
-
-
-
-
- 達成基準
- 基準への準拠方法
- 実用的なリソース
-
-
-
-
- 2.1.1 キーボード (A)
- キーボードを使用して行えない場合(例えば、フリーハンド描画)を除き、全ての機能はキーボード制御を使用してアクセス可能であるべきです。 可能な場合は組み込みのコントロールを使用するべきで(例えば、フォームコントロール間のタブ移動)、必要な場合にのみカスタム機能を組み込むべきです。
- UI コントロール とキーボード・アクセシビリティを取り戻す を参照してください。
-
-
- 2.1.2 キーボードを閉じ込めない (A)
-
- キーボードを使用してある機能のセクションに入るときは、キーボードのみ を使用してそのセクションから再び出ることができるべきです。 例えば、フォーカスのあるボタンの上で Enter / Return を押してオプションウィンドウを開いたら、キーボードを使ってそのウィンドウを再び閉じてメインコンテンツに戻ることができるべきです。
-
- キーボードユーザーをアプリの特定のセクションに閉じ込めないようにするために、これは非常に重要です。
-
-
-
-
- 2.1.3 キーボード — 全機能 (AAA)
- これは、基準 2.1.1 を超えるさらなるステップです。 AAA 準拠を達成するために、全ての機能はキーボードコントロールを使用してアクセス可能であるべきです — 例外なく。
- UI コントロール とキーボード・アクセシビリティを取り戻す を参照してください。
-
-
- 2.1.4 文字キーショートカット (A) 2.1 で追加 (英語)
- 単一文字キーショートカットが存在する場合は、少なくとも次の1つが当てはまります。 単一文字キーショートカットは、オフにする、再マップする、または関連するユーザーインターフェース・コンポーネントにフォーカスがあるときにのみアクティブにすることができます。
- 文字キーショートカットを理解する (英語)
-
-
-
-
-
-
-ガイドライン 2.2 — 十分な時間: コンテンツを読んで使用するのに十分な時間をユーザーに提供する
-
-このガイドラインでは、機能に制限時間があるかもしれない状況について説明します。 例えば、セキュリティ上の理由から、購入を制限時間内に完了する必要がある場合があります。
-
-
-
-
- 達成基準
- 基準への準拠方法
- 実用的なリソース
-
-
-
-
- 2.2.1 タイミングは調整可能 (A)
-
- 制限時間付きの機能の場合(例えば、ホテルやフライトの予約を完了するには制限時間があることが多い)、ユーザーには、制限時間の調整、延長、または無効化を許可するコントロールを与えるべきです。
-
- これに対する例外は、20時間を超える制限時間のある活動、リアルタイムイベント(例えば、ライブマルチプレイヤーゲーム)、および制限時間が必要で、無効にされた場合に無効になるその他の活動です。
-
-
-
-
- 2.2.2 一時停止、停止、非表示 (A)
-
- 自動的に開始され、5秒以上続き、他のコンテンツと一緒に表示されるコンテンツを移動や点滅させるには、一時停止、停止、または非表示にするためのコントロールを提供するべきです。 これは、体験に不可欠なコンテンツの移動や点滅には適用されません。 例としては、テキストのスクロールと動画があります。
-
- 自動的に開始され、他のコンテンツと一緒に表示される自動更新情報の場合は、一時停止、停止、または非表示にするため、あるいは更新頻度を制御するためのコントロールを提供するべきです。 これは、体験に不可欠なコンテンツの自動更新には当てはまりません。 例としては、回転木馬や回転アナウンスがあります。
-
-
-
-
- 2.2.3 制限時間なし (AAA)
- これは基準 2.2.1 に基づいており、AAA 適合に合格したいコンテンツには制限時間がないことを述べています。
-
-
-
- 2.2.4 中断を抑止する (AAA)
- アラートやインタースティシャル広告などによる中断には、緊急アラートでない限り、それらを抑制または延期するための機能を用意するべきです。
-
-
-
- 2.2.5 再認証 (AAA)
- ウェブアプリの使用中に認証セッションが期限切れになった場合、ユーザーはデータを失うことなく再認証して使用を続けることができます。
-
-
-
- 2.2.6 タイムアウト (AAA) 2.1 で追加 (英語)
-
- タイムアウトした場合(ユーザーの非活動状態が原因で)、プロセスの開始時にユーザーに警告するので、タイムアウトが存在していても驚くことはありません(または、20時間の非活動状態の後にのみタイムアウトするようにします)。
-
- タイムアウトを理解する (英語)
-
-
-
-
-
-
-ガイドライン2.3 — 発作と身体的反応: 発作や身体的反応を引き起こすことが知られている方法でコンテンツをデザインしないでください
-
-これは、変更しないとてんかんなどの症状のあるユーザーに発作を起こす可能性がある、または前庭障碍などの症状のあるユーザーに身体的反応(めまいなど)を引き起こす可能性があるコンテンツを意味します。
-
-
-
-
- 達成基準
- 基準への準拠方法
- 実用的なリソース
-
-
-
-
- 2.3.1 3回の閃光、またはしきい値を下回る (A)
- コンテンツに1秒間に3回以上の閃光を放つアスペクトが含まれていない、または閃光を放つコンテンツが許容できる閃光および赤色閃光のしきい値 (英語)を下回っている。
-
-
-
- 2.3.2 3回の閃光 (AAA)
- コンテンツには、1秒間に3回以上の閃光を放つアスペクトは含まれていません。
-
-
-
- 2.3.3 インタラクションによるアニメーション (AAA) 2.1 で追加 (英語)
- ユーザーがインタラクションによるアニメーションを無効にできるようにする(アニメーションが必須でない限り)。
- インタラクションによるアニメーションを理解する (英語)
-
-
-
-
-
-
-ガイドライン 2.4 — ナビゲート可能: ユーザーがナビゲートし、コンテンツを見つけ、どこにいるのかを判断するのに役立つ方法を提供する
-
-このガイドラインの下での適合基準は、ユーザーが自分自身を指向し、サイトの現在のページや他のページで探しているコンテンツと機能を見つけることが期待できる方法に関連しています。
-
-
-
-
- 達成基準
- 基準への準拠方法
- 実用的なリソース
-
-
-
-
- 2.4.1 ブロックのバイパス (A)
-
- 繰り返される機能(会社のロゴやナビゲーションなど)を通り過ぎて、ユーザーがページにあるメインコンテンツや機能に直接スキップできるようにするメカニズムを提供するべきです。 これはしばしば、スキップリンク("skip links")を使用して達成されます — メインコンテンツにリンクする CSS によって隠されたリンクはページのソースのトップに置かれます。
-
- 見出しと意味論のコンテナの適切な構造(例えば、{{htmlelement("section")}}、{{htmlelement("aside")}} など)がナビゲートするために提供されている場合は、追加のスキップリンクは必要ありません。
-
- スキップリンクのセクションを追加する必要があります。
-
-
- 2.4.2 ページタイトルを含める (A)
- 各ウェブページには有益な {{htmlelement("title")}} を含めるべきです。 そのコンテンツは、ページのコンテンツや目的を説明しています。
- タイトルの追加 を参照してください。
-
-
- 2.4.3 論理的なフォーカスの順序 (A)
- フォーカス可能なページ機能(例えば、リンク、ボタン、フォーム入力)の「タブ順序」は論理的に意味があり、そのページはまだ非晴眼者でもキーボードのユーザーでも使用可能であることを意味します。
- コントロールへのタブ移動に関する一般的なアドバイスについては、UI コントロール を参照してください。 要素を独特なレイアウトに配置する必要がある場合は、ソースの順序が適切であることを確認してから、配置 などの CSS 機能を使用してレイアウトを扱うことをお勧めします。
-
-
- 2.4.4 リンクの目的(コンテキストにそった)(A)
- リンクの目的や行き先は、リンクテキストから、またはその周囲(例えば、周囲のテキスト)から決定することができます。 例外は、リンクの目的が全てのユーザーにとってあいまいな場合です(これに関する有用な説明については、一般的にユーザーにとってあいまい (英語)を参照してください)。
- わかりやすいテキストラベル を参照してください。 また、同じテキストの複数のコピーが異なる場所にリンクされている場合は最小限に抑えるべきです。 これはスクリーンリーダーのユーザーにとって問題となる可能性があり、リンクの一覧がコンテキストから外れて表示されることがよくあります — 全てが「ここをクリック」、「ここをクリック」、「ここをクリック」とラベル付けされたいくつかのリンクは混乱を招くでしょう。
-
-
- 2.4.5 複数のナビゲーションメカニズム (AA)
-
- ウェブサイト上のページを見つけるために少なくとも二つの一般的なナビゲーションメカニズム、例えば、ナビゲーションメニュー、パンくずリスト、サイト検索、サイトマップ、関連リンクのリストなどを提供するべきです。
-
- これに対する唯一の例外は、ページがプロセスの1ステップである場合で、論理的には前後のステップへのリンクのみを持つべきです。
-
- これらのメカニズムのほとんどは、単純な HTML 機能を使用して作成できます。 例えば、検索フィールド 、ナビゲーションメニューの作成 、ボタンとしてのリンクのスタイリング を参照してください。
-
-
- 2.4.6 見出しとラベル (AA)
- 見出し(例えば、{{htmlelement("h2")}})および {{htmlelement("label")}} 要素は、それらが説明していると思われるコンテンツおよびフォーム要素の目的を明確に説明しています。
-
- UI コントロール 、わかりやすいテキストラベル 、見出しと段落の基本 、<label> 要素 を参照してください。
-
- 構造上、それらを簡単に区別できない場合を除き、見出しやラベルの重複は避けるべきです(例えば、「詳細情報」が複数ある場合)。
-
-
-
- 2.4.7 フォーカス可能な要素に対する可視フォーカス (AA)
- リンクやフォーム入力などのフォーカス可能な要素間をタブ移動するときは、どの要素に現在フォーカスがあるかを示す視覚的なインジケーターがあるはずです。 これは通常、デフォルトでは点線や青のアウトラインです(ブラウザ、プラットフォームなどによって異なります)が、CSS によって上書きすることができます。
- ネイティブなキーボード・アクセシビリティの使用 を参照してください。
-
-
- 2.4.8 サイト内の場所 (AAA)
- 複雑なサイトまたは一連のステップ内のページにいる場合は、パンくずリスト、サイトマップ、「Form page 2 of 10」といったテキストなど、サイト内の場所を示すインジケーターをユーザーに提示するべきです。
-
-
-
- 2.4.9 リンクの目的(リンクのみ) (AAA)
- この基準は 2.4.4 に基づいており、AAA に準拠するためには、コンテキストから外れていてもリンクの目的やリンク先はリンクテキストのみから決定可能であるべきであると述べています。
- わかりやすいテキストラベル を参照してください。 また、同じテキストの複数のコピーが異なる場所にリンクされている場合は最小限に抑えるべきです。 これはスクリーンリーダーのユーザーにとって問題となる可能性があり、リンクの一覧がコンテキストから外れて表示されることがよくあります — 全てが「ここをクリック」、「ここをクリック」、「ここをクリック」とラベル付けされたいくつかのリンクは混乱を招くでしょう。
-
-
- 2.4.10 セクション見出し (AAA)
-
- 便利な文書構造を作成するだけでなく、見出しも正確に記述し、コンテンツ領域を論理的なセクションに分割するべきです。
-
- この基準は、一般的なウェブコンテンツの見出しとタイトルを指すことに注意してください(例えば、テキストコンテンツ内の見出し)。 ユーザーインターフェースの見出しとタイトルは、基準 4.1.2 で扱われる特別なケースです。
-
-
- 見出しと段落の基本 を参照してください。
-
-
-
-
-
-
-
-
-
-このガイドラインの適合基準は、ユーザーがキーボードやマウス以外のさまざまな入力方法(タッチスクリーン、音声、デバイスの動き、その他の入力デバイスを含む)を使用してデジタルテクノロジーと対話できることを保証します。
-
-
-
-
- 達成基準
- 基準への準拠方法
- 実用的なリソース
-
-
-
-
- 2.5.1 ポインタジェスチャー (A) 2.1 で追加 (英語)
- ポインタで操作できる全ての機能は、シングルポイントのアクションで操作できます。 パスベースやマルチポイントのジェスチャーは、機能を操作するために必要ではありません。 例外があります。
- ポインタジェスチャーを理解する (英語)
-
-
- 2.5.2 ポインタキャンセル (A) 2.1 で追加 (英語)
- シングルポインタを使用して操作できる機能については、次のうち少なくとも1つが当てはまります。 ダウンイベントなし、中止や元に戻す、アップリバーサル、必要不可欠。
- ポインタキャンセルを理解する (英語)
-
-
- 2.5.3 名前のラベル (A) 2.1 で追加 (英語)
- 表示可能なテキストラベルを含む各ユーザーインターフェイス・コンポーネントについて、アクセス可能な名前がラベルの表示可能なテキストと一致する(または含まれる)ことを確認します。
- 名前のラベルを理解する (英語)
-
-
- 2.5.4 動きによる作動 (A) 2.1 で追加 (英語)
- a)デバイスの動き(揺れ、傾きのような)、または b)デバイスのセンサー(カメラを含む)によって検出されたユーザーのジェスチャーによって引き起こされる可能性のある機能について、次の両方が当てはまることを確認します。 1) 動きによる作動を無効にすることができ、2) 機能をデバイスの動きやユーザーのジェスチャーを使用せずに動作させることができる。 例外があります。
- 動きによる作動を理解する (英語)
-
-
- 2.5.5 ターゲットサイズ (AAA) 2.1 で追加 (英語)
- アクション可能アイテムのタッチターゲットのサイズは、幅と高さの両方で少なくとも 44 CSS ピクセルにする必要があります。 例外があります。
- ターゲットサイズを理解する (英語)
-
-
- 2.5.6 同時入力メカニズム (AAA) 2.1 で追加 (英語)
- タッチスクリーン、キーボード、マウス、音声コマンド、その他の入力デバイスを含むデジタルコンテンツと対話するときに、さまざまな入力モードを使用したり切り替えたりできることを確認します。 本質的な例外があります。
- 同時入力メカニズムを理解する (英語)
-
-
-
-
-
-
-
-
-関連情報
-
-
-
-
diff --git a/files/ja/web/accessibility/understanding_wcag/operable/index.md b/files/ja/web/accessibility/understanding_wcag/operable/index.md
new file mode 100644
index 00000000000000..3301d91d2a735d
--- /dev/null
+++ b/files/ja/web/accessibility/understanding_wcag/operable/index.md
@@ -0,0 +1,105 @@
+---
+title: 操作可能
+slug: Web/Accessibility/Understanding_WCAG/Operable
+tags:
+ - Accessibility
+ - Focus
+ - Navigation
+ - Principle 2
+ - Timing
+ - WCAG
+ - Web Content Accessibility Guidelines
+ - headings
+ - keyboard
+ - keyboard trap
+ - labels
+ - operable
+ - seizures
+translation_of: Web/Accessibility/Understanding_WCAG/Operable
+---
+この記事では、ウェブコンテンツ・アクセシビリティガイドライン(WCAG)2.0 および 2.1 の**操作可能**原則に概説されている達成基準に準拠するようにウェブコンテンツを作成する方法についての実用的なアドバイスを提供します。 操作可能とは、ユーザーインターフェイス・コンポーネントとナビゲーションが操作可能でなければならないということです。
+
+> **Note:** 操作可能の W3C の定義とそのガイドラインおよび達成基準を読むには、[原則 2: 操作可能 — ユーザーインターフェース・コンポーネントとナビゲーションが操作可能でなければならない](https://www.w3.org/TR/WCAG21/#operable)(英語)を参照してください。
+
+## ガイドライン 2.1 — キーボードアクセス可能: キーボードから全ての機能を利用可能にする
+
+このガイドラインは、キーボード制御に頼るユーザーがコアウェブサイト機能にアクセスできるように、他の手段(例えば、マウス)に加えてキーボードを介してそれらを利用可能にする必要性をカバーする。
+
+| 達成基準 | 基準への準拠方法 | 実用的なリソース |
+| ------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 2.1.1 キーボード (A) | キーボードを使用して行えない場合(例えば、フリーハンド描画)を除き、全ての機能はキーボード制御を使用してアクセス可能であるべきです。 可能な場合は組み込みのコントロールを使用するべきで(例えば、フォームコントロール間のタブ移動)、必要な場合にのみカスタム機能を組み込むべきです。 | [UI コントロール](/ja/docs/Learn/Accessibility/HTML#UI_controls)と[キーボード・アクセシビリティを取り戻す](/ja/docs/Learn/Accessibility/HTML#Building_keyboard_accessibility_back_in)を参照してください。 |
+| 2.1.2 キーボードを閉じ込めない (A) | キーボードを使用してある機能のセクションに入るときは、キーボード**のみ**を使用してそのセクションから再び出ることができるべきです。 例えば、フォーカスのあるボタンの上で Enter / Return を押してオプションウィンドウを開いたら、キーボードを使ってそのウィンドウを再び閉じてメインコンテンツに戻ることができるべきです。キーボードユーザーをアプリの特定のセクションに閉じ込めないようにするために、これは非常に重要です。 | |
+| 2.1.3 キーボード — 全機能 (AAA) | これは、基準 2.1.1 を超えるさらなるステップです。 AAA 準拠を達成するために、全ての機能はキーボードコントロールを使用してアクセス可能であるべきです — 例外なく。 | [UI コントロール](/ja/docs/Learn/Accessibility/HTML#UI_controls)と[キーボード・アクセシビリティを取り戻す](/ja/docs/Learn/Accessibility/HTML#Building_keyboard_accessibility_back_in)を参照してください。 |
+| 2.1.4 文字キーショートカット (A) [2.1 で追加](https://www.w3.org/TR/WCAG21/#new-features-in-wcag-2-1)(英語) | 単一文字キーショートカットが存在する場合は、少なくとも次の 1 つが当てはまります。 単一文字キーショートカットは、オフにする、再マップする、または関連するユーザーインターフェース・コンポーネントにフォーカスがあるときにのみアクティブにすることができます。 | [文字キーショートカットを理解する](https://www.w3.org/WAI/WCAG21/Understanding/character-key-shortcuts.html)(英語) |
+
+> **Note:** [ガイドライン 2.1: キーボードアクセス可能: キーボードから全ての機能を利用可能にする](https://www.w3.org/TR/WCAG21/#keyboard-accessible)(英語)に関する WCAG の説明も参照してください。
+
+## ガイドライン 2.2 — 十分な時間: コンテンツを読んで使用するのに十分な時間をユーザーに提供する
+
+このガイドラインでは、機能に制限時間があるかもしれない状況について説明します。 例えば、セキュリティ上の理由から、購入を制限時間内に完了する必要がある場合があります。
+
+| 達成基準 | 基準への準拠方法 | 実用的なリソース |
+| ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- |
+| 2.2.1 タイミングは調整可能 (A) | 制限時間付きの機能の場合(例えば、ホテルやフライトの予約を完了するには制限時間があることが多い)、ユーザーには、制限時間の調整、延長、または無効化を許可するコントロールを与えるべきです。これに対する例外は、20 時間を超える制限時間のある活動、リアルタイムイベント(例えば、ライブマルチプレイヤーゲーム)、および制限時間が必要で、無効にされた場合に無効になるその他の活動です。 | |
+| 2.2.2 一時停止、停止、非表示 (A) | 自動的に開始され、5 秒以上続き、他のコンテンツと一緒に表示されるコンテンツを移動や点滅させるには、一時停止、停止、または非表示にするためのコントロールを提供するべきです。 これは、体験に不可欠なコンテンツの移動や点滅には適用されません。 例としては、テキストのスクロールと動画があります。自動的に開始され、他のコンテンツと一緒に表示される自動更新情報の場合は、一時停止、停止、または非表示にするため、あるいは更新頻度を制御するためのコントロールを提供するべきです。 これは、体験に不可欠なコンテンツの自動更新には当てはまりません。 例としては、回転木馬や回転アナウンスがあります。 | |
+| 2.2.3 制限時間なし (AAA) | これは基準 2.2.1 に基づいており、AAA 適合に合格したいコンテンツには制限時間がないことを述べています。 | |
+| 2.2.4 中断を抑止する (AAA) | アラートやインタースティシャル広告などによる中断には、緊急アラートでない限り、それらを抑制または延期するための機能を用意するべきです。 | |
+| 2.2.5 再認証 (AAA) | ウェブアプリの使用中に認証セッションが期限切れになった場合、ユーザーはデータを失うことなく再認証して使用を続けることができます。 | |
+| 2.2.6 タイムアウト (AAA) [2.1 で追加](https://www.w3.org/TR/WCAG21/#new-features-in-wcag-2-1)(英語) | タイムアウトした場合(ユーザーの非活動状態が原因で)、プロセスの開始時にユーザーに警告するので、タイムアウトが存在していても驚くことはありません(または、20 時間の非活動状態の後にのみタイムアウトするようにします)。 | [タイムアウトを理解する](https://www.w3.org/WAI/WCAG21/Understanding/timeouts.html)(英語) |
+
+> **Note:** [ガイドライン 2.2: 十分な時間: コンテンツを読んで使用するのに十分な時間をユーザーに提供する](https://www.w3.org/TR/WCAG21/#enough-time)(英語)に関する WCAG の説明も参照してください。
+
+## ガイドライン 2.3 — 発作と身体的反応: 発作や身体的反応を引き起こすことが知られている方法でコンテンツをデザインしないでください
+
+これは、変更しないとてんかんなどの症状のあるユーザーに発作を起こす可能性がある、または前庭障碍などの症状のあるユーザーに身体的反応(めまいなど)を引き起こす可能性があるコンテンツを意味します。
+
+| 達成基準 | 基準への準拠方法 | 実用的なリソース |
+| ----------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
+| 2.3.1 3 回の閃光、またはしきい値を下回る (A) | コンテンツに 1 秒間に 3 回以上の閃光を放つアスペクトが含まれていない、または閃光を放つコンテンツが許容できる[閃光および赤色閃光のしきい値](http://www.w3.org/TR/WCAG20/#general-thresholddef)(英語)を下回っている。 | |
+| 2.3.2 3 回の閃光 (AAA) | コンテンツには、1 秒間に 3 回以上の閃光を放つアスペクトは含まれていません。 | |
+| 2.3.3 インタラクションによるアニメーション (AAA) [2.1 で追加](https://www.w3.org/TR/WCAG21/#new-features-in-wcag-2-1)(英語) | ユーザーがインタラクションによるアニメーションを無効にできるようにする(アニメーションが必須でない限り)。 | [インタラクションによるアニメーションを理解する](https://www.w3.org/TR/WCAG21/#animation-from-interactions)(英語) |
+
+> **Note:** [ガイドライン 2.3: 発作と身体的反応: 発作や身体的反応を引き起こすことが知られている方法でコンテンツをデザインしないでください](https://www.w3.org/TR/WCAG21/#seizures-and-physical-reactions)(英語)に関する WCAG の説明も参照してください。
+
+## ガイドライン 2.4 — ナビゲート可能: ユーザーがナビゲートし、コンテンツを見つけ、どこにいるのかを判断するのに役立つ方法を提供する
+
+このガイドラインの下での適合基準は、ユーザーが自分自身を指向し、サイトの現在のページや他のページで探しているコンテンツと機能を見つけることが期待できる方法に関連しています。
+
+| 達成基準 | 基準への準拠方法 | 実用的なリソース |
+| ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 2.4.1 ブロックのバイパス (A) | 繰り返される機能(会社のロゴやナビゲーションなど)を通り過ぎて、ユーザーがページにあるメインコンテンツや機能に直接スキップできるようにするメカニズムを提供するべきです。 これはしばしば、スキップリンク("skip links")を使用して達成されます — メインコンテンツにリンクする CSS によって隠されたリンクはページのソースのトップに置かれます。見出しと意味論のコンテナの適切な構造(例えば、{{htmlelement("section")}}、{{htmlelement("aside")}} など)がナビゲートするために提供されている場合は、追加のスキップリンクは必要ありません。 | スキップリンクのセクションを追加する必要があります。 |
+| 2.4.2 ページタイトルを含める (A) | 各ウェブページには有益な {{htmlelement("title")}} を含めるべきです。 そのコンテンツは、ページのコンテンツや目的を説明しています。 | [タイトルの追加](/ja/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML#Adding_a_title)を参照してください。 |
+| 2.4.3 論理的なフォーカスの順序 (A) | フォーカス可能なページ機能(例えば、リンク、ボタン、フォーム入力)の「タブ順序」は論理的に意味があり、そのページはまだ非晴眼者でもキーボードのユーザーでも使用可能であることを意味します。 | コントロールへのタブ移動に関する一般的なアドバイスについては、[UI コントロール](/ja/docs/Learn/Accessibility/HTML#UI_controls)を参照してください。 要素を独特なレイアウトに配置する必要がある場合は、ソースの順序が適切であることを確認してから、[配置](/ja/docs/Learn/CSS/CSS_layout/Positioning)などの CSS 機能を使用してレイアウトを扱うことをお勧めします。 |
+| 2.4.4 リンクの目的(コンテキストにそった)(A) | リンクの目的や行き先は、リンクテキストから、またはその周囲(例えば、周囲のテキスト)から決定することができます。 例外は、リンクの目的が全てのユーザーにとってあいまいな場合です(これに関する有用な説明については、[一般的にユーザーにとってあいまい](https://www.w3.org/TR/WCAG20/#ambiguouslinkdef)(英語)を参照してください)。 | [わかりやすいテキストラベル](/ja/docs/Learn/Accessibility/HTML#Meaningful_text_labels)を参照してください。 また、同じテキストの複数のコピーが異なる場所にリンクされている場合は最小限に抑えるべきです。 これはスクリーンリーダーのユーザーにとって問題となる可能性があり、リンクの一覧がコンテキストから外れて表示されることがよくあります — 全てが「ここをクリック」、「ここをクリック」、「ここをクリック」とラベル付けされたいくつかのリンクは混乱を招くでしょう。 |
+| 2.4.5 複数のナビゲーションメカニズム (AA) | ウェブサイト上のページを見つけるために少なくとも二つの一般的なナビゲーションメカニズム、例えば、ナビゲーションメニュー、パンくずリスト、サイト検索、サイトマップ、関連リンクのリストなどを提供するべきです。これに対する唯一の例外は、ページがプロセスの 1 ステップである場合で、論理的には前後のステップへのリンクのみを持つべきです。 | これらのメカニズムのほとんどは、単純な HTML 機能を使用して作成できます。 例えば、[検索フィールド](/ja/docs/Learn/HTML/Forms/The_native_form_widgets#Search_field)、[ナビゲーションメニューの作成](/ja/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks#Active_learning_creating_a_navigation_menu)、[ボタンとしてのリンクのスタイリング](/ja/docs/Learn/CSS/Styling_text/Styling_links#Styling_links_as_buttons)を参照してください。 |
+| 2.4.6 見出しとラベル (AA) | 見出し(例えば、{{htmlelement("h2")}})および {{htmlelement("label")}} 要素は、それらが説明していると思われるコンテンツおよびフォーム要素の目的を明確に説明しています。 | [UI コントロール](/ja/docs/Learn/Accessibility/HTML#UI_controls)、[わかりやすいテキストラベル](/ja/docs/Learn/Accessibility/HTML#Meaningful_text_labels)、[見出しと段落の基本](/ja/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals#The_basics_Headings_and_Paragraphs)、[\ 要素](/ja/docs/Learn/HTML/Forms/How_to_structure_an_HTML_form#The_%3Clabel%3E_element)を参照してください。構造上、それらを簡単に区別できない場合を除き、見出しやラベルの重複は避けるべきです(例えば、「詳細情報」が複数ある場合)。 |
+| 2.4.7 フォーカス可能な要素に対する可視フォーカス (AA) | リンクやフォーム入力などのフォーカス可能な要素間をタブ移動するときは、どの要素に現在フォーカスがあるかを示す視覚的なインジケーターがあるはずです。 これは通常、デフォルトでは点線や青のアウトラインです(ブラウザ、プラットフォームなどによって異なります)が、CSS によって上書きすることができます。 | [ネイティブなキーボード・アクセシビリティの使用](/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Using_native_keyboard_accessibility)を参照してください。 |
+| 2.4.8 サイト内の場所 (AAA) | 複雑なサイトまたは一連のステップ内のページにいる場合は、パンくずリスト、サイトマップ、「Form page 2 of 10」といったテキストなど、サイト内の場所を示すインジケーターをユーザーに提示するべきです。 | |
+| 2.4.9 リンクの目的(リンクのみ) (AAA) | この基準は 2.4.4 に基づいており、AAA に準拠するためには、コンテキストから外れていてもリンクの目的やリンク先はリンクテキストのみから決定可能であるべきであると述べています。 | [わかりやすいテキストラベル](/ja/docs/Learn/Accessibility/HTML#Meaningful_text_labels)を参照してください。 また、同じテキストの複数のコピーが異なる場所にリンクされている場合は最小限に抑えるべきです。 これはスクリーンリーダーのユーザーにとって問題となる可能性があり、リンクの一覧がコンテキストから外れて表示されることがよくあります — 全てが「ここをクリック」、「ここをクリック」、「ここをクリック」とラベル付けされたいくつかのリンクは混乱を招くでしょう。 |
+| 2.4.10 セクション見出し (AAA) | 便利な文書構造を作成するだけでなく、見出しも正確に記述し、コンテンツ領域を論理的なセクションに分割するべきです。この基準は、一般的なウェブコンテンツの見出しとタイトルを指すことに注意してください(例えば、テキストコンテンツ内の見出し)。 ユーザーインターフェースの見出しとタイトルは、基準 4.1.2 で扱われる特別なケースです。 | [見出しと段落の基本](/ja/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals#The_basics_Headings_and_Paragraphs)を参照してください。 |
+
+> **Note:** [ガイドライン 2.4: ナビゲート可能:ユーザーがナビゲートし、コンテンツを見つけ、どこにいるのかを判断するのに役立つ方法を提供する](https://www.w3.org/TR/WCAG21/#navigable)(英語)に関する WCAG の説明も参照してください。
+
+## ガイドライン 2.5 — 入力様式: キーボードを超えた様々な入力を通して機能をユーザーが操作しやすくする
+
+このガイドラインの適合基準は、ユーザーがキーボードやマウス以外のさまざまな入力方法(タッチスクリーン、音声、デバイスの動き、その他の入力デバイスを含む)を使用してデジタルテクノロジーと対話できることを保証します。
+
+| 達成基準 | 基準への準拠方法 | 実用的なリソース |
+| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
+| 2.5.1 ポインタジェスチャー (A) [2.1 で追加](https://www.w3.org/TR/WCAG21/#new-features-in-wcag-2-1)(英語) | ポインタで操作できる全ての機能は、シングルポイントのアクションで操作できます。 パスベースやマルチポイントのジェスチャーは、機能を操作するために必要ではありません。 例外があります。 | [ポインタジェスチャーを理解する](https://www.w3.org/WAI/WCAG21/Understanding/pointer-gestures.html)(英語) |
+| 2.5.2 ポインタキャンセル (A) [2.1 で追加](https://www.w3.org/TR/WCAG21/#new-features-in-wcag-2-1)(英語) | シングルポインタを使用して操作できる機能については、次のうち少なくとも 1 つが当てはまります。 ダウンイベントなし、中止や元に戻す、アップリバーサル、必要不可欠。 | [ポインタキャンセルを理解する](https://www.w3.org/WAI/WCAG21/Understanding/pointer-cancellation.html)(英語) |
+| 2.5.3 名前のラベル (A) [2.1 で追加](https://www.w3.org/TR/WCAG21/#new-features-in-wcag-2-1)(英語) | 表示可能なテキストラベルを含む各ユーザーインターフェイス・コンポーネントについて、アクセス可能な名前がラベルの表示可能なテキストと一致する(または含まれる)ことを確認します。 | [名前のラベルを理解する](https://www.w3.org/WAI/WCAG21/Understanding/label-in-name.html)(英語) |
+| 2.5.4 動きによる作動 (A) [2.1 で追加](https://www.w3.org/TR/WCAG21/#new-features-in-wcag-2-1)(英語) | a)デバイスの動き(揺れ、傾きのような)、または b)デバイスのセンサー(カメラを含む)によって検出されたユーザーのジェスチャーによって引き起こされる可能性のある機能について、次の両方が当てはまることを確認します。 1) 動きによる作動を無効にすることができ、2) 機能をデバイスの動きやユーザーのジェスチャーを使用せずに動作させることができる。 例外があります。 | [動きによる作動を理解する](https://www.w3.org/WAI/WCAG21/Understanding/motion-actuation.html)(英語) |
+| 2.5.5 ターゲットサイズ (AAA) [2.1 で追加](https://www.w3.org/TR/WCAG21/#new-features-in-wcag-2-1)(英語) | アクション可能アイテムのタッチターゲットのサイズは、幅と高さの両方で少なくとも 44 CSS ピクセルにする必要があります。 例外があります。 | [ターゲットサイズを理解する](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html)(英語) |
+| 2.5.6 同時入力メカニズム (AAA) [2.1 で追加](https://www.w3.org/TR/WCAG21/#new-features-in-wcag-2-1)(英語) | タッチスクリーン、キーボード、マウス、音声コマンド、その他の入力デバイスを含むデジタルコンテンツと対話するときに、さまざまな入力モードを使用したり切り替えたりできることを確認します。 本質的な例外があります。 | [同時入力メカニズムを理解する](https://www.w3.org/WAI/WCAG21/Understanding/concurrent-input-mechanisms.html)(英語) |
+
+> **Note:** [ガイドライン 2.5: 入力様式: キーボードを超えた様々な入力を通して機能をユーザーが操作しやすくする](https://www.w3.org/TR/WCAG21/#input-modalities)(英語)に関する WCAG の説明も参照してください。
+
+## 関連情報
+
+- [WCAG](/ja/docs/Web/Accessibility/Understanding_WCAG)
+
+ 1. [知覚可能](/ja/docs/Web/Accessibility/Understanding_WCAG/Perceivable)
+ 2. 操作可能
+ 3. [理解可能](/ja/docs/Web/Accessibility/Understanding_WCAG/Understandable)
+ 4. [堅牢](/ja/docs/Web/Accessibility/Understanding_WCAG/Robust)
diff --git a/files/ja/web/accessibility/understanding_wcag/perceivable/index.html b/files/ja/web/accessibility/understanding_wcag/perceivable/index.html
deleted file mode 100644
index be2bc25ace368e..00000000000000
--- a/files/ja/web/accessibility/understanding_wcag/perceivable/index.html
+++ /dev/null
@@ -1,357 +0,0 @@
----
-title: 知覚可能
-slug: Web/Accessibility/Understanding_WCAG/Perceivable
-tags:
- - Accessibility
- - Principle 1
- - WCAG
- - Web Content Accessibility Guidelines
- - contrast
- - different presentation
- - text alternatives
- - time-based media
-translation_of: Web/Accessibility/Understanding_WCAG/Perceivable
----
-この記事では、ウェブコンテンツ・アクセシビリティガイドライン(WCAG)2.0 および 2.1 の知覚可能 原則に概説されている達成基準に準拠するようにウェブコンテンツを作成する方法についての実用的なアドバイスを提供します。 知覚可能とは、ユーザーが自分の感覚の1つ以上を使用して何らかの方法でそれを知覚できなければならないということです。
-
-
-
-ガイドライン 1.1 — 非テキストコンテンツのための代替テキストの提供
-
-ここで重要なのは、テキストならば障碍のある人が使用できる他の形式に変換できることです。 例えば、スクリーンリーダーで話させたり、ズームインしたり、点字ディスプレイに表示したりできます。 非テキストコンテンツとは、画像、音声、動画などのマルチメディアを指します。
-
-
-
-
- 達成基準
- 基準への準拠方法
- 実用的なリソース
-
-
-
-
- 1.1.1 同等のテキストを提供する (A)
- 意味のある内容を伝える全ての画像は、適切な代替テキストを与えられるべきです。
- 代替テキスト。
-
-
- 複雑な画像や図表には、同じページ上またはリンク先のいずれかにアクセス可能な代替手段を用意するべきです。 {{htmlattrxref("longdesc","img")}} 属性ではなく通常のリンクを使用してください。
-
- テキストの説明や、アクセス可能なデータ表がうまくいくかもしれません(HTML 表の高度な機能とアクセシビリティ を参照)。 longdesc
反対論については、その他の代替テキストの仕組み も参照してください。
-
-
-
- マルチメディアコンテンツ(例えば、音声や動画)は、少なくともわかりやすい識別が利用できるべきです(例えば、キャプションまたは同様のもの)。
-
- 静的キャプションの選択肢については代替テキスト を、その他の選択肢についてはオーディオトランスクリプト 、 ビデオテキストトラック 、その他のマルチメディアコンテンツ を参照してください。
-
-
-
- フォーム要素やボタンのような UI コントロールには、その目的を説明するテキストラベルを付けるべきです。
- ボタンは簡単です — ボタンのテキストがボタンの機能を説明していることを確認してください(例えば、<button>画像のアップロード</button>
)。 他の UI コントロールの詳細については、UI コントロール を参照してください。
-
-
- 支援技術には見えない方法で、装飾的な(コンテンツではない)画像、動画などを実装すると、ユーザーを混乱させません。
-
- 装飾画像は CSS 背景画像を使用して実装する必要があります(背景 を参照)。 {{htmlelement("img")}} 要素を介して画像を含める必要がある場合は、空白の alt(alt=""
)を付けます。 そうしないと、スクリーンリーダーがファイルパスなどを読み上げようとする可能性があります。
-
- 自動再生する背景の動画や音声を含める場合は、できるだけ目立たないようにします。 コンテンツのように見せたり鳴らさないでください。 また、無効にするコントロールを提供してください。 理想的には、それをまったく含めないでください。
-
-
-
-
-
-
-
-ガイドライン 1.2 — タイムベースト・メディアのための代替テキストの提供
-
-タイムベースト・メディアは、持続期間を有するマルチメディア、すなわち音声および動画を指します。 また、それらの音声や動画が既存のテキストコンテンツの代替を兼ねる場合は、別の代替テキストを提供する必要はありません。
-
-
-
-
- 達成基準
- 基準への準拠方法
- 実用的なリソース
-
-
- 1.2.1 記録済みの音声のみおよび動画のみのコンテンツに代わるものを提供する (A)
- トランスクリプトは、録音済みの音声のみのメディアに提供するべきで、トランスクリプトまたは音声解説は、録画済みの動画のみのメディア(すなわち、サイレントビデオ)に提供するべきです。
- トランスクリプト情報については、オーディオトランスクリプト を参照してください。 音声解説のチュートリアルはまだありません。
-
-
- 1.2.2 ウェブベースの動画にキャプションを付ける (A)
- ウェブ上に表示される動画(例えば、HTML5 動画)には、キャプションを付けるべきです。 これは、動画の音声部分が聞こえない人々のためのものです。
- HTML5 動画のキャプションについてはビデオテキストトラック を、その他のテクノロジについてはその他のマルチメディアコンテンツ を参照してください。 独自の字幕とクローズドキャプションを追加する (YouTube、英語)も参照してください。
-
-
- 1.2.3 ウェブベースの動画にテキストトランスクリプトまたは音声解説を提供する (A)
- ウェブ上に提示される動画(例えば、HTML5 動画)のためのテキストトランスクリプトまたは音声解説を提供するべきです。 これは、動画の視覚的な部分を見ることができず、音声だけではコンテンツ全体を取得できない人々のためのものです。
- トランスクリプト情報については、オーディオトランスクリプト を参照してください。 音声解説のチュートリアルはまだありません。
-
-
- 1.2.4 生音声にキャプションを付ける (AA)
- 音声を含んだ全ての生のマルチメディア(ビデオ会議、生音声放送など)には、同期したキャプションを付けるべきです。
-
-
-
- 1.2.5 録画済み動画の音声解説を提供する (AA)
- 音声解説は、録画済み動画に対して提供するべきですが、既存の音声が動画によって表現された完全な意味を伝えない場合に限ります。
-
-
-
- 1.2.6 録音済み音声と同等の手話を提供する (AAA)
- 音声を含んだ記録済みコンテンツには、同等の手話動画を提供するべきです。
-
-
-
- 1.2.7 音声解説付きの拡張動画を提供する (AAA)
- 動画のタイミングの問題で音声解説を提供できない場合(例えば、音声解説を挿入するコンテンツに適切な間がない場合)(1.2.5 を参照)、挿入された間(と音声解説)を含んだ動画の代替バージョンを提供するべきです。
-
-
-
- 1.2.8 記録済みメディアの代替を提供する (AAA)
- 動画を特徴とする全てのコンテンツには、わかりやすいテキストトランスクリプトを提供する必要があります。 例えば、あなたが見ている映画のスクリプトなどです。 これは、コンテンツを聴くことができない聴覚障碍者のためのものです。
- トランスクリプト情報については、オーディオトランスクリプト を参照してください。
-
-
- 1.2.9 生音声用のトランスクリプトを提供する (AAA)
- 放送されている生音声のコンテンツのために、例えば、あなたが聞いている演劇やミュージカルのスクリプトのような説明文を提供するべきです。 これは、コンテンツを聴くことができない聴覚障碍者のためのものです。
- トランスクリプト情報については、オーディオトランスクリプト を参照してください。
-
-
-
-
-
-
-ガイドライン 1.3 — さまざまな方法で提示できるコンテンツの作成
-
-このガイドラインは、異なるニーズに柔軟に対応して、コンテンツがユーザーによってさまざまな方法で消費される能力について言及しています。
-
-
-
-
- 達成基準
- 基準への準拠方法
- 実用的なリソース
-
-
- 1.3.1 情報と関係 (A)
-
- いかなるコンテンツ構造 — またはコンテンツ間に作られた視覚的関係 — もまた、プログラム的に決定されるか、またはテキストの説明から推論され得ます。 これが関連する主な状況は次のとおりです。
-
-
- テキストラベルとそれが説明するフォーム要素は、{{htmlelement("label")}} 要素を使用して明確に関連付けられて、スクリーンリーダーなどが拾うことができます。
- 画像の代替テキスト — コンテンツ画像には、その画像の内容を明確に説明するテキストが含まれているべきです。 これは、プログラム的に関連付けることができます(例えば、{{htmlattrxref("alt","img")}} テキスト)。 そうでない場合は、関連付けるのは簡単です(例えば、それを説明し、そのすぐ隣に置きます)。 これは、たとえあなたが画像を見ることができなくても、完全な意味がまだ推測できることを意味するはずです。
- リスト — リスト項目の順序が重要で、順序付きリストを使用するべき場合({{htmlelement("ol")}})。
-
-
-
- HTML: アクセシビリティの基礎 全体には、これに関する情報が満載されていますが、特に優れた意味論 、UI コントロール 、代替テキスト を参照するべきです。
-
-
-
- 1.3.2 重要なコンテンツの順序 (A)
- 賢明で論理的な読み上げ順序は、たとえそれが独特な方法で視覚的に提示されていても、どんな内容に対しても決定しやすいはずです。 マークアップに関係なく、CSS を使用して独特なレイアウトスタイルを作成することで、正しい意味論的要素(見出し、段落など)を使用して順序を明確にするべきです。
- 繰り返しますが、HTML: アクセシビリティの基礎 を参照してください。
-
-
- 1.3.3 感覚的性質 (A)
-
- コントロールを操作したり、コンテンツを理解したりするための指示は、単一の感覚には依存しません — これは、その感覚に関連する障碍を持つ人々、またはその感覚をサポートしていないデバイスにとってアクセスできないことを証明するかもしれません。 だから、例えば、
-
-
- 「続けるために丸いボタンをクリックしてください」 — それがあなたが押す必要があるボタンであることは明らかであるように、ボタンは明確にラベル付けされるべきです。 複数のボタンがある場合は、それらの機能を区別するために全てが明確にラベル付けされていることを確認してください。
- 「ガイダンスに関する音声の説明を聞く」 — これは明らかに問題があります — 音声は聴覚障碍のある人にはアクセスできないのに対して、テキストは読むことができるだけでなく、必要に応じてスクリーンリーダーによって話させることもできます。
- 「メニューを表示するには、画面の右側からスワイプ」 — 一部のユーザーは、障碍のためや、デバイスがタッチをサポートしていないために、画面をスワイプできない可能性があります。 キーボードショートカットや、キーボードなどの手段でアクティブにできるボタンなどの代替手段を提供する必要があります。
-
-
-
-
注 : 色だけで指示を伝えることは関連していますが、異なるガイドラインでカバーされています — 1.4.1。
-
-
-
-
-
- 1.3.4 オリエンテーション (AA) 2.1 で追加 (英語)
- 特定のディスプレイの向きが重要でない限り、コンテンツの表示と操作はポートレートやランドスケープなどの単一のディスプレイの向きに制限されません。
-
- オリエンテーションを理解する (英語)
-
-
-
- 1.3.5 入力の目的の識別 (AA) 2.1 で追加 (英語)
-
-
-
- 53個の入力フィールド (英語)のリストに従って、プログラム的にフィールドの目的を識別してください。
-
- 入力の目的の識別を理解する (英語)
-
-
- 1.3.6 目的の識別 (AAA) 2.1 で追加 (英語)
- マークアップ言語を使用して実装されたコンテンツでは、ユーザーインターフェイス・コンポーネント、アイコン、およびリージョンの目的はプログラム的に決定できます。
- 目的の識別を理解する (英語)
-
-
-
-
-
-
-ガイドライン 1.4: 前景と背景の分離を含め、ユーザーがコンテンツを見たり聞いたりしやすくする
-
-このガイドラインは、コアコンテンツが背景や他の装飾から識別しやすいことを確認することに関するものです。 典型的な例は、色で(色のコントラストと指示を伝えるための色の使い方の両方が)、他の状況でも適用されます。
-
-
-
-
- 達成基準
- 基準への準拠方法
- 実用的なリソース
-
-
- 1.4.1 色の使い方 (A)
-
- 色だけを頼りにして情報を伝えるべきではありません — 例えば、フォームでは、必須フィールドに純粋に色(赤など)で印を付けることは絶対にしないでください。 代わりに(または同様に)、「必須」というラベルの付いたアスタリスクのようなものがより適切です。
-
- 色とそのコントラスト および複数のラベル を参照してください。
-
-
- 1.4.2 音声コントロール (A)
- 3 秒以上再生される音声の場合は、音声や動画の再生と一時停止、および音量のミュートや調整を行うためのアクセス可能なコントロールを用意する必要があります。
- ビデオプレーヤーのスタイリングの基本 に示すように、ネイティブの <button>
を使用してアクセス可能なキーボードコントロールを提供します。
-
-
- 1.4.3 最低限のコントラスト (AA)
-
- 背景と前景のコンテンツの間の色のコントラストは、読みやすさを確実なものとするための最低限のレベルであるべきです。
-
-
- テキストとその背景のコントラスト比は少なくとも 4.5:1 であるべきです。
- 見出し(またはそれよりも大きい)テキストの比は、少なくとも 3:1 であるべきです。 大きいテキストは、少なくとも 18 ポイント、または 14 ポイントの太字として定義されます。
-
-
- 色とそのコントラスト を参照してください。
-
-
- 1.4.4 テキストのサイズ変更 (AA)
- テキストサイズが2倍になったときに、ページは読みやすく使えるべきです。 つまり、デザインはレスポンシブであるべきで、テキストサイズを大きくしてもコンテンツにアクセス可能であることを意味します。
-
-
-
- 1.4.5 テキストの画像 (AA)
- テキストが仕事をするようなコンテンツを提示するために画像を使用してはいけません 。 例えば、画像がほとんどテキスト形式の場合、画像だけでなくテキストも使用して表現できます。
-
-
-
- 1.4.6 強化されたコントラスト (AAA)
-
- これは、基準 1.4.3 に従い、その上に構築されます。
-
-
- テキストとその背景のコントラスト比は少なくとも 7:1 であるべきです。
- 見出し(またはそれよりも大きい)テキストの比は少なくとも 4.5:1 であるべきです。 大きいテキストは、少なくとも 18 ポイント、または 14 ポイントの太字として定義されます。
-
-
-
-
-
- 1.4.7 背景音声は小さいか無い (AAA)
- 話し言葉を主な特徴とする録音済みの音声記録は、背景雑音を最小限に抑えるべきため、コンテンツを簡単に理解できます。
-
-
-
- 1.4.8 視覚的表現 (AAA)
-
- テキストコンテンツの表現では、次のことが当てはまります。
-
-
- 前景色と背景色は、ユーザーが選択できるようにするべきです。
- テキストブロックは、読みやすくするために、80 文字(またはグリフ)以下の幅にしてください。
- テキストは、両端揃えにするべきではありません(例えば、{{cssxref("text-align","text-align: justify;")}})。
- 行の高さは、段落内ではテキストサイズの 1.5 倍以上(例えば、{{cssxref("line-height","line-height: 1.5;")}})、段落間ではテキストサイズの 2.25 倍以上(例えば、{{cssxref("padding","padding: 2.25rem;")}})にするするべきです。
- テキストサイズが2倍になったときに、コンテンツのスクロールが必要になるべきではありません。
-
-
-
-
-
- 1.4.9 テキストの画像(例外なし) (AAA)
- テキストは、純粋に装飾である(すなわち、それがいかなる内容も伝えない)か、または他の方法で提示することができない限り、画像の一部として提示するべきではありません。
-
-
-
- 1.4.10 リフロー (AA) 2.1 で追加 (英語)
-
-
- 右から左への言語(英語など)や、左から右への言語(アラビア語など)の水平スクロール無し。
- 上から下への言語(日本語など)の垂直スクロール無し。
- 使用法や意味のために2次元レイアウトを必要とするコンテンツの部分を除く(大きなデータ表のように)。
-
-
- リフローを理解する (英語)
-
-
- 1.4.11 テキスト以外のコントラスト (AA) 2.1 で追加 (英語)
- ユーザーインターフェイス・コンポーネントとグラフィックオブジェクトの最低限のカラーコントラスト比は 3:1 です。
- テキスト以外のコントラストを理解する (英語)
-
-
- 1.4.12 テキストの間隔 (AA) 2.1 で追加 (英語)
-
- 次のスタイルを適用しても、コンテンツや機能が失われることはありません。
-
-
- 行の高さ(行間)をフォントサイズの 1.5 倍以上にします。
- 後続の段落との間隔をフォントサイズの 2 倍以上にします。
- 文字間隔(トラッキング)をフォントサイズの 0.12 倍以上にします。
- 単語間隔をフォントサイズの 0.16 倍以上にします。
-
-
- テキストの間隔を理解する (英語)
-
-
- 1.4.13 ホバーまたはフォーカスにおけるコンテンツ (AA) 2.1 で追加 (英語)
-
- 追加のコンテンツがホバーやキーボードフォーカスに連動して現れたり消えたりします。 この達成基準では、満たす必要がある次の3つの条件を指定します。
-
-
- 却下可能(閉じたり取り除くことが可能)。
- ホバリング可能(追加のコンテンツは、ポインタが上にあるときは消えません)。
- 永続的(追加のコンテンツは、ユーザーの操作なしでは消えません)。
-
-
- ホバーまたはフォーカスにおけるコンテンツを理解する (英語)
-
-
-
-
-
-
-
-
-関連情報
-
-
-
-
diff --git a/files/ja/web/accessibility/understanding_wcag/perceivable/index.md b/files/ja/web/accessibility/understanding_wcag/perceivable/index.md
new file mode 100644
index 00000000000000..bb2b6995b394ef
--- /dev/null
+++ b/files/ja/web/accessibility/understanding_wcag/perceivable/index.md
@@ -0,0 +1,558 @@
+---
+title: 知覚可能
+slug: Web/Accessibility/Understanding_WCAG/Perceivable
+tags:
+ - Accessibility
+ - Principle 1
+ - WCAG
+ - Web Content Accessibility Guidelines
+ - contrast
+ - different presentation
+ - text alternatives
+ - time-based media
+translation_of: Web/Accessibility/Understanding_WCAG/Perceivable
+---
+この記事では、ウェブコンテンツ・アクセシビリティガイドライン(WCAG)2.0 および 2.1 の**知覚可能**原則に概説されている達成基準に準拠するようにウェブコンテンツを作成する方法についての実用的なアドバイスを提供します。 知覚可能とは、ユーザーが自分の感覚の 1 つ以上を使用して何らかの方法でそれを知覚できなければならないということです。
+
+> **Note:** 知覚可能の W3C 定義とそのガイドラインおよび達成基準を読むには、[原則 1: 知覚可能 — 情報とユーザーインターフェイス・コンポーネントが、ユーザーが認識できる方法で提示可能である必要があります](https://www.w3.org/TR/WCAG21/#perceivable)(英語)を参照してください。
+
+## ガイドライン 1.1 — 非テキストコンテンツのための代替テキストの提供
+
+ここで重要なのは、テキストならば障碍のある人が使用できる他の形式に変換できることです。 例えば、スクリーンリーダーで話させたり、ズームインしたり、点字ディスプレイに表示したりできます。 非テキストコンテンツとは、画像、音声、動画などのマルチメディアを指します。
+
+
+
+
+ 達成基準
+ 基準への準拠方法
+ 実用的なリソース
+
+
+
+
+ 1.1.1 同等のテキストを提供する (A)
+
+ 意味のある内容を伝える全ての画像は、適切な代替テキストを与えられるべきです。
+
+
+ 代替テキスト。
+
+
+
+
+ 複雑な画像や図表には、同じページ上またはリンク先のいずれかにアクセス可能な代替手段を用意するべきです。
+ {{htmlattrxref("longdesc","img")}}
+ 属性ではなく通常のリンクを使用してください。
+
+
+
+ テキストの説明や、アクセス可能なデータ表がうまくいくかもしれません(HTML 表の高度な機能とアクセシビリティ を参照)。 longdesc
反対論については、その他の代替テキストの仕組み も参照してください。
+
+
+
+
+
+ マルチメディアコンテンツ(例えば、音声や動画)は、少なくともわかりやすい識別が利用できるべきです(例えば、キャプションまたは同様のもの)。
+
+
+
+ 静的キャプションの選択肢については代替テキスト を、その他の選択肢についてはオーディオトランスクリプト 、
+ ビデオテキストトラック 、その他のマルチメディアコンテンツ を参照してください。
+
+
+
+
+
+ フォーム要素やボタンのような UI
+ コントロールには、その目的を説明するテキストラベルを付けるべきです。
+
+
+ ボタンは簡単です —
+ ボタンのテキストがボタンの機能を説明していることを確認してください(例えば、<button>画像のアップロード</button>
)。
+ 他の UI コントロールの詳細については、UI コントロール を参照してください。
+
+
+
+
+ 支援技術には見えない方法で、装飾的な(コンテンツではない)画像、動画などを実装すると、ユーザーを混乱させません。
+
+
+
+ 装飾画像は CSS 背景画像を使用して実装する必要があります(背景 を参照)。 {{htmlelement("img")}}
+ 要素を介して画像を含める必要がある場合は、空白の
+ alt(alt=""
)を付けます。
+ そうしないと、スクリーンリーダーがファイルパスなどを読み上げようとする可能性があります。
+
+
+ 自動再生する背景の動画や音声を含める場合は、できるだけ目立たないようにします。
+ コンテンツのように見せたり鳴らさないでください。
+ また、無効にするコントロールを提供してください。
+ 理想的には、それをまったく含めないでください。
+
+
+
+
+
+
+> **Note:** [ガイドライン 1.1: 代替テキスト](https://www.w3.org/TR/WCAG21/#text-alternatives)(英語)に関する WCAG の説明も参照してください。
+
+## ガイドライン 1.2 — タイムベースト・メディアのための代替テキストの提供
+
+タイムベースト・メディアは、持続期間を有するマルチメディア、すなわち音声および動画を指します。 また、それらの音声や動画が既存のテキストコンテンツの代替を兼ねる場合は、別の代替テキストを提供する必要はありません。
+
+| 達成基準 | 基準への準拠方法 | 実用的なリソース |
+| ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 1.2.1 記録済みの音声のみおよび動画のみのコンテンツに代わるものを提供する (A) | トランスクリプトは、録音済みの音声のみのメディアに提供するべきで、トランスクリプトまたは音声解説は、録画済みの動画のみのメディア(すなわち、サイレントビデオ)に提供するべきです。 | トランスクリプト情報については、[オーディオトランスクリプト](/ja/docs/Learn/Accessibility/Multimedia#Audio_transcripts)を参照してください。 音声解説のチュートリアルはまだありません。 |
+| 1.2.2 ウェブベースの動画にキャプションを付ける (A) | ウェブ上に表示される動画(例えば、HTML5 動画)には、キャプションを付けるべきです。 これは、動画の音声部分が聞こえない人々のためのものです。 | HTML5 動画のキャプションについては[ビデオテキストトラック](/ja/docs/Learn/Accessibility/Multimedia#Video_text_tracks)を、その他のテクノロジについては[その他のマルチメディアコンテンツ](/ja/docs/Learn/Accessibility/Multimedia#Other_multimedia_content)を参照してください。 [独自の字幕とクローズドキャプションを追加する](https://support.google.com/youtube/answer/2734796?hl=en)(YouTube、英語)も参照してください。 |
+| 1.2.3 ウェブベースの動画にテキストトランスクリプトまたは音声解説を提供する (A) | ウェブ上に提示される動画(例えば、HTML5 動画)のためのテキストトランスクリプトまたは音声解説を提供するべきです。 これは、動画の視覚的な部分を見ることができず、音声だけではコンテンツ全体を取得できない人々のためのものです。 | トランスクリプト情報については、[オーディオトランスクリプト](/ja/docs/Learn/Accessibility/Multimedia#Audio_transcripts)を参照してください。 音声解説のチュートリアルはまだありません。 |
+| 1.2.4 生音声にキャプションを付ける (AA) | 音声を含んだ全ての生のマルチメディア(ビデオ会議、生音声放送など)には、同期したキャプションを付けるべきです。 | |
+| 1.2.5 録画済み動画の音声解説を提供する (AA) | 音声解説は、録画済み動画に対して提供するべきですが、既存の音声が動画によって表現された完全な意味を伝えない場合に限ります。 | |
+| 1.2.6 録音済み音声と同等の手話を提供する (AAA) | 音声を含んだ記録済みコンテンツには、同等の手話動画を提供するべきです。 | |
+| 1.2.7 音声解説付きの拡張動画を提供する (AAA) | 動画のタイミングの問題で音声解説を提供できない場合(例えば、音声解説を挿入するコンテンツに適切な間がない場合)(1.2.5 を参照)、挿入された間(と音声解説)を含んだ動画の代替バージョンを提供するべきです。 | |
+| 1.2.8 記録済みメディアの代替を提供する (AAA) | 動画を特徴とする全てのコンテンツには、わかりやすいテキストトランスクリプトを提供する必要があります。 例えば、あなたが見ている映画のスクリプトなどです。 これは、コンテンツを聴くことができない聴覚障碍者のためのものです。 | トランスクリプト情報については、[オーディオトランスクリプト](/ja/docs/Learn/Accessibility/Multimedia#Audio_transcripts)を参照してください。 |
+| 1.2.9 生音声用のトランスクリプトを提供する (AAA) | 放送されている生音声のコンテンツのために、例えば、あなたが聞いている演劇やミュージカルのスクリプトのような説明文を提供するべきです。 これは、コンテンツを聴くことができない聴覚障碍者のためのものです。 | トランスクリプト情報については、[オーディオトランスクリプト](/ja/docs/Learn/Accessibility/Multimedia#Audio_transcripts)を参照してください。 |
+
+> **Note:** [ガイドライン 1.2: タイムベースト・メディア: タイムベースト・メディアに代わるものを提供する](https://www.w3.org/TR/WCAG21/#time-based-media)(英語)に関する WCAG の説明も参照してください。
+
+## ガイドライン 1.3 — さまざまな方法で提示できるコンテンツの作成
+
+このガイドラインは、異なるニーズに柔軟に対応して、コンテンツがユーザーによってさまざまな方法で消費される能力について言及しています。
+
+
+
+
+ 達成基準
+ 基準への準拠方法
+ 実用的なリソース
+
+
+ 1.3.1 情報と関係 (A)
+
+
+ いかなるコンテンツ構造 — またはコンテンツ間に作られた視覚的関係 —
+ もまた、プログラム的に決定されるか、またはテキストの説明から推論され得ます。
+ これが関連する主な状況は次のとおりです。
+
+
+
+ テキストラベルとそれが説明するフォーム要素は、{{htmlelement("label")}}
+ 要素を使用して明確に関連付けられて、スクリーンリーダーなどが拾うことができます。
+
+
+ 画像の代替テキスト —
+ コンテンツ画像には、その画像の内容を明確に説明するテキストが含まれているべきです。
+ これは、プログラム的に関連付けることができます(例えば、{{htmlattrxref("alt","img")}}
+ テキスト)。
+ そうでない場合は、関連付けるのは簡単です(例えば、それを説明し、そのすぐ隣に置きます)。
+ これは、たとえあなたが画像を見ることができなくても、完全な意味がまだ推測できることを意味するはずです。
+
+
+ リスト —
+ リスト項目の順序が重要で、順序付きリストを使用するべき場合({{htmlelement("ol")}})。
+
+
+
+
+
+ HTML: アクセシビリティの基礎 全体には、これに関する情報が満載されていますが、特に優れた意味論 、UI コントロール 、代替テキスト を参照するべきです。
+
+
+
+
+ 1.3.2 重要なコンテンツの順序 (A)
+
+ 賢明で論理的な読み上げ順序は、たとえそれが独特な方法で視覚的に提示されていても、どんな内容に対しても決定しやすいはずです。
+ マークアップに関係なく、CSS
+ を使用して独特なレイアウトスタイルを作成することで、正しい意味論的要素(見出し、段落など)を使用して順序を明確にするべきです。
+
+
+ 繰り返しますが、HTML: アクセシビリティの基礎 を参照してください。
+
+
+
+ 1.3.3 感覚的性質 (A)
+
+
+ コントロールを操作したり、コンテンツを理解したりするための指示は、単一の感覚には依存しません
+ —
+ これは、その感覚に関連する障碍を持つ人々、またはその感覚をサポートしていないデバイスにとってアクセスできないことを証明するかもしれません。
+ だから、例えば、
+
+
+
+ 「続けるために丸いボタンをクリックしてください」 —
+ それがあなたが押す必要があるボタンであることは明らかであるように、ボタンは明確にラベル付けされるべきです。
+ 複数のボタンがある場合は、それらの機能を区別するために全てが明確にラベル付けされていることを確認してください。
+
+
+ 「ガイダンスに関する音声の説明を聞く」 —
+ これは明らかに問題があります —
+ 音声は聴覚障碍のある人にはアクセスできないのに対して、テキストは読むことができるだけでなく、必要に応じてスクリーンリーダーによって話させることもできます。
+
+
+ 「メニューを表示するには、画面の右側からスワイプ」 —
+ 一部のユーザーは、障碍のためや、デバイスがタッチをサポートしていないために、画面をスワイプできない可能性があります。
+ キーボードショートカットや、キーボードなどの手段でアクティブにできるボタンなどの代替手段を提供する必要があります。
+
+
+
+
+ 注 :
+ 色だけで指示を伝えることは関連していますが、異なるガイドラインでカバーされています
+ — 1.4.1。
+
+
+
+
+
+
+
+ 1.3.4 オリエンテーション (AA)
+ 2.1 で追加 (英語)
+
+
+ 特定のディスプレイの向きが重要でない限り、コンテンツの表示と操作はポートレートやランドスケープなどの単一のディスプレイの向きに制限されません。
+
+
+
+ オリエンテーションを理解する (英語)
+
+
+
+
+
+ 1.3.5 入力の目的の識別 (AA)
+ 2.1 で追加 (英語)
+
+
+
+
+ 53個の入力フィールド (英語)のリストに従って、プログラム的にフィールドの目的を識別してください。
+
+
+
+ 入力の目的の識別を理解する (英語)
+
+
+
+
+ 1.3.6 目的の識別 (AAA)
+ 2.1 で追加 (英語)
+
+
+ マークアップ言語を使用して実装されたコンテンツでは、ユーザーインターフェイス・コンポーネント、アイコン、およびリージョンの目的はプログラム的に決定できます。
+
+
+ 目的の識別を理解する (英語)
+
+
+
+
+
+> **Note:** [ガイドライン 1.3: 適応可能: 情報や構造を失うことなくさまざまな方法で提示できるコンテンツを作成する](https://www.w3.org/TR/WCAG21/#adaptable)(英語)に関する WCAG の説明も参照してください。
+
+## ガイドライン 1.4: 前景と背景の分離を含め、ユーザーがコンテンツを見たり聞いたりしやすくする
+
+このガイドラインは、コアコンテンツが背景や他の装飾から識別しやすいことを確認することに関するものです。 典型的な例は、色で(色のコントラストと指示を伝えるための色の使い方の両方が)、他の状況でも適用されます。
+
+
+
+
+ 達成基準
+ 基準への準拠方法
+ 実用的なリソース
+
+
+ 1.4.1 色の使い方 (A)
+
+
+ 色だけを頼りにして情報を伝えるべきではありません —
+ 例えば、フォームでは、必須フィールドに純粋に色(赤など)で印を付けることは絶対にしないでください。
+ 代わりに(または同様に)、「必須」というラベルの付いたアスタリスクのようなものがより適切です。
+
+
+
+ 色とそのコントラスト および複数のラベル を参照してください。
+
+
+
+ 1.4.2 音声コントロール (A)
+
+ 3
+ 秒以上再生される音声の場合は、音声や動画の再生と一時停止、および音量のミュートや調整を行うためのアクセス可能なコントロールを用意する必要があります。
+
+
+ ビデオプレーヤーのスタイリングの基本 に示すように、ネイティブの
+ <button>
+ を使用してアクセス可能なキーボードコントロールを提供します。
+
+
+
+ 1.4.3 最低限のコントラスト (AA)
+
+
+ 背景と前景のコンテンツの間の色のコントラストは、読みやすさを確実なものとするための最低限のレベルであるべきです。
+
+
+
+ テキストとその背景のコントラスト比は少なくとも 4.5:1
+ であるべきです。
+
+
+ 見出し(またはそれよりも大きい)テキストの比は、少なくとも 3:1
+ であるべきです。 大きいテキストは、少なくとも 18 ポイント、または 14
+ ポイントの太字として定義されます。
+
+
+
+
+ 色とそのコントラスト を参照してください。
+
+
+
+ 1.4.4 テキストのサイズ変更 (AA)
+
+ テキストサイズが2倍になったときに、ページは読みやすく使えるべきです。
+ つまり、デザインはレスポンシブであるべきで、テキストサイズを大きくしてもコンテンツにアクセス可能であることを意味します。
+
+
+
+
+ 1.4.5 テキストの画像 (AA)
+
+ テキストが仕事をするようなコンテンツを提示するために画像を使用してはいけません 。
+ 例えば、画像がほとんどテキスト形式の場合、画像だけでなくテキストも使用して表現できます。
+
+
+
+
+ 1.4.6 強化されたコントラスト (AAA)
+
+ これは、基準 1.4.3 に従い、その上に構築されます。
+
+
+ テキストとその背景のコントラスト比は少なくとも 7:1 であるべきです。
+
+
+ 見出し(またはそれよりも大きい)テキストの比は少なくとも 4.5:1
+ であるべきです。 大きいテキストは、少なくとも 18 ポイント、または 14
+ ポイントの太字として定義されます。
+
+
+
+
+
+
+ 1.4.7 背景音声は小さいか無い (AAA)
+
+ 話し言葉を主な特徴とする録音済みの音声記録は、背景雑音を最小限に抑えるべきため、コンテンツを簡単に理解できます。
+
+
+
+
+ 1.4.8 視覚的表現 (AAA)
+
+ テキストコンテンツの表現では、次のことが当てはまります。
+
+ 前景色と背景色は、ユーザーが選択できるようにするべきです。
+
+ テキストブロックは、読みやすくするために、80
+ 文字(またはグリフ)以下の幅にしてください。
+
+
+ テキストは、両端揃えにするべきではありません(例えば、{{cssxref("text-align","text-align: justify;")}})。
+
+
+ 行の高さは、段落内ではテキストサイズの 1.5
+ 倍以上(例えば、{{cssxref("line-height","line-height: 1.5;")}})、段落間ではテキストサイズの
+ 2.25
+ 倍以上(例えば、{{cssxref("padding","padding: 2.25rem;")}})にするするべきです。
+
+
+ テキストサイズが2倍になったときに、コンテンツのスクロールが必要になるべきではありません。
+
+
+
+
+
+
+ 1.4.9 テキストの画像(例外なし) (AAA)
+
+ テキストは、純粋に装飾である(すなわち、それがいかなる内容も伝えない)か、または他の方法で提示することができない限り、画像の一部として提示するべきではありません。
+
+
+
+
+
+ 1.4.10 リフロー (AA)
+ 2.1 で追加 (英語)
+
+
+
+
+ 右から左への言語(英語など)や、左から右への言語(アラビア語など)の水平スクロール無し。
+
+ 上から下への言語(日本語など)の垂直スクロール無し。
+
+ 使用法や意味のために2次元レイアウトを必要とするコンテンツの部分を除く(大きなデータ表のように)。
+
+
+
+
+ リフローを理解する (英語)
+
+
+
+
+ 1.4.11 テキスト以外のコントラスト (AA)
+ 2.1 で追加 (英語)
+
+
+ ユーザーインターフェイス・コンポーネントとグラフィックオブジェクトの最低限のカラーコントラスト比は
+ 3:1 です。
+
+
+ テキスト以外のコントラストを理解する (英語)
+
+
+
+
+ 1.4.12 テキストの間隔 (AA)
+ 2.1 で追加 (英語)
+
+
+
+ 次のスタイルを適用しても、コンテンツや機能が失われることはありません。
+
+
+ 行の高さ(行間)をフォントサイズの 1.5 倍以上にします。
+ 後続の段落との間隔をフォントサイズの 2 倍以上にします。
+
+ 文字間隔(トラッキング)をフォントサイズの 0.12 倍以上にします。
+
+ 単語間隔をフォントサイズの 0.16 倍以上にします。
+
+
+
+ テキストの間隔を理解する (英語)
+
+
+
+
+ 1.4.13 ホバーまたはフォーカスにおけるコンテンツ (AA)
+ 2.1 で追加 (英語)
+
+
+
+ 追加のコンテンツがホバーやキーボードフォーカスに連動して現れたり消えたりします。
+ この達成基準では、満たす必要がある次の3つの条件を指定します。
+
+
+ 却下可能(閉じたり取り除くことが可能)。
+
+ ホバリング可能(追加のコンテンツは、ポインタが上にあるときは消えません)。
+
+
+ 永続的(追加のコンテンツは、ユーザーの操作なしでは消えません)。
+
+
+
+
+ ホバーまたはフォーカスにおけるコンテンツを理解する (英語)
+
+
+
+
+
+> **Note:** [ガイドライン 1.4: 識別可能: 背景から前景を分離するなど、ユーザーがコンテンツを見やすく、聞き取りやすくする](https://www.w3.org/TR/WCAG21/#distinguishable)(英語)に関する WCAG の説明も参照してください。
+
+## 関連情報
+
+- [WCAG](/ja/docs/Web/Accessibility/Understanding_WCAG)
+
+ 1. 知覚可能
+ 2. [操作可能](/ja/docs/Web/Accessibility/Understanding_WCAG/Operable)
+ 3. [理解可能](/ja/docs/Web/Accessibility/Understanding_WCAG/Understandable)
+ 4. [堅牢](/ja/docs/Web/Accessibility/Understanding_WCAG/Robust)
diff --git a/files/ja/web/accessibility/understanding_wcag/robust/index.html b/files/ja/web/accessibility/understanding_wcag/robust/index.html
deleted file mode 100644
index e5d0a84b46f318..00000000000000
--- a/files/ja/web/accessibility/understanding_wcag/robust/index.html
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: 堅牢
-slug: Web/Accessibility/Understanding_WCAG/Robust
-tags:
- - Accessibility
- - HTML
- - Parsing
- - Principle 4
- - Robust
- - Role(2)
- - Validation
- - WAI-ARIA
- - WCAG
- - Web Content Accessibility Guidelines
- - value
-translation_of: Web/Accessibility/Understanding_WCAG/Robust
----
-この記事では、ウェブコンテンツ・アクセシビリティガイドライン(WCAG)2.0 および 2.1 の堅牢 原則に概説されている達成基準に準拠するようにウェブコンテンツを作成する方法についての実用的なアドバイスを提供します。 堅牢とは、支援技術を含む多種多様なユーザーエージェントによって確実に解釈されることができるほど十分に堅牢でなければならないと述べています。 これは通常、ウェブ標準に準拠し、厳密にテスト することによって実現できます。
-
-
-
-ガイドライン 4.1 — 互換性: 支援技術を含む現在および将来のユーザーエージェントとの互換性を最大化する
-
-このガイドラインは、現在のユーザーエージェント(例えば、ブラウザ)だけでなく将来のものともコンテンツをできる限り互換性を持たせることに焦点を当てています。
-
-
-
-
- 達成基準
- 基準への準拠方法
- 実用的なリソース
-
-
-
-
- 4.1.1 解析 (A)
-
- コンテンツは、ブラウザやスクリーンリーダーのような他のユーザーエージェントによって正常に解析されるように、整形式(well-formed)にするべきです。
-
- この基準に合格するには、HTML ができるだけ妥当(valid)であることを確認してください。 マークアップを検証するために W3C の検証ツール (英語)を使用してください。
-
- 実用的なガイドについては、HTML のデバッグ を参照してください。
-
-
- 4.1.2 名前、役割、値 (A)
-
- ユーザインターフェース・コンポーネント(例えば、フォーム入力、ボタン、リンクなど)の名前と役割(role、ロール)はプログラム的に決定可能であるべきです。
-
- 意図された目的のために意味論の要素を正しく使用するとき、この基準に自動的に合格するはずです。 カスタムコンポーネントをスクリプト化するときは、例えば、晴眼でマウスのユーザーだけでなく、スクリーンリーダーのユーザー、キーボードのみのユーザーなども、コントロールが解釈されて意図したとおりに使用できるようにするために、WAI-ARIA のロールおよびその他の機能を使用する必要があります。
-
- HTML: アクセシビリティの基礎 と WAI-ARIA の基本 を参照してください。
-
-
- 4.1.3 ステータスメッセージ (AA) 2.1 で追加 (英語)
-
- 支援技術のユーザーは、ページに追加された新しいステータスメッセージを認識します。
-
- ステータスメッセージを理解する (英語)
-
-
-
-
-
-
-
-
-関連情報
-
-
-
-
diff --git a/files/ja/web/accessibility/understanding_wcag/robust/index.md b/files/ja/web/accessibility/understanding_wcag/robust/index.md
new file mode 100644
index 00000000000000..eaf5205b522713
--- /dev/null
+++ b/files/ja/web/accessibility/understanding_wcag/robust/index.md
@@ -0,0 +1,41 @@
+---
+title: 堅牢
+slug: Web/Accessibility/Understanding_WCAG/Robust
+tags:
+ - Accessibility
+ - HTML
+ - Parsing
+ - Principle 4
+ - Robust
+ - Role(2)
+ - Validation
+ - WAI-ARIA
+ - WCAG
+ - Web Content Accessibility Guidelines
+ - value
+translation_of: Web/Accessibility/Understanding_WCAG/Robust
+---
+この記事では、ウェブコンテンツ・アクセシビリティガイドライン(WCAG)2.0 および 2.1 の**堅牢**原則に概説されている達成基準に準拠するようにウェブコンテンツを作成する方法についての実用的なアドバイスを提供します。 堅牢とは、支援技術を含む多種多様なユーザーエージェントによって確実に解釈されることができるほど十分に堅牢でなければならないと述べています。 これは通常、ウェブ標準に準拠し、[厳密にテスト](/ja/docs/Learn/Tools_and_testing/Cross_browser_testing)することによって実現できます。
+
+> **Note:** .**注**: W3C の堅牢の定義とそのガイドラインおよび達成基準を読むには、[原則 4: 堅牢 — コンテンツは、支援技術を含むさまざまなユーザーエージェントによって確実に解釈されるよう十分に堅牢である必要があります](https://www.w3.org/TR/WCAG21/#robust)(英語)を参照してください。
+
+## ガイドライン 4.1 — 互換性: 支援技術を含む現在および将来のユーザーエージェントとの互換性を最大化する
+
+このガイドラインは、現在のユーザーエージェント(例えば、ブラウザ)だけでなく将来のものともコンテンツをできる限り互換性を持たせることに焦点を当てています。
+
+| 達成基準 | 基準への準拠方法 | 実用的なリソース |
+| ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 4.1.1 解析 (A) | コンテンツは、ブラウザやスクリーンリーダーのような他のユーザーエージェントによって正常に解析されるように、整形式(well-formed)にするべきです。この基準に合格するには、HTML ができるだけ妥当(valid)であることを確認してください。 マークアップを検証するために [W3C の検証ツール](https://validator.w3.org/)(英語)を使用してください。 | 実用的なガイドについては、[HTML のデバッグ](/ja/docs/Learn/HTML/Introduction_to_HTML/Debugging_HTML)を参照してください。 |
+| 4.1.2 名前、役割、値 (A) | ユーザインターフェース・コンポーネント(例えば、フォーム入力、ボタン、リンクなど)の名前と役割(role、ロール)はプログラム的に決定可能であるべきです。意図された目的のために意味論の要素を正しく使用するとき、この基準に自動的に合格するはずです。 カスタムコンポーネントをスクリプト化するときは、例えば、晴眼でマウスのユーザーだけでなく、スクリーンリーダーのユーザー、キーボードのみのユーザーなども、コントロールが解釈されて意図したとおりに使用できるようにするために、WAI-ARIA のロールおよびその他の機能を使用する必要があります。 | [HTML: アクセシビリティの基礎](/ja/docs/Learn/Accessibility/HTML)と [WAI-ARIA の基本](/ja/docs/Learn/Accessibility/WAI-ARIA_basics)を参照してください。 |
+| 4.1.3 ステータスメッセージ (AA) [2.1 で追加](https://www.w3.org/TR/WCAG21/#new-features-in-wcag-2-1)(英語) | 支援技術のユーザーは、ページに追加された新しいステータスメッセージを認識します。 | [ステータスメッセージを理解する](https://www.w3.org/WAI/WCAG21/Understanding/status-messages.html)(英語) |
+
+> **Note:** [ガイドライン 4.1: 互換性: 支援技術を含む現在および将来のユーザーエージェントとの互換性を最大化する](https://www.w3.org/TR/WCAG21/#compatible)(英語)に関する WCAG の説明も参照してください。
+
+## 関連情報
+
+- [WCAG](/ja/docs/Web/Accessibility/Understanding_WCAG)
+
+ 1. [知覚可能](/ja/docs/Web/Accessibility/Understanding_WCAG/Perceivable)
+ 2. [操作可能](/ja/docs/Web/Accessibility/Understanding_WCAG/Operable)
+ 3. [理解可能](/ja/docs/Web/Accessibility/Understanding_WCAG/Understandable)
+ 4. 堅牢
diff --git a/files/ja/web/accessibility/understanding_wcag/understandable/index.html b/files/ja/web/accessibility/understanding_wcag/understandable/index.html
deleted file mode 100644
index 18a0c5c63791a5..00000000000000
--- a/files/ja/web/accessibility/understanding_wcag/understandable/index.html
+++ /dev/null
@@ -1,259 +0,0 @@
----
-title: 理解可能
-slug: Web/Accessibility/Understanding_WCAG/Understandable
-tags:
- - Accessibility
- - HELP
- - Language
- - Navigation
- - Principle 3
- - Text
- - Understandable
- - WCAG
- - Web Content Accessibility Guidelines
- - abbreviations
- - consistency
- - error messages
- - form validation
- - labels
- - slang
-translation_of: Web/Accessibility/Understanding_WCAG/Understandable
----
-この記事では、ウェブコンテンツ・アクセシビリティガイドライン(WCAG)2.0 および 2.1 の理解可能 原則に概説されている達成基準に準拠するようにウェブコンテンツを作成する方法について実用的なアドバイスを提供します。 理解可能とは、情報とユーザーインターフェースの操作が理解可能でなければならないと述べています。
-
-
-
-ガイドライン 3.1 — 読みやすさ: テキストコンテンツを読みやすく理解しやすいものにする
-
-このガイドラインは、テキストコンテンツをできるだけわかりやすくすることに焦点を当てています。
-
-
-
-
- 達成基準
- 基準への準拠方法
- 実用的なリソース
-
-
-
-
- 3.1.1 ページの言語 (A)
- 各ウェブページのデフォルトの人間の言語はコードで検出できるべきです。 これは、読者が自分に合った言語で書かれたページにアクセスしたことを確認するなどの目的に不可欠です。 これを実現する最も簡単な方法は、ページの {{htmlelement("html")}} 要素に {{htmlattrxref("lang")}} 属性を設定して、ページが書かれている言語を最もよく表す言語コードをそれに与えることです。
- 文書の第一言語の設定 を参照してください。
-
-
- 3.1.2 パーツの言語 (AA)
-
- ページのコンテンツに第一言語とは異なる言語の単語や語句が含まれている場合は、問題の用語を囲む要素(例えば、意味論の要素が利用できない場合は {{htmlelement("span")}})に {{htmlattrxref("lang")}} 属性を使用して適切な言語を設定します。
-
- 言語に関係なく同じである単語や語句に異なる言語を設定する必要はありません(例えば、固有名詞、特定の言語の一部ではない専門用語など)。
-
-
-
-
- 3.1.3 珍しい単語 (AAA)
- 専門用語、業界用語、または慣用句やスラングが使用されている場合は、そのような語句や単語に対して定義を提供するべきです。 サイトでは、そのような言葉や用語の定義を含む用語集を、それらが現れたときにリンクできるように提供するか、少なくとも周囲のテキストやページ下部の説明リスト のどこかに定義を提供するべきです。
-
-
-
- 3.1.4 略語 (AAA)
-
- 略語が使用されている場合は、それらの展開や、必要に応じて定義を提供するべきです。
-
- {{htmlelement("abbr")}} 要素は、略語の展開を提供するための推奨される方法と考えられています — 展開を含む {{htmlattrxref("title")}} 属性を取り、略語をマウスオーバーしたとき、これが表示されます。 ただし、title
の内容はキーボードからはアクセスできず、スクリーンリーダーによって確実に読み上げられるわけでもありません。 これを扱うためのより良い方法は、この場合も先と同様に略語の展開と説明を含む用語集のページへのリンクを提供するか、少なくともコンテキスト内の周囲のテキストにそれらを含めることです。
-
- 略語 を参照してください。
-
-
- 3.1.5 読解力 (AAA)
-
- 前期中等教育レベル(通常11〜14歳前後の子供)より高い読解力を必要とするテキストが提供される場合は、それを読むことができない人々を支援する補足説明資料を提供するか、あるいは前期中等教育レベルで書かれた代替バージョンを提供します。
-
- これは、全ての主題が全ての人に理解されるべきであるという意味ではありませんが、書くスタイルは全ての人にアクセス可能であるべきです。 そうしない正当な理由や(例えば、詩的効果のための代替的なスタイル)、厳密なスタイルで記述する必要(例えば、W3C の仕様)がない限り、プログラミングチュートリアルのような技術文書でさえも、全てのコンテンツを前期中等教育レベルで書くことをお勧めします。
-
-
-
-
- 3.1.6 発音 (AAA)
-
- コンテンツを完全に理解するために必要な単語の発音へのアクセスをユーザーに与えるためのメカニズムを提供するべきです。
-
- HTML5 の {{htmlelement("audio")}} 要素を使用して、正しい発音を含む音声ファイルを読者が再生できるようにするコントロールを作成できます。 そして、辞書のエントリーと同じように難しい言葉の後にテキストの発音ガイドを含めるのも理にかなっています。
-
-
- 動画と音声のコンテンツ 、および英語辞書の発音ガイド (英語)を参照してください。
-
-
-
-
-
-
-
-ガイドライン 3.2 — 予測可能: ウェブページを予測可能な方法で表示して操作させる
-
-このガイドラインは、ユーザーインターフェースを直感的でわかりやすくすることに焦点を当てています。
-
-
-
-
- 達成基準
- 基準への準拠方法
- 実用的なリソース
-
-
-
-
- 3.2.1 フォーカス時 (A)
-
- コントロールや他のページ機能がフォーカスを受けたときに、ユーザーが混乱したり迷ったりするような方法でコンテキストを変更するべきではありません。
-
- これは賢明なデザインの問題です — 人々はインターフェースによって驚かされることを望みません。 彼らは物事が直感的で期待通りに振る舞うことを望みます。 例えば、ナビゲーションメニューのオプションにフォーカスを置いても、表示されたページは変わりません — 表示が変わる前にアクティブにする必要があります。
-
- {{domxref("GlobalEventHandlers.onfocus")}} には、役に立つ情報がいくつか含まれています。 役に立つ実装のアイデアについては、キーボード・アクセシビリティを取り戻す を参照してください。
-
-
- 3.2.2 入力時 (A)
-
- データがコントロールに入力されたとき、または設定が変更されたときに、コンテキストが予期せずに変更されるべきではありません。 差し迫った変更が発生する前に、ユーザーに警告や通知をする必要があります。
-
- 繰り返しますが、賢明なデザインを実装するべきです。 例えば、ボタンを押してアプリケーションが現在のビューを終了すると、ユーザーは必要に応じて作業内容を保存するかなど、この操作の確認を求められるべきです。
-
- {{domxref("GlobalEventHandlers.oninput")}} はここで役に立ちます。
-
-
- 3.2.3 一貫したナビゲーション (AA)
-
- ナビゲーションのメニューやコントロールのスタイルと配置は、ウェブページの異なるページやビューの間で一貫しているべきで、例えば、新しい項目が追加されたとしても、既存の項目は同じ順序で現れるべきです。 ユーザーが変更を始めた場合、例えば、ナビゲーションのために異なる配色や位置を選択すると、それらの選択は全てのページにわたって尊重されるべきです。
-
- 繰り返しますが、賢明なデザイン — 全てのページやビューでナビゲーションコントロールを同じにします。
-
- モダンなレイアウトのマークアップについては、ページレイアウト を参照してください。 便利なアクセス可能なナビゲーションメニューの例については、ボタンとしてのリンクのスタイリング も参照してください。
-
-
- 3.2.4 一貫した識別 (AA)
-
- 同じ機能を持つコントロールやコンポーネントは、異なるページやビューでも同じように識別されるべきです。 例えば、世界旅行サイトの全てのページに表示される通貨換算機は、意味論的にもラベルの観点からもまったく同じであるべきです。
-
- 繰り返しますが、賢明なデザイン!
-
- 「ラベル」とは、テキストコンテンツ内の説明的な情報、または HTML フォームのラベルのことです。 詳細については、わかりやすいテキストラベル を参照してください。
-
-
- 3.2.5 要求に応じた変更 (AAA)
-
- ユーザーを混乱させたり、迷わせたりする可能性があるコンテキストの変更は、ユーザーから要求された場合にのみ行われるべきか、あるいは 、ユーザーはそれらをオフにできるべきです。
-
- 現在のビュー(例えば、コンテンツやコントロール)を大幅に変更するものが必要な場合は、変更をいつ実行するかをユーザーに制御させます(例えば、どのページを表示するか、いつギャラリーの次の写真に進むか...)。
-
- ページに回転木馬のようなものが必要な場合は、自動的に進まないようにするオプションを提供します。 可能であれば、そのような機能を避ける方が良いでしょう。
-
-
-
-
-
-
-
-
-
-
-このガイドラインは、必要なときにユーザーが正しい情報を間違いを最小限にとどめて入力できるように手助けすることを中心にしています。
-
-
-
-
- 達成基準
- 基準への準拠方法
- 実用的なリソース
-
-
-
-
- 3.3.1 エラーの識別 (A)
-
- ユーザーがフォームに入力したりオプションを選択したりするときに検出したエラーは、エラーに関連するフォームコントロールと共に、ユーザーに明確に報告するべきです。
-
- 状況に最適なものであれば、HTML5 フォームの検証機能や JavaScript を使用して、クライアント側のエラー検出と処理を実装することをお勧めします。 エラーを検出したら、ユーザーが入力を修正するのを助けるために、直観的なエラーメッセージをフォーム入力の横に表示するべきです。 スクリーンリーダーのユーザーの場合は、ARIA のライブリージョンを使用して、ページ上の変更についてユーザーに警告することができます。
-
-
-
注 : サーバー側の検証は、クライアント側の検証と同時に常に 使用するべきです。 クライアント側の検証は、無効にしたり回避したりするのが簡単すぎるため、単独では信頼できません。
-
-
- 包括的な検証情報についてはフォームデータの検証 を、ライブリージョンに関する情報については WAI-ARIA: 動的コンテンツの更新 を参照してください。
-
-
- 3.3.2 ラベルや指示 (A)
-
- データ入力が必要な場合は、明確な指示を提供するべきです。 単純な指示やプロンプトが必要な場合は、名前や年齢のような単一入力には {{htmlelement("label")}} 要素を使用したり、(生年月日や住所の要素のような)複数を一緒にした入力には {{htmlelement("label")}} と {{htmlelement("fieldset")}} / {{htmlelement("legend")}} を組み合わせて使用できます。
-
- より複雑な説明が必要な場合は、常に説明段落を含めることも、フォームをより直感的にすることを試みる必要があるかもしれません。
-
- わかりやすいテキストラベル と便利な例については HTML フォームの作成方法 を参照してください。
-
-
- 3.3.3 エラーに対する提案 (AA)
-
- エラーが検出され、修正の提案が判明したら、セキュリティ上の問題(例えば、パスワード入力時)やコンテキスト上の問題(例えば、クイズアプリでの回答時)が発生しない限り、ユーザーにこれらの情報を提供してください(例えば、ユーザーが既に選らんだことがあるユーザー名についての選択肢の提案)。
-
- このような場合、これが適切であれば、おそらく JavaScript とサーバー側の機能の組み合わせを使用して、エントリが正しいかどうかを確認し、正しくない場合は、ユーザーに実行可能な提案を提示できます。 そのような提案は、エラーメッセージのようなコンテキストの中で有用に表示されるべきです(3.3.1 を参照)。
-
- まだチュートリアルの提案はありません。
-
-
- 3.3.4 エラー防止(法務、財務、データ) (AA)
-
- 機密データの入力に関わるフォーム(法的契約、電子商取引、個人データなど)の場合は、少なくとも次のいずれかに該当するべきです。
-
-
- 提出は可逆的です。
- データにエラーがないかチェックされ、ユーザーにはエラーを修正する機会が与えられます。
- 最終提出の前に情報を確認し修正するためのメカニズムが利用可能です。
-
-
-
- 可逆的 — データを入力できるビューには、必要に応じてエントリを編集または削除することもできる同等のビューを提供します(例えば、Django ウェブフレームワーク を参照)。
-
- データのチェック — 3.3.1 で説明したように、クライアント側とサーバー側の検証を組み合わせてエラーを検出し、入力を修正できるようにユーザーに役立つメッセージを表示するべきです。
-
- 確認と修正 — 必要に応じて、(製品の購入のような)一連のフォームフィールドに入力するタスクを実行した後、ユーザーに確認画面を表示して入力内容を見直し、正しくないものは修正できるようにするべきです。 このパターンは、Amazon のような電子商取引サイトで一般的に使用されています。
-
-
-
- 3.3.5 状況依存ヘルプが利用可能 (AAA)
- フォームの完成と提出を助けるために、コンテキストの中で指示と他の適切な合図を提供してください。
- これは実際には単に 3.3.1 や他の同様の基準に基づいていますが、もっと徹底的なコンテキスト上のヘルプ情報とサービスを必要とします。 例えば、各ページのヘルプページまたはサービスへの専用リンクを提供し、正常に完了したらどのように見えるか示す例を提供します。
-
-
- 3.3.6 エラー防止(全て) (AAA)
- この原則は 3.3.4 に基づいており、機密データを含むものだけでなく、全てのユーザ入力状況に要件を拡張しています。
- 繰り返しますが、3.3.4 を参照してください。
-
-
-
-
-
-
-
-
-関連情報
-
-
-
-
diff --git a/files/ja/web/accessibility/understanding_wcag/understandable/index.md b/files/ja/web/accessibility/understanding_wcag/understandable/index.md
new file mode 100644
index 00000000000000..5bb18f3c0e2cdd
--- /dev/null
+++ b/files/ja/web/accessibility/understanding_wcag/understandable/index.md
@@ -0,0 +1,206 @@
+---
+title: 理解可能
+slug: Web/Accessibility/Understanding_WCAG/Understandable
+tags:
+ - Accessibility
+ - HELP
+ - Language
+ - Navigation
+ - Principle 3
+ - Text
+ - Understandable
+ - WCAG
+ - Web Content Accessibility Guidelines
+ - abbreviations
+ - consistency
+ - error messages
+ - form validation
+ - labels
+ - slang
+translation_of: Web/Accessibility/Understanding_WCAG/Understandable
+---
+この記事では、ウェブコンテンツ・アクセシビリティガイドライン(WCAG)2.0 および 2.1 の**理解可能**原則に概説されている達成基準に準拠するようにウェブコンテンツを作成する方法について実用的なアドバイスを提供します。 理解可能とは、情報とユーザーインターフェースの操作が理解可能でなければならないと述べています。
+
+> **Note:** 理解可能の W3C の定義とそのガイドラインおよび達成基準を読むには、[原則 3: 理解可能 — 情報とユーザーインターフェイスの操作が理解可能でなければならない](https://www.w3.org/TR/WCAG21/#understandable)(英語)を参照してください。
+
+## ガイドライン 3.1 — 読みやすさ: テキストコンテンツを読みやすく理解しやすいものにする
+
+このガイドラインは、テキストコンテンツをできるだけわかりやすくすることに焦点を当てています。
+
+| 達成基準 | 基準への準拠方法 | 実用的なリソース |
+| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 3.1.1 ページの言語 (A) | 各ウェブページのデフォルトの人間の言語はコードで検出できるべきです。 これは、読者が自分に合った言語で書かれたページにアクセスしたことを確認するなどの目的に不可欠です。 これを実現する最も簡単な方法は、ページの {{htmlelement("html")}} 要素に {{htmlattrxref("lang")}} 属性を設定して、ページが書かれている言語を最もよく表す言語コードをそれに与えることです。 | [文書の第一言語の設定](/ja/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML#Setting_the_primary_language_of_the_document)を参照してください。 |
+| 3.1.2 パーツの言語 (AA) | ページのコンテンツに第一言語とは異なる言語の単語や語句が含まれている場合は、問題の用語を囲む要素(例えば、意味論の要素が利用できない場合は {{htmlelement("span")}})に {{htmlattrxref("lang")}} 属性を使用して適切な言語を設定します。言語に関係なく同じである単語や語句に異なる言語を設定する必要はありません(例えば、固有名詞、特定の言語の一部ではない専門用語など)。 | |
+| 3.1.3 珍しい単語 (AAA) | 専門用語、業界用語、または慣用句やスラングが使用されている場合は、そのような語句や単語に対して定義を提供するべきです。 サイトでは、そのような言葉や用語の定義を含む用語集を、それらが現れたときにリンクできるように提供するか、少なくとも周囲のテキストやページ下部の[説明リスト](/ja/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting#Description_lists)のどこかに定義を提供するべきです。 | |
+| 3.1.4 略語 (AAA) | 略語が使用されている場合は、それらの展開や、必要に応じて定義を提供するべきです。{{htmlelement("abbr")}} 要素は、略語の展開を提供するための推奨される方法と考えられています — 展開を含む {{htmlattrxref("title")}} 属性を取り、略語をマウスオーバーしたとき、これが表示されます。 ただし、`title` の内容はキーボードからはアクセスできず、スクリーンリーダーによって確実に読み上げられるわけでもありません。 これを扱うためのより良い方法は、この場合も先と同様に略語の展開と説明を含む用語集のページへのリンクを提供するか、少なくともコンテキスト内の周囲のテキストにそれらを含めることです。 | [略語](/ja/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting#Abbreviations)を参照してください。 |
+| 3.1.5 読解力 (AAA) | 前期中等教育レベル(通常 11〜14 歳前後の子供)より高い読解力を必要とするテキストが提供される場合は、それを読むことができない人々を支援する補足説明資料を提供するか、あるいは前期中等教育レベルで書かれた代替バージョンを提供します。これは、全ての主題が全ての人に理解されるべきであるという意味ではありませんが、書くスタイルは全ての人にアクセス可能であるべきです。 そうしない正当な理由や(例えば、詩的効果のための代替的なスタイル)、厳密なスタイルで記述する必要(例えば、W3C の仕様)がない限り、プログラミングチュートリアルのような技術文書でさえも、全てのコンテンツを前期中等教育レベルで書くことをお勧めします。 | |
+| 3.1.6 発音 (AAA) | コンテンツを完全に理解するために必要な単語の発音へのアクセスをユーザーに与えるためのメカニズムを提供するべきです。HTML5 の {{htmlelement("audio")}} 要素を使用して、正しい発音を含む音声ファイルを読者が再生できるようにするコントロールを作成できます。 そして、辞書のエントリーと同じように難しい言葉の後にテキストの発音ガイドを含めるのも理にかなっています。 | [動画と音声のコンテンツ](/ja/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content)、および[英語辞書の発音ガイド](http://www.oxfordlearnersdictionaries.com/us/about/pronunciation_english.html)(英語)を参照してください。 |
+
+> **Note:** [ガイドライン 3.1: 読みやすさ: テキストコンテンツを読みやすく理解しやすいものにする](https://www.w3.org/TR/WCAG21/#readable)(英語)に関する WCAG の説明も参照してください。
+
+## ガイドライン 3.2 — 予測可能: ウェブページを予測可能な方法で表示して操作させる
+
+このガイドラインは、ユーザーインターフェースを直感的でわかりやすくすることに焦点を当てています。
+
+| 達成基準 | 基準への準拠方法 | 実用的なリソース |
+| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 3.2.1 フォーカス時 (A) | コントロールや他のページ機能がフォーカスを受けたときに、ユーザーが混乱したり迷ったりするような方法でコンテキストを変更するべきではありません。これは賢明なデザインの問題です — 人々はインターフェースによって驚かされることを望みません。 彼らは物事が直感的で期待通りに振る舞うことを望みます。 例えば、ナビゲーションメニューのオプションにフォーカスを置いても、表示されたページは変わりません — 表示が変わる前にアクティブにする必要があります。 | {{domxref("GlobalEventHandlers.onfocus")}} には、役に立つ情報がいくつか含まれています。 役に立つ実装のアイデアについては、[キーボード・アクセシビリティを取り戻す](/ja/docs/Learn/Accessibility/HTML#Building_keyboard_accessibility_back_in)を参照してください。 |
+| 3.2.2 入力時 (A) | データがコントロールに入力されたとき、または設定が変更されたときに、コンテキストが予期せずに変更されるべきではありません。 差し迫った変更が発生する前に、ユーザーに警告や通知をする必要があります。繰り返しますが、賢明なデザインを実装するべきです。 例えば、ボタンを押してアプリケーションが現在のビューを終了すると、ユーザーは必要に応じて作業内容を保存するかなど、この操作の確認を求められるべきです。 | {{domxref("GlobalEventHandlers.oninput")}} はここで役に立ちます。 |
+| 3.2.3 一貫したナビゲーション (AA) | ナビゲーションのメニューやコントロールのスタイルと配置は、ウェブページの異なるページやビューの間で一貫しているべきで、例えば、新しい項目が追加されたとしても、既存の項目は同じ順序で現れるべきです。 ユーザーが変更を始めた場合、例えば、ナビゲーションのために異なる配色や位置を選択すると、それらの選択は全てのページにわたって尊重されるべきです。繰り返しますが、賢明なデザイン — 全てのページやビューでナビゲーションコントロールを同じにします。 | モダンなレイアウトのマークアップについては、[ページレイアウト](/ja/docs/Learn/Accessibility/HTML#Page_layouts)を参照してください。 便利なアクセス可能なナビゲーションメニューの例については、[ボタンとしてのリンクのスタイリング](/ja/docs/Learn/CSS/Styling_text/Styling_links#Styling_links_as_buttons)も参照してください。 |
+| 3.2.4 一貫した識別 (AA) | 同じ機能を持つコントロールやコンポーネントは、異なるページやビューでも同じように識別されるべきです。 例えば、世界旅行サイトの全てのページに表示される通貨換算機は、意味論的にもラベルの観点からもまったく同じであるべきです。繰り返しますが、賢明なデザイン! | 「ラベル」とは、テキストコンテンツ内の説明的な情報、または HTML フォームのラベルのことです。 詳細については、[わかりやすいテキストラベル](/ja/docs/Learn/Accessibility/HTML#Meaningful_text_labels)を参照してください。 |
+| 3.2.5 要求に応じた変更 (AAA) | ユーザーを混乱させたり、迷わせたりする可能性があるコンテキストの変更は、ユーザーから要求された場合にのみ行われるべきか、**あるいは**、ユーザーはそれらをオフにできるべきです。現在のビュー(例えば、コンテンツやコントロール)を大幅に変更するものが必要な場合は、変更をいつ実行するかをユーザーに制御させます(例えば、どのページを表示するか、いつギャラリーの次の写真に進むか...)。ページに回転木馬のようなものが必要な場合は、自動的に進まないようにするオプションを提供します。 可能であれば、そのような機能を避ける方が良いでしょう。 | |
+
+> **Note:** [ガイドライン 3.2: 予測可能: ウェブページを予測可能な方法で表示して操作させる](https://www.w3.org/TR/WCAG21/#predictable)(英語)に関する WCAG の説明も参照してください。
+
+## ガイドライン 3.3 — 入力支援: ユーザーが間違いを避けて修正できるようにする
+
+このガイドラインは、必要なときにユーザーが正しい情報を間違いを最小限にとどめて入力できるように手助けすることを中心にしています。
+
+
+
+
+ 達成基準
+ 基準への準拠方法
+ 実用的なリソース
+
+
+
+
+ 3.3.1 エラーの識別 (A)
+
+
+ ユーザーがフォームに入力したりオプションを選択したりするときに検出したエラーは、エラーに関連するフォームコントロールと共に、ユーザーに明確に報告するべきです。
+
+
+ 状況に最適なものであれば、HTML5 フォームの検証機能や JavaScript
+ を使用して、クライアント側のエラー検出と処理を実装することをお勧めします。
+ エラーを検出したら、ユーザーが入力を修正するのを助けるために、直観的なエラーメッセージをフォーム入力の横に表示するべきです。
+ スクリーンリーダーのユーザーの場合は、ARIA
+ のライブリージョンを使用して、ページ上の変更についてユーザーに警告することができます。
+
+
+
+ サーバー側の検証は、クライアント側の検証と同時に常に 使用するべきです。
+ クライアント側の検証は、無効にしたり回避したりするのが簡単すぎるため、単独では信頼できません。
+
+
+
+
+ 包括的な検証情報についてはフォームデータの検証 を、ライブリージョンに関する情報については
+ WAI-ARIA: 動的コンテンツの更新 を参照してください。
+
+
+
+ 3.3.2 ラベルや指示 (A)
+
+
+ データ入力が必要な場合は、明確な指示を提供するべきです。
+ 単純な指示やプロンプトが必要な場合は、名前や年齢のような単一入力には
+ {{htmlelement("label")}}
+ 要素を使用したり、(生年月日や住所の要素のような)複数を一緒にした入力には
+ {{htmlelement("label")}} と
+ {{htmlelement("fieldset")}} /
+ {{htmlelement("legend")}} を組み合わせて使用できます。
+
+
+ より複雑な説明が必要な場合は、常に説明段落を含めることも、フォームをより直感的にすることを試みる必要があるかもしれません。
+
+
+
+ わかりやすいテキストラベル と便利な例については
+ HTML フォームの作成方法 を参照してください。
+
+
+
+ 3.3.3 エラーに対する提案 (AA)
+
+
+ エラーが検出され、修正の提案が判明したら、セキュリティ上の問題(例えば、パスワード入力時)やコンテキスト上の問題(例えば、クイズアプリでの回答時)が発生しない限り、ユーザーにこれらの情報を提供してください(例えば、ユーザーが既に選らんだことがあるユーザー名についての選択肢の提案)。
+
+
+ このような場合、これが適切であれば、おそらく JavaScript
+ とサーバー側の機能の組み合わせを使用して、エントリが正しいかどうかを確認し、正しくない場合は、ユーザーに実行可能な提案を提示できます。
+ そのような提案は、エラーメッセージのようなコンテキストの中で有用に表示されるべきです(3.3.1
+ を参照)。
+
+
+ まだチュートリアルの提案はありません。
+
+
+ 3.3.4 エラー防止(法務、財務、データ) (AA)
+
+
+ 機密データの入力に関わるフォーム(法的契約、電子商取引、個人データなど)の場合は、少なくとも次のいずれかに該当するべきです。
+
+
+ 提出は可逆的です。
+
+ データにエラーがないかチェックされ、ユーザーにはエラーを修正する機会が与えられます。
+
+
+ 最終提出の前に情報を確認し修正するためのメカニズムが利用可能です。
+
+
+
+
+
+ 可逆的 —
+ データを入力できるビューには、必要に応じてエントリを編集または削除することもできる同等のビューを提供します(例えば、Django ウェブフレームワーク を参照)。
+
+
+ データのチェック — 3.3.1
+ で説明したように、クライアント側とサーバー側の検証を組み合わせてエラーを検出し、入力を修正できるようにユーザーに役立つメッセージを表示するべきです。
+
+
+ 確認と修正 —
+ 必要に応じて、(製品の購入のような)一連のフォームフィールドに入力するタスクを実行した後、ユーザーに確認画面を表示して入力内容を見直し、正しくないものは修正できるようにするべきです。
+ このパターンは、Amazon
+ のような電子商取引サイトで一般的に使用されています。
+
+
+
+
+ 3.3.5 状況依存ヘルプが利用可能 (AAA)
+
+ フォームの完成と提出を助けるために、コンテキストの中で指示と他の適切な合図を提供してください。
+
+
+ これは実際には単に 3.3.1
+ や他の同様の基準に基づいていますが、もっと徹底的なコンテキスト上のヘルプ情報とサービスを必要とします。
+ 例えば、各ページのヘルプページまたはサービスへの専用リンクを提供し、正常に完了したらどのように見えるか示す例を提供します。
+
+
+
+ 3.3.6 エラー防止(全て) (AAA)
+
+ この原則は 3.3.4
+ に基づいており、機密データを含むものだけでなく、全てのユーザ入力状況に要件を拡張しています。
+
+ 繰り返しますが、3.3.4 を参照してください。
+
+
+
+
+> **Note:** [ガイドライン 3.3: 入力支援: ユーザーが間違いを避けて修正できるようにする](https://www.w3.org/TR/WCAG21/#input-assistance)(英語)に関する WCAG の説明も参照してください。
+
+## 関連情報
+
+- [WCAG](/ja/docs/Web/Accessibility/Understanding_WCAG)
+
+ 1. [知覚可能](/ja/docs/Web/Accessibility/Understanding_WCAG/Perceivable)
+ 2. [操作可能](/ja/docs/Web/Accessibility/Understanding_WCAG/Operable)
+ 3. 理解可能
+ 4. [堅牢](/ja/docs/Web/Accessibility/Understanding_WCAG/Robust)