Skip to content

Commit

Permalink
Merge branch 'main' into patch-missing-page-for-copy-event
Browse files Browse the repository at this point in the history
  • Loading branch information
rafael-encinas authored Oct 25, 2024
2 parents eb711b2 + e11b253 commit d9ee7c5
Show file tree
Hide file tree
Showing 18 changed files with 923 additions and 716 deletions.
2 changes: 1 addition & 1 deletion files/ja/_redirects.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3834,7 +3834,7 @@
/ja/docs/Web/CSS/transform-function/translateZ() /ja/docs/Web/CSS/transform-function/translateZ
/ja/docs/Web/CSS/uri /ja/docs/Web/CSS/url_value
/ja/docs/Web/CSS/url /ja/docs/Web/CSS/url_value
/ja/docs/Web/CSS/url() /ja/docs/Web/CSS/url_value
/ja/docs/Web/CSS/url() /ja/docs/Web/CSS/url_function
/ja/docs/Web/CSS/user-ident /ja/docs/Web/CSS/custom-ident
/ja/docs/Web/CSS/var() /ja/docs/Web/CSS/var
/ja/docs/Web/CSS/visible /ja/docs/Web/CSS/visibility
Expand Down
2 changes: 1 addition & 1 deletion files/ja/_wikihistory.json
Original file line number Diff line number Diff line change
Expand Up @@ -19992,7 +19992,7 @@
"modified": "2020-10-15T21:40:12.796Z",
"contributors": ["mfuji09", "okayurisotto", "teoli", "YuichiNukiyama"]
},
"Web/CSS/url_value": {
"Web/CSS/url_function": {
"modified": "2020-10-15T22:29:36.625Z",
"contributors": ["mfuji09"]
},
Expand Down
136 changes: 136 additions & 0 deletions files/ja/web/accessibility/aria/roles/img_role/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
---
title: "ARIA: img ロール"
slug: Web/Accessibility/ARIA/Roles/img_role
l10n:
sourceCommit: 019ca5c9ce641bfa02825e1ba0444f35dfb646cc
---

{{AccessibilitySidebar}}

ARIA の `img` ロールは、ページコンテンツ内の複数の要素を単一の画像として扱うべきであると識別するために使用できます。これらの要素は、画像、コードスニペット、テキスト、絵文字、または視覚的に情報を提供するために組み合わせることができるその他のコンテンツである可能性があります。

```html
<div role="img" aria-label="全体の画像の説明">
<img src="graphic1.png" alt="" />
<img src="graphic2.png" />
</div>
```

## 解説

単一の画像として扱われるべきコンテンツ(画像、動画、音声、コードスニペット、絵文字、その他のコンテンツを含む)は、`role="img"` を使用して識別することができます。

支援技術にコンテキストを伝えるために個々の画像の代替テキストを当てにしてはいけません。ほとんどの画面リーダーは、`role="img"` が設定された要素をブラックボックスのように扱い、その内部の個々の要素にアクセスしません。したがって、画像には包括的な全体的な説明的な代替テキストを提供する必要があります。代替テキストは、画像の周囲のテキストに記述するか、[`aria-label`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-label) 属性を使用して記述します。画像が使用できない場合に、検索エンジンや視覚障害のあるユーザーがページにアクセスできるように、代替テキストを記述します。

```html
<div role="img" aria-label="全体の画像の説明">
<img src="graphic1.png" alt="代替テキスト" />
<img src="graphic2.png" alt="この場合、画像は読み込まれない" />
</div>
```

ページ上で表示される画像にキャプションやラベルを追加したい場合は、次のものを使用して追加することができます。

- [`aria-labelledby`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby): テキストが簡潔なラベルである場合。
- [`aria-describedby`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-describedby): テキストが詳しい説明文の場合。

例を示します。

```html
<div role="img" aria-labelledby="image-1">
<p id="image-1">一連の画像を説明するテキスト。</p>
</div>
```

画像が純粋に表現だけの目的で使用されている場合は、 [`presentation`](/ja/docs/Web/Accessibility/ARIA/Roles/presentation_role) ロールを使用することを検討してください。

### SVG と role="img"

ページに埋め込んだ SVG 画像を使用している場合は、`role="img"` を外側の {{SVGElement('svg')}} 要素に設定し、ラベルを付けるのがよい考えです。これにより、スクリーンリーダーは子ノードをすべて読み上げようとするのではなく、それを単一の要素として扱い、ラベルを使用して記述します。

```html
<svg role="img" aria-label="SVG 画像の説明">
<!-- SVG 画像の中身 -->
</svg>
```

### role="img" を使用して隠された意味や暗示されている意味を付与

特定のケースでは、支援技術のユーザーは、特定の方法で表現されたコンテンツの意味、特定のメディアを通じて表現されたコンテンツの意味、または特定の方法で暗示されたコンテンツの意味を理解できない場合があります。これは画像の場合には明らかに修正するべきですが(`alt` 属性を使用することができます)、混合コンテンツやその他の特定の種類のコンテンツのケースでは修正すべきかどうかは明らかではなく、`role="img"` が有効になる場合があります。

例えば、テキストに絵文字を使用した場合、視覚のあるユーザーにとっては意味が明白かもしれませんが、スクリーンリーダーを操作しているユーザーは混乱するかもしれません。なぜなら、絵文字はテキスト表現をまったく持たないか、代替テキストが混乱を招く可能性があり、それが使用されているコンテキストと一致しない可能性があるからです。例えば、次のようなコードを考えてみましょう。

```html
<div role="img" aria-label="この猫はとてもかわいい">
<p>&#x1F408; &#x1F602;</p>
</div>
```

`&#x1F408; &#x1F602;`、🐈、😂 は、それぞれ「猫」、「うれし涙の顔」と読み上げられる絵文字のエンティティ参照ですが、必ずしも意味が通じるとは限りません。暗示されている意味は、おそらく「その猫はとてもかわいい」というようなものなので、`aria-label``role="img"` と共に設定します。

これは、一部のブラウザーとスクリーンリーダーの組み合わせではうまくいくようですが、中にはラベルを 2 回読み上げてしまうものもあります。使用する際は注意し、十分にテストしてください。

この例が適していると思われる別の例としては、{{Glossary("ASCII")}} の絵文字の組み合わせ、例えば伝説の「ちゃぶ台返し」を使用する場合が挙げられます。

```html
<div role="img" aria-label="ちゃぶ台返し">
<p>(╯°□°)╯︵ ┻━┻</p>
</div>
```

`aria-labelledby` が使用されていた場合、スクリーンリーダーがそれを読み上げます。 この場合、`aria-label` の内容のみがスクリーンリーダーのユーザーに読み上げられ、ARIA の子孫要素が何かを隠す必要がなくても、意味不明な文字列が隠されますが、画像の一部である可能性のあるコンテンツも隠されます。

### すべての子孫は表現用

ユーザーインターフェイス部分には、プラットフォームのアクセシビリティ API で表現するとテキストのみを含むことができるものもあります。アクセシビリティ API には、`img` に含まれるセマンティック要素を表現する方法がありません。この制限に対処するために、ブラウザーは、セマンティックな子要素に対応しない役割として、`img` 要素のすべての子孫要素に自動的に [`presentation`](/ja/docs/Web/Accessibility/ARIA/Roles/presentation_role) ロールを適用します。

例えば、見出しのあるする次の `img` 要素を考えてみましょう。

```html
<div role="img"><h3>画像のタイトル</h3></div>
```

`img` の子孫は表現用なので、次のコードは同等です。

```html
<div role="img"><h3 role="presentation">画像のタイトル</h3></div>
```

支援技術ユーザーの立場から見ると、見出しは存在しません。なぜなら、上記のコードスニペットは、[アクセシビリティツリー](/ja/docs/Glossary/Accessibility_tree)では次のコードと同等だからです。

```html
<div role="img">画像のタイトル</div>
```

### 関連する WAI-ARIA ロール、状態、プロパティ

- `aria-label` または `aria-labelledby`
- : アクセシブル名が必要です。HTML の {{HTMLElement('img')}} 要素では、`alt` 属性を使用します。`img` ロールを持つ他のすべての要素では、目に見えるラベルがある場合は `aria-labelledby` を、それ以外は `aria-label` を使用します。

##

```html
<span role="img" aria-label="評価: 5 つ星中 4 つ星">
<span>★</span>
<span>★</span>
<span>★</span>
<span>★</span>
<span>☆</span>
</span>
```

## 仕様書

{{Specifications}}

## 関連情報

- {{HTMLElement('img')}} 要素
- {{SVGElement('svg')}} 要素
- {{HTMLElement('picture')}} 要素
- {{HTMLElement('audio')}} 要素
- {{HTMLElement('video')}} 要素
- [ARIA: `presentation` ロール](/ja/docs/Web/Accessibility/ARIA/Roles/presentation_role)
- [Accessibility Object Model](https://wicg.github.io/aom/spec/)(英語)
- [HTML での ARIA](https://w3c.github.io/html-aria/)(英語)
6 changes: 4 additions & 2 deletions files/ja/web/accessibility/aria/roles/search_role/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: "ARIA: search ロール"
slug: Web/Accessibility/ARIA/Roles/search_role
---

検索 (`search`) [ランドマークロール](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)、ページ、サイト、またはサイトのコレクションの検索に使用されるページのセクションを識別するために使用します。
検索 (`search`) ロールは、ページ、サイト、またはサイトのコレクションの検索に使用されるページのセクションを識別するために使用します。

```html
<form role="search">
Expand All @@ -13,10 +13,12 @@ slug: Web/Accessibility/ARIA/Roles/search_role

## 説明

検索 (`search`) ロールは、[ランドマーク](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)です。 ランドマークは、支援技術によって使用され、文書の大きなセクションを素早く識別してナビゲートすることができます。 検索 (`search`) ロールは、全体として組み合わせて検索機能を作成する項目およびオブジェクトを含むコンテナー要素に追加します。 `<form>` が検索フォームの場合、フォーム ([`form`](/ja/docs/Web/Accessibility/ARIA/Roles/Form_Role)) ロールの代わりに検索 (`search`) ロールを使用します。 文書に複数の検索が含まれている場合、それぞれに固有のラベルを持つべきです。 [`search` 型の `<input>` 要素](/ja/docs/Web/HTML/Element/input/search)はありますが、検索ランドマークを定義する HTML 要素はありません
検索 (`search`) ロールは、文書やアプリケーションの検索機能を構成するために組み合わされたすべての要素を囲むコンテナー要素に追加できる[ランドマーク](/ja/docs/Web/Accessibility/ARIA/ARIA_Techniques#landmark_roles)で、これには子孫要素として [`<input type="search">`](/ja/docs/Web/HTML/Element/input/search) が含まれます。文書に複数の検索が含まれている場合、それぞれに固有のラベルを持つべきです。ただし、同じ検索が繰り返される場合は同じラベルを使用します。 [`search` 型の `<input>` 要素](/ja/docs/Web/HTML/Element/input/search) がありますが、これ自体は検索ランドマークを定義するものではありません。検索ランドマークを定義するには、[`<search>`](/ja/docss/Web/HTML/Element/search) 要素を使用してください

##

[`<form>`](/ja/docss/Web/HTML/Element/form) 要素が検索フォームの場合、[`form`](/ja/docs/Web/Accessibility/ARIA/Roles/form_role) ロールの代わりに `search` ロールを使用してください。

```html
<form id="search" role="search">
<label for="search-input">このサイトを検索</label>
Expand Down
78 changes: 78 additions & 0 deletions files/ja/web/api/htmlimageelement/attributionsrc/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
---
title: "HTMLImageElement: attributionSrc プロパティ"
short-title: attributionSrc
slug: Web/API/HTMLImageElement/attributionSrc
l10n:
sourceCommit: e9e2ec643ac69c132f31427a0b586ab2cf83ed58
---

{{APIRef("Attribution Reporting API")}}{{securecontext_header}}{{SeeCompatTable}}

**`attributionSrc`** は {{domxref("HTMLImageElement")}} インターフェイスのプロパティで、 {{htmlelement("img")}} 要素の [`attributionsrc`](/ja/docs/Web/HTML/Element/img#attributionsrc) 属性をプログラムで取得および設定し、その属性の値を反映します。`attributionsrc` は、ブラウザーに画像リクエストとともに {{httpheader("Attribution-Reporting-Eligible")}} ヘッダーを送信するように指示します。

サーバー側では、{{httpheader("Attribution-Reporting-Register-Source")}} または {{httpheader("Attribution-Reporting-Register-Trigger")}} ヘッダーをレスポンスで送信し,それぞれ画像ベースの[帰属ソース](/ja/docs/Web/API/Attribution_Reporting_API/Registering_sources#html-based_event_sources)または[帰属トリガー](/ja/docs/Web/API/Attribution_Reporting_API/Registering_triggers#html-based_attribution_triggers)を登録します。どのレスポンスヘッダーを送り返すべきかは、登録をトリガーした `Attribution-Reporting-Eligible` ヘッダーの値によって異なります。

ブラウザーが画像ファイルを含む応答を受信すると、ソース/トリガーが登録されます。

> [!NOTE]
> ユーザーが必ずしもその画像を認識できるとは限らないことに留意してください。それは、帰属報告のみに使用される 1x1 の透明トラッキングピクセルである可能性があります。
詳しくは[帰属報告 API](/ja/docs/Web/API/Attribution_Reporting_API) を参照してください。

##

文字列。このプロパティには、取得および設定できる 2 つのバージョンがあります。

- 空文字列、すなわち `imgElem.attributionSrc=""`。これは、{{httpheader("Attribution-Reporting-Eligible")}} ヘッダーを、`src` 属性が指し示すのと同じサーバーに送信することを指定します。 帰属元やトリガー登録を同じサーバーで処理する場合は、これで問題ありません。 帰属トリガーを登録する際には、このプロパティはオプションであり、省略した場合は空文字列の値が使用されます。
- 1 つ以上の URL を含む値、例えば次のようなものです。

```js
imgElem.attributionSrc =
"https://a.example/register-source https://b.example/register-source";
```

これは、リクエストされたリソースが管理下のサーバーにない場合や、別のサーバーでの帰属元の登録を処理したい場合に便利です。この場合、`attributionSrc` の値として 1 つまたは複数の URL を指定することができます。リソースの要求が発生すると、{{httpheader("Attribution-Reporting-Eligible")}} ヘッダーがリソースのオリジンに加えて、`attributionSrc` で指定された URL に送信されます。これらの URL は、{{httpheader("Attribution-Reporting-Register-Source")}} または {{httpheader("Attribution-Reporting-Register-Trigger")}} の適切な方で応答して登録を完了します。

> [!NOTE]
> 複数の URL を指定すると、同じ機能に複数の帰属元を登録することができます。例えば、成功を測定しようとしている異なるキャンペーンがあり、異なるデータについて異なるレポートをそれぞれ作成する必要がある場合などです。
##

### 空の attributionSrc を設定

```html
<img src="advertising-image.png" />
```

```js
const imgElem = document.querySelector("img");
imgElem.attributionSrc = "";
```

### URL を含む attributionSrc の設定

```html
<img src="advertising-image.png" />
```

```js
// `=` などの特殊文字が含まれている場合、正しく解析されない
// 可能性があるため、URLをエンコードします。
const encodedUrlA = encodeURIComponent("https://a.example/register-source");
const encodedUrlB = encodeURIComponent("https://b.example/register-source");

const imgElem = document.querySelector("img");
imgElem.attributionSrc = `${encodedUrlA} ${encodedUrlB}`;
```

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}

## 関連情報

- [帰属報告 API](/ja/docs/Web/API/Attribution_Reporting_API)
Loading

0 comments on commit d9ee7c5

Please sign in to comment.