Skip to content

Commit

Permalink
2024/05/17 時点の英語版に基づき更新
Browse files Browse the repository at this point in the history
  • Loading branch information
mfuji09 committed Sep 29, 2024
1 parent af8b675 commit 2a21521
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions files/ja/web/api/shadowroot/delegatesfocus/index.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,39 @@
---
title: ShadowRoot.delegatesFocus
title: "ShadowRoot: delegatesFocus プロパティ"
short-title: delegatesFocus
slug: Web/API/ShadowRoot/delegatesFocus
l10n:
sourceCommit: 26091e4af9c73bb6c5d1466df5070c949498fdbd
---

{{APIRef("Shadow DOM")}}

**`delegatesFocus`** は {{domxref("ShadowRoot")}} インターフェイスの読み取り専用プロパティで、シャドウルートがフォーカスを委任する場合は `true`、そうでなければ `false` を返します。

`true` の場合、シャドウ DOM のフォーカスを受け取れない部分がクリックさると、フォーカスを受け取ることができる最初の部分がフォーカスを受け取り、シャドウホストが `:focus` のスタイルになります。
`true` の場合、シャドウ DOM のフォーカスを受け取れない部分がクリックされるか、ホスト要素に対して `.focus()` が呼び出されると、フォーカスを受け取ることができる最初の部分がフォーカスを受け取り、シャドウホストが `:focus` のスタイルになります。

このプロパティの値は {{domxref("Element.attachShadow()")}}) に渡されたオブジェクトの `delegatesFocus` プロパティを使用して設定します。
キーボードのユーザー(スクリーンリーダーを使用するユーザーも含む)にとっては、フォーカスが特に重要です。 `delegatesFocus` の既定の動作は、最初のフォーカス可能な要素にフォーカスを当てるというものです。これは、その要素がタブ順序の一部として意図されていない場合(例えば、`tabindex="-1"` の要素)や、より「重要な」フォーカス可能な要素に初期フォーカスを当てるべき場合(例えば、最初のテキストフィールドをその前にある「閉じる」ボタンより優先させるなど)には望ましくない場合があります。このような場合、初期フォーカスを受け取る要素に `autofocus` 属性を指定することができます。 `autofocus` 属性は、アクセシビリティに関する課題を引き起こす可能性があるため、使用する際には注意が必要です。例えば、DOM の順序が後にある要素にフォーカスが設定されているために気づかないような重要なコンテンツを回避するといった課題です。

このプロパティ値は、元々、{{domxref("Element.attachShadow()")}} に渡すオブジェクトの `delegatesFocus` プロパティを使用するか、またはシャドウルートを宣言的に作成する際の [`<template>`](/ja/docs/Web/HTML/Element/template) 要素の [`shadowrootdelegatesfocus`](/ja/docs/Web/HTML/Element/template#shadowrootclonable) 属性を使用して設定します。

###

シャドウルートがフォーカスを譲る場合は `true`、そうでない場合は `false`

##

```js
let customElem = document.querySelector('my-shadow-dom-element');
let customElem = document.querySelector("my-shadow-dom-element");
let shadow = customElem.shadowRoot;

...
// ...

// Does it delegate focus?
let hostElem = shadow.delegatesFocus;
```

`<template>` のドキュメント内の[フォーカスのp譲渡を伴う宣言的シャドウ DOM](/ja/docs/Web/HTML/Element/template#フォーカスを譲渡を伴う宣言的シャドウ_dom)の例では、フォーカスを譲ることの効果が示されています。

## 仕様書

{{Specifications}}
Expand Down

0 comments on commit 2a21521

Please sign in to comment.