ShadowRoot: delegatesFocus ããããã£
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2021å¹´11æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
delegatesFocus 㯠ShadowRoot ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®èªã¿åãå°ç¨ããããã£ã§ãã·ã£ãã¦ã«ã¼ãããã©ã¼ã«ã¹ãå§ä»»ããå ´å㯠trueãããã§ãªããã° false ãè¿ãã¾ãã
true ã®å ´åãã·ã£ã㦠DOM ã®ãã©ã¼ã«ã¹ãåãåããªãé¨åãã¯ãªãã¯ããããããã¹ãè¦ç´ ã«å¯¾ã㦠.focus() ãå¼ã³åºãããã¨ããã©ã¼ã«ã¹ãåãåããã¨ãã§ããæåã®é¨åããã©ã¼ã«ã¹ãåãåããã·ã£ãã¦ãã¹ãã :focus ã®ã¹ã¿ã¤ã«ã«ãªãã¾ãã
ãã¼ãã¼ãã®ã¦ã¼ã¶ã¼ï¼ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã使ç¨ããã¦ã¼ã¶ã¼ãå«ãï¼ã«ã¨ã£ã¦ã¯ããã©ã¼ã«ã¹ãç¹ã«éè¦ã§ãã delegatesFocus ã®æ¢å®ã®åä½ã¯ãæåã®ãã©ã¼ã«ã¹å¯è½ãªè¦ç´ ã«ãã©ã¼ã«ã¹ãå½ã¦ãã¨ãããã®ã§ããããã¯ããã®è¦ç´ ãã¿ãé åºã®ä¸é¨ã¨ãã¦æå³ããã¦ããªãå ´åï¼ä¾ãã°ãtabindex="-1" ã®è¦ç´ ï¼ãããããéè¦ãªããã©ã¼ã«ã¹å¯è½ãªè¦ç´ ã«åæãã©ã¼ã«ã¹ãå½ã¦ãã¹ãå ´åï¼ä¾ãã°ãæåã®ããã¹ããã£ã¼ã«ãããã®åã«ãããéããããã¿ã³ããåªå
ããããªã©ï¼ã«ã¯æã¾ãããªãå ´åãããã¾ãããã®ãããªå ´åãåæãã©ã¼ã«ã¹ãåãåãè¦ç´ ã« autofocus 屿§ãæå®ãããã¨ãã§ãã¾ãã autofocus 屿§ã¯ãã¢ã¯ã»ã·ããªãã£ã«é¢ãã課é¡ãå¼ãèµ·ããå¯è½æ§ãããããã使ç¨ããéã«ã¯æ³¨æãå¿
è¦ã§ããä¾ãã°ãDOM ã®é åºãå¾ã«ããè¦ç´ ã«ãã©ã¼ã«ã¹ãè¨å®ããã¦ããããã«æ°ã¥ããªããããªéè¦ãªã³ã³ãã³ããåé¿ããã¨ãã£ã課é¡ã§ãã
ãã®ããããã£å¤ã¯ãå
ã
ãElement.attachShadow() ã«æ¸¡ããªãã¸ã§ã¯ãã® delegatesFocus ããããã£ã使ç¨ããããã¾ãã¯ã·ã£ãã¦ã«ã¼ãã宣è¨çã«ä½æããéã® <template> è¦ç´ ã® shadowrootdelegatesfocus 屿§ã使ç¨ãã¦è¨å®ãã¾ãã
å¤
ã·ã£ãã¦ã«ã¼ãããã©ã¼ã«ã¹ãè²ãå ´å㯠trueãããã§ãªãå ´å㯠falseã
ä¾
let customElem = document.querySelector("my-shadow-dom-element");
let shadow = customElem.shadowRoot;
// ...
// Does it delegate focus?
let hostElem = shadow.delegatesFocus;
<template> ã®ããã¥ã¡ã³ãå
ã®ãã©ã¼ã«ã¹ã®ï½è²æ¸¡ãä¼´ã宣è¨çã·ã£ã㦠DOMã®ä¾ã§ã¯ããã©ã¼ã«ã¹ãè²ããã¨ã®å¹æã示ããã¦ãã¾ãã
仿§æ¸
| 仿§æ¸ |
|---|
| DOM > # shadowroot-delegates-focus > |