JavaScript ShadowRoot.delegatesFocus — передача фокуса всередину


Властивість delegatesFocus каже, чи передає компонент фокус першому елементу всередині тіні.

автор: NagarD

Загальний опис

Без неї виходить неприємність із доступністю: користувач тисне Tab, фокус потрапляє на компонент — і зупиняється на його оболонці, а не на полі вводу всередині. Клавіатура перестає працювати.

З delegatesFocus: true фокус провалюється всередину, на перший придатний елемент. І клік по будь-якій частині компонента теж ставить фокус у поле — як і має бути.

Задається один раз, при створенні тіні; змінити її потім не можна — властивість лише читається.

автор: NagarD

Порада

Робиш компонент із полем вводу всередині тіні — ставте delegatesFocus: true одразу. Без цього він буде недоступним із клавіатури.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
delegatesFocus 53+ 63+ 10+ 40+ 79+ -
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
delegatesFocus 53+ yes yes 10+

Приклади

+ запропонувати свій приклад у пісочниці

Фокус провалюється в поле, а не зупиняється на оболонці.

class SearchBox extends HTMLElement {
    connectedCallback() {
        const shadow = this.attachShadow({
            mode: 'open',
            // без цього Tab зупиниться на оболонці
            delegatesFocus: true,
        });

        shadow.innerHTML = '<input type="search">';

        console.log(shadow.delegatesFocus); // true — лише читається
    }
}

customElements.define('search-box', SearchBox);
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід