Reactã®å®éšçãª`useOpaqueIdentifier`ããã¯ã掻çšããŠãIDçæãæé©åããæ§ã ãªç°å¢äžã§è€éãªReactã¢ããªã±ãŒã·ã§ã³ã®ã¢ã¯ã»ã·ããªãã£ãšããã©ãŒãã³ã¹ãåäžãããŸãããã
React Experimental `useOpaqueIdentifier` ãããžã¡ã³ããšã³ãžã³: IDçæã®æé©å
Reactã¯åžžã«é²åããŠãããæ°ããæ©èœãå®éšçãªAPIãç»å Žãããã³ã«ãéçºè
ã¯ããã©ãŒãã³ã¹ãšã¢ã¯ã»ã·ããªãã£ã®é«ãWebã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®ããå€ãã®ããŒã«ãç²åŸããŠããŸãããã®å®éšçãªæ©èœã®1ã€ããuseOpaqueIdentifier
ããã¯ã§ãããã®ããã¯ã¯ãReactã³ã³ããŒãã³ãå
ã§åºæã®IDãçæããããã®æšæºåããæé©åãããæ¹æ³ãæäŸããã¢ã¯ã»ã·ããªãã£ããµãŒããŒãµã€ãã¬ã³ããªã³ã°ïŒSSRïŒãããã³ãã€ãã¬ãŒã·ã§ã³ã«é¢é£ããäžè¬çãªèª²é¡ã«å¯ŸåŠããŸãããã®èšäºã§ã¯ãuseOpaqueIdentifier
ã®è©³çŽ°ãæ¢æ±ãããã®å©ç¹ã䜿çšäŸãããã³ããå
ç¢ã§ä¿å®æ§ã®é«ãã³ãŒãããŒã¹ã«ã©ã®ããã«è²¢ç®ã§ããããæãäžããŠãããŸãã
åé¡ç¹ïŒReactã§ã®åºæIDã®çæ
Reactã§åºæIDãçæããããšã¯äžèŠãããšäºçްãªããšã®ããã«æãããããããŸããããããŸããŸãªèŠçŽ ãèæ ®ãããšããã«è€éã«ãªããŸãã
- ã¢ã¯ã»ã·ããªãã£ïŒARIAïŒïŒ
aria-labelledby
ãaria-describedby
ãªã©ãå€ãã®ARIA屿§ã¯ãIDã䜿çšããŠèŠçŽ ãé¢é£ä»ããå¿ èŠããããŸãããããã®IDãæåã§ç®¡çãããšãç«¶åãã¢ã¯ã»ã·ããªãã£ã®åé¡ã«ã€ãªããå¯èœæ§ããããŸãã - ãµãŒããŒãµã€ãã¬ã³ããªã³ã°ïŒSSRïŒïŒ ãµãŒããŒäžã§Reactã³ã³ããŒãã³ããã¬ã³ããªã³ã°ããå ŽåãçæãããIDã¯ããã€ãã¬ãŒã·ã§ã³äžã«ã¯ã©ã€ã¢ã³ãäžã§çæãããIDãšäžèŽããå¿ èŠããããŸããäžæŽåããããšãã¯ã©ã€ã¢ã³ãåŽã®ReactããµãŒããŒã«ãã£ãŠæ¢ã«ã¬ã³ããªã³ã°ãããèŠçŽ ãåã¬ã³ããªã³ã°ããããšãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãäžæãããã€ãã¬ãŒã·ã§ã³ãšã©ãŒãçºçããå¯èœæ§ããããŸãã
- ã³ã³ããŒãã³ãã®åå©çšæ§ïŒ ã³ã³ããŒãã³ããåçŽãªã«ãŠã³ã¿ãŒãåºå®ãã¬ãã£ãã¯ã¹ã«åºã¥ããŠIDãçæããå ŽåãåãããŒãžã§ã³ã³ããŒãã³ããè€æ°ååå©çšãããšãéè€ããIDãçºçããå¯èœæ§ããããŸãã
- ããã©ãŒãã³ã¹ïŒ çŽ æŽãªIDçææŠç¥ã§ã¯ãäžå¿ èŠãªæååé£çµãè€éãªèšç®ãå¿ èŠã«ãªãå¯èœæ§ããããç¹ã«å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
ãããŸã§ãéçºè
ã¯uuid
ã®ãããªã©ã€ãã©ãªã®äœ¿çšãã¿ã€ã ã¹ã¿ã³ãã«åºã¥ãIDã®çæããŸãã¯ã«ã¹ã¿ã IDã«ãŠã³ã¿ãŒã®ç¶æãªã©ãããŸããŸãªåé¿çã«é Œã£ãŠããŸããããããããããã®ã¢ãããŒãã«ã¯ãè€éããããã©ãŒãã³ã¹ããŸãã¯ä¿å®æ§ã®ç¹ã§ç¬èªã®æ¬ ç¹ãããããšããããããŸãã
`useOpaqueIdentifier`ã®ç޹ä»
Reactã®å®éšçãªæ©èœãšããŠå°å
¥ãããuseOpaqueIdentifier
ããã¯ã¯ãåºæIDãçæããããã®çµã¿èŸŒã¿ã®æé©åããããœãªã¥ãŒã·ã§ã³ãæäŸããããšã«ããããããã®åé¡ã解決ããããšãç®çãšããŠããŸããæ¬¡ã®å©ç¹ãæäŸããŸãã
- äžææ§ã®ä¿èšŒïŒ ããã¯ã¯ãåã³ã³ããŒãã³ãã€ã³ã¹ã¿ã³ã¹ãåºæã®IDãåä¿¡ããããã«ããåãããŒãžã§ã³ã³ããŒãã³ããè€æ°å䜿çšããå Žåã§ãç«¶åãåé¿ããŸãã
- SSRãšã®äºææ§ïŒ
useOpaqueIdentifier
ã¯ããµãŒããŒãµã€ãã¬ã³ããªã³ã°ãšã·ãŒã ã¬ã¹ã«é£æºããããã«èšèšãããŠããŸãããã€ãã¬ãŒã·ã§ã³å¯Ÿå¿æŠç¥ã䜿çšããŠãçæãããIDããµãŒããŒãšã¯ã©ã€ã¢ã³ãã®éã§äžè²«ããŠããããšã確èªãããã€ãã¬ãŒã·ã§ã³ãšã©ãŒãæé€ããŸãã - ã¢ã¯ã»ã·ããªãã£ãžã®ãã©ãŒã«ã¹ïŒ åºæIDãçæããããã®ä¿¡é Œæ§ã®é«ãã¡ã«ããºã ãæäŸããããšã«ãããããã¯ã¯ARIA屿§ã®å®è£ ãç°¡çŽ åããReactã¢ããªã±ãŒã·ã§ã³ã®ã¢ã¯ã»ã·ããªãã£ãåäžãããŸãã
- ããã©ãŒãã³ã¹ã®æé©åïŒ ããã¯ã¯ãIDçæã®ãªãŒããŒããããæå°éã«æããããã©ãŒãã³ã¹ã念é ã«çœ®ããŠå®è£ ãããŠããŸãã
- éçºã®ç°¡çŽ åïŒ
useOpaqueIdentifier
ã«ãããéçºè ã¯ã«ã¹ã¿ã IDçæããžãã¯ãèšè¿°ããŠç¶æããå¿ èŠããªããªããã³ãŒãã®è€éãã軜æžãããä¿å®æ§ãåäžããŸãã
useOpaqueIdentifier
ã®äœ¿ç𿹿³
useOpaqueIdentifier
ã䜿çšããåã«ãå®éšçãªæ©èœãå«ãããŒãžã§ã³ã®Reactã䜿çšããŠããå¿
èŠããããŸããéåžžãããã¯Reactã®ã«ããªã¢ãŸãã¯å®éšçãªãã«ãã䜿çšããããšãå«ã¿ãŸããå®éšçãªæ©èœãæå¹ã«ããããã®å
·äœçãªæé ã«ã€ããŠã¯ãå
¬åŒã®Reactããã¥ã¡ã³ãã確èªããŠãã ãããå®éšçãªãã®ã§ãããããAPIã¯ä»åŸã®ãªãªãŒã¹ã§å€æŽãããå¯èœæ§ããããŸãã
å®éšçãªæ©èœãæå¹ã«ããããæ¬¡ã®ããã«ããã¯ãã€ã³ããŒãããŠäœ¿çšã§ããŸãã
```javascript import { useOpaqueIdentifier } from 'react'; function MyComponent() { const id = useOpaqueIdentifier(); return (ãã®äŸã§ã¯ãuseOpaqueIdentifier
ã¯MyComponent
颿°ã³ã³ããŒãã³ãå
ã§åŒã³åºãããŸããããã¯ã¯åºæã®IDãè¿ããããã¯label
ãšinput
èŠçŽ ãé¢é£ä»ããããã«äœ¿çšãããŸããããã«ãããã©ãã«ããç¹ã«æ¯æŽæè¡ã䜿çšããŠãããŠãŒã¶ãŒã«å¯ŸããŠãå
¥åãã£ãŒã«ããæ£ããèå¥ããããšãä¿èšŒãããŸãã
å®éã®äœ¿çšäŸ
useOpaqueIdentifier
ã¯ãåºæIDãå¿
èŠãªããŸããŸãªã·ããªãªã§é©çšã§ããŸãã
- ã¢ã¯ã»ã·ãã«ãªãã©ãŒã ïŒ åã®äŸã§ç€ºããããã«ããã®ããã¯ã䜿çšããŠã©ãã«ãå ¥åãã£ãŒã«ãã«é¢é£ä»ããé害ã®ãããŠãŒã¶ãŒã®ã¢ã¯ã»ã·ããªãã£ã確ä¿ã§ããŸãã
- ã¢ã³ãŒãã£ãªã³ãšã¿ãïŒ ã¢ã³ãŒãã£ãªã³ãŸãã¯ã¿ãã€ã³ã¿ãŒãã§ãŒã¹ãå®è£
ããã³ã³ããŒãã³ãã§ã¯ã
useOpaqueIdentifier
ã䜿çšããŠãããããŒãšã³ã³ãã³ãèŠçŽ ã®åºæIDãçæããaria-controls
ãaria-labelledby
ãªã©ã®ARIA屿§ãæ£ãã䜿çšã§ããããã«ããããšãã§ããŸããããã¯ãã¹ã¯ãªãŒã³ãªãŒããŒã®ãŠãŒã¶ãŒããããã®ã³ã³ããŒãã³ãã®æ§é ãšæ©èœãçè§£ããããã«äžå¯æ¬ ã§ãã - ã¢ãŒãã«ãã€ã¢ãã°ïŒ ã¢ãŒãã«ãã€ã¢ãã°ãäœæããå Žåã
useOpaqueIdentifier
ã䜿çšããŠããã€ã¢ãã°èŠçŽ ã®åºæIDãçæããaria-describedby
ãªã©ã®ARIA屿§ã䜿çšããŠããã€ã¢ãã°ã®ç®çã«é¢ããè¿œå æ å ±ãæäŸã§ããŸãã - ã«ã¹ã¿ã UIã³ã³ããŒãã³ãïŒ å
éšç®¡çãŸãã¯ã¢ã¯ã»ã·ããªãã£ã®ç®çã§åºæIDãå¿
èŠãªã«ã¹ã¿ã UIã³ã³ããŒãã³ããæ§ç¯ããŠããå Žåã
useOpaqueIdentifier
ã¯ä¿¡é Œæ§ãé«ãäžè²«æ§ã®ãããœãªã¥ãŒã·ã§ã³ãæäŸã§ããŸãã - åçãªã¹ãïŒ ã¢ã€ãã ã®ãªã¹ããåçã«ã¬ã³ããªã³ã°ããå Žåãåã¢ã€ãã ã«ã¯åºæã®IDãå¿
èŠã«ãªãå¯èœæ§ããããŸãã
useOpaqueIdentifier
ã¯ããã®ããã»ã¹ãç°¡çŽ åãããªã¹ããæŽæ°ãŸãã¯åã¬ã³ããªã³ã°ãããŠããåã¢ã€ãã ãåå¥ã®IDãåä¿¡ããããã«ããŸããeã³ããŒã¹ã®ãŠã§ããµã€ãã補åã®æ€çŽ¢çµæã衚瀺ããŠãããšããŸããå補åãªã¹ãã¯ãuseOpaqueIdentifier
ã«ãã£ãŠçæãããIDã䜿çšããŠãã¢ã¯ã»ã·ããªãã£ã®ç®çã§ãããäžæã«èå¥ããã€ã³ã¿ã©ã¯ã·ã§ã³ã远跡ã§ããŸãã
é«åºŠãªäœ¿çšæ³ãšèæ ®äºé
useOpaqueIdentifier
ã¯æ¯èŒçç°¡åã«äœ¿çšã§ããŸãããèæ
®ãã¹ãããã€ãã®é«åºŠãªèæ
®äºé
ããããŸãã
- IDã®ãã¬ãã£ãã¯ã¹ïŒ å Žåã«ãã£ãŠã¯ãããŒãžäžã®ä»ã®IDãšã®æœåšçãªç«¶åãåé¿ããããã«ãçæãããIDã«ç¹å®ã®æååããã¬ãã£ãã¯ã¹ãšããŠä»å ããããšãã§ããŸãã
useOpaqueIdentifier
ã¯ãã¬ãã£ãã¯ã¹ãçŽæ¥ãµããŒãããŠããŸããããçæãããIDãä»»æã®ãã¬ãã£ãã¯ã¹ãšé£çµããããšã§ããããç°¡åã«å®çŸã§ããŸãã: ```javascript import { useOpaqueIdentifier } from 'react'; function MyComponent() { const id = useOpaqueIdentifier(); const prefixedId = `my-component-${id}`; return ( - ãµãŒããŒãµã€ãã¬ã³ããªã³ã°ãšãã€ãã¬ãŒã·ã§ã³ïŒ
useOpaqueIdentifier
ããµãŒããŒãµã€ãã¬ã³ããªã³ã°ã§äœ¿çšããå Žåãã¯ã©ã€ã¢ã³ãåŽãšãµãŒããŒåŽã®ç°å¢ãæ£ããæ§æãããŠããããšã確èªããããšãéèŠã§ããReactã®ãã€ãã¬ãŒã·ã§ã³ã¡ã«ããºã ã¯ããµãŒããŒäžã§çæãããIDãã¯ã©ã€ã¢ã³ãäžã§çæãããIDãšäžèŽããããšã«äŸåããŠããŸããäžäžèŽããããšããã€ãã¬ãŒã·ã§ã³ãšã©ãŒãçºçãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«æªåœ±é¿ãåãŒãå¯èœæ§ããããŸãããµãŒããŒåŽã®ã¬ã³ããªã³ã°èšå®ããReactã®ã³ã³ããã¹ãAPIã䜿çšããŠIDã·ãŒã±ã³ã¹ãç¶æããããã«æ£ããåæåãããuseOpaqueIdentifier
ãé©åã«æ©èœããããã«å¿ èŠãªç°å¢å€æ°ãæäŸããŠããããšã確èªããŠãã ãããããšãã°ãNext.jsã®å ŽåããµãŒããŒãµã€ãã¬ã³ããªã³ã°ããžãã¯ãReactã®ã³ã³ããã¹ãAPIã䜿çšããŠIDã·ãŒã±ã³ã¹ãç¶æããããã«æ£ããæ§æãããŠããããšã確èªããŸãã - ããã©ãŒãã³ã¹ãžã®åœ±é¿ïŒ
useOpaqueIdentifier
ã¯ããã©ãŒãã³ã¹ã®ããã«æé©åãããŠããŸãããç¹ã«å€§èŠæš¡ã§è€éãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã®æœåšçãªåœ±é¿ã«æ³šæããããšãéèŠã§ããããã©ãŒãã³ã¹ãéèŠãªã³ã³ããŒãã³ãå ã§ããã¯ãé床ã«äœ¿çšããªãããã«ããŠãã ãããåãã¬ã³ããªã³ã°ãµã€ã¯ã«å ã§è€æ°å䜿çšããå Žåã¯ãçæãããIDããã£ãã·ã¥ããããšãæ€èšããŠãã ããã - ãšã©ãŒåŠçïŒ çšã§ãããIDçæããã»ã¹ããçºçããå¯èœæ§ã®ããæœåšçãªãšã©ãŒãåŠçããããã®æºåãããŠãã ãããã³ã³ããŒãã³ãããžãã¯ãtry-catchãããã¯ã§ã©ããããç¹ã«åæèšå®äžã«ãäºæããªãåé¡ãæ£åžžã«åŠçããããã«ããŸãã
- å®éšçãªæ§è³ªïŒ
useOpaqueIdentifier
ã¯å®éšçãªæ©èœã§ããããšã«æ³šæããŠãã ããããã®ããããã®APIãšåäœã¯ãReactã®ä»åŸã®ãªãªãŒã¹ã§å€æŽãããå¯èœæ§ããããŸããå¿ èŠã«å¿ããŠãã³ãŒããé©å¿ãããæºåãããŠãã ãããããã¯ãžã®å€æŽã«ã€ããŠåžžã«æ å ±ãåŸãããã«ãææ°ã®Reactããã¥ã¡ã³ããšãªãªãŒã¹ããŒããåžžã«ç¢ºèªããŠãã ããã
`useOpaqueIdentifier`ã®ä»£æ¿ææ®µ
useOpaqueIdentifier
ã¯åºæIDãçæããããã®äŸ¿å©ã§æé©åããããœãªã¥ãŒã·ã§ã³ãæäŸããŸãããç¹å®ã®ããŒãºãšå¶çŽã«å¿ããŠãæ€èšã§ãã代æ¿ã¢ãããŒãããããŸãã
- UUIDã©ã€ãã©ãªïŒ
uuid
ãªã©ã®ã©ã€ãã©ãªã¯ãUniversally Unique IdentifiersïŒUUIDïŒãçæããããã®é¢æ°ãæäŸããŸããUUIDã¯ãç°ãªãã·ã¹ãã ãšç°å¢éã§äžæã§ããããšãä¿èšŒãããŠããŸãããã ããUUIDã®çæã¯ãç¹ã«å€æ°ã®IDãçæããå¿ èŠãããå Žåãããã©ãŒãã³ã¹ã®ç¹ã§æ¯èŒçã³ã¹ãããããå¯èœæ§ããããŸãããŸããUUIDã¯éåžžãuseOpaqueIdentifier
ã«ãã£ãŠçæãããIDãããé·ããããå Žåã«ãã£ãŠã¯æžå¿µäºé ãšãªãå¯èœæ§ããããŸããã°ããŒãã«ãã£ã³ããã¯ã¢ããªã±ãŒã·ã§ã³ã¯ãè€æ°ã®å°ççã«åæ£ããã·ã¹ãã å šäœã§èå¥åãäžæã«ããå¿ èŠãããå ŽåãUUIDã䜿çšããå¯èœæ§ããããŸãã - ã«ã¹ã¿ã IDã«ãŠã³ã¿ãŒïŒ Reactã®
useState
ãŸãã¯useRef
ããã¯ã䜿çšããŠãç¬èªã®IDã«ãŠã³ã¿ãŒãå®è£ ã§ããŸãããã®ã¢ãããŒãã§ã¯ãIDçæããã»ã¹ããã现ããå¶åŸ¡ã§ããŸãããå®è£ ãšä¿å®ã«ãããå€ãã®åŽåãå¿ èŠã§ããIDã®ç«¶åãåé¿ããããã«ãã«ãŠã³ã¿ãŒãé©åã«åæåããã³ã€ã³ã¯ãªã¡ã³ããããŠããããšã確èªããå¿ èŠããããŸããããã«ããµãŒããŒãµã€ãã¬ã³ããªã³ã°ãšãã€ãã¬ãŒã·ã§ã³ãæ£ããåŠçããŠããµãŒããŒãšã¯ã©ã€ã¢ã³ãã®éã®äžè²«æ§ã確ä¿ããå¿ èŠããããŸãã - CSS-in-JSãœãªã¥ãŒã·ã§ã³ïŒ Styled Componentsãªã©ã®äžéšã®CSS-in-JSã©ã€ãã©ãªã¯ãåºæã®ã¯ã©ã¹åãçæããããã®ã¡ã«ããºã ãæäŸããŠããŸãããããã®ã¡ã«ããºã ãæŽ»çšããŠãã³ã³ããŒãã³ãã®åºæIDãçæã§ããŸãããã ãããã®ã¢ãããŒãã¯ãCSS以å€ã®ç®çã§IDãçæããå¿ èŠãããå Žåã¯é©ããŠããªãå¯èœæ§ããããŸãã
ã°ããŒãã«ã¢ã¯ã»ã·ããªãã£ã«é¢ããèæ ®äºé
useOpaqueIdentifier
ãŸãã¯ä»ã®IDçææè¡ã䜿çšããå Žåãã°ããŒãã«ãªã¢ã¯ã»ã·ããªãã£æšæºãšãã¹ããã©ã¯ãã£ã¹ãèæ
®ããããšãéèŠã§ãã
- ARIA屿§ïŒ
aria-labelledby
ãaria-describedby
ãaria-controls
ãªã©ã®ARIA屿§ã䜿çšããŠãã³ã³ããŒãã³ãã«é¢ããã»ãã³ãã£ãã¯æ å ±ãæäŸããŸãããããã®å±æ§ã¯ãèŠçŽ ãçžäºã«é¢é£ä»ããããã«åºæIDã«äŸåããŠããŸãã - èšèªãµããŒãïŒ ã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®èšèªããµããŒãããŠããããšã確èªããŸããIDãçæããå Žåã¯ããã¹ãŠã®èšèªã§ãµããŒããããªãå¯èœæ§ã®ããæåã®äœ¿çšãé¿ããŠãã ããã
- ã¹ã¯ãªãŒã³ãªãŒããŒã®äºææ§ïŒ ããŸããŸãªã¹ã¯ãªãŒã³ãªãŒããŒã§ã¢ããªã±ãŒã·ã§ã³ããã¹ãããŠãçæãããIDãæ£ããè§£éãããé害ã®ãããŠãŒã¶ãŒã«ã¢ããŠã³ã¹ãããããšã確èªããŸããäžè¬çãªã¹ã¯ãªãŒã³ãªãŒããŒã«ã¯ãNVDAãJAWSãVoiceOverãªã©ããããŸããããŸããŸãªå°åã§äœ¿çšãããŠããæ¯æŽæè¡ïŒããšãã°ããšãŒããããŸãã¯ã¢ãžã¢ã§ããäžè¬çãªç¹å®ã®ã¹ã¯ãªãŒã³ãªãŒããŒïŒã§ãã¹ãããããšãæ€èšããŠãã ããã
- ããŒããŒãããã²ãŒã·ã§ã³ïŒ ã¢ããªã±ãŒã·ã§ã³ãããŒããŒãã䜿çšããŠå®å šã«ããã²ãŒãã§ããããšã確èªããŸããåºæIDã䜿çšããŠããã©ãŒã«ã¹ãšããŒããŒãã€ã³ã¿ã©ã¯ã·ã§ã³ã管çã§ããŸãã
- è²ã®ã³ã³ãã©ã¹ãïŒ ããã¹ããšèæ¯ã®è²ã®ã³ã³ãã©ã¹ããã¢ã¯ã»ã·ããªãã£ã¬ã€ãã©ã€ã³ãæºãããŠããããšã確èªããŸããIDçæã«çŽæ¥é¢ä¿ã¯ãããŸããããè²ã®ã³ã³ãã©ã¹ãã¯å šäœçãªã¢ã¯ã»ã·ããªãã£ã®éèŠãªåŽé¢ã§ãã
äŸïŒã¢ã¯ã»ã·ãã«ãªã¢ã³ãŒãã£ãªã³ã³ã³ããŒãã³ãã®æ§ç¯
useOpaqueIdentifier
ã䜿çšããŠãã¢ã¯ã»ã·ãã«ãªã¢ã³ãŒãã£ãªã³ã³ã³ããŒãã³ããæ§ç¯ããæ¹æ³ã説æããŸãããã
ãã®äŸã§ã¯ãuseOpaqueIdentifier
ã䜿çšããŠãã¢ã³ãŒãã£ãªã³ããããŒãšã³ã³ãã³ãèŠçŽ ã®åºæIDãçæããŠããŸããaria-expanded
ããã³aria-controls
屿§ã䜿çšããŠãããããŒãã³ã³ãã³ãã«é¢é£ä»ããã¹ã¯ãªãŒã³ãªãŒããŒãã¢ã³ãŒãã£ãªã³ã®ç¶æ
ãæ£ããã¢ããŠã³ã¹ã§ããããã«ããŸããaria-labelledby
屿§ã䜿çšããŠã³ã³ãã³ããããããŒã«é¢é£ä»ããã¹ã¯ãªãŒã³ãªãŒããŒãŠãŒã¶ãŒã«ããã«ã³ã³ããã¹ããæäŸããŸããhidden
屿§ã䜿çšããŠãã¢ã³ãŒãã£ãªã³ã®ç¶æ
ã«åºã¥ããŠã³ã³ãã³ãã®è¡šç€ºãå¶åŸ¡ããŸãã
çµè«
useOpaqueIdentifier
ããã¯ã¯ãReactã¢ããªã±ãŒã·ã§ã³ã§ã®IDçæãç°¡çŽ åããã³æé©åããäžã§éèŠãªäžæ©ã衚ããŠããŸããçµã¿èŸŒã¿ã®ãSSRäºæã®ãã¢ã¯ã»ã·ããªãã£ã«çŠç¹ãåœãŠããœãªã¥ãŒã·ã§ã³ãæäŸããããšã«ããããã®ããã¯ã¯ãéçºè
ãã«ã¹ã¿ã IDçæããžãã¯ãèšè¿°ããŠç¶æããå¿
èŠæ§ããªãããã³ãŒãã®è€éãã軜æžããä¿å®æ§ãåäžãããŸããå®éšçãªæ©èœã§ããã倿Žãããå¯èœæ§ããããŸãããuseOpaqueIdentifier
ã¯ãã¢ã¯ã»ã·ããªãã£ããµãŒããŒãµã€ãã¬ã³ããªã³ã°ãããã³ã³ã³ããŒãã³ãã®åå©çšæ§ã«é¢é£ããäžè¬çãªèª²é¡ã«å¯ŸåŠããããã®ææãªã¢ãããŒããæäŸããŸããReactãšã³ã·ã¹ãã ãé²åãç¶ããã«ã€ããŠãuseOpaqueIdentifier
ã®ãããªããŒã«ãåãå
¥ããããšã¯ãäžçäžã®èŠèŽè
ã«å¯Ÿå¿ãããå
ç¢ã§ã髿§èœã§ãã¢ã¯ã»ã·ãã«ãªWebã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«äžå¯æ¬ ã«ãªããŸãã
å®éšçãªæ©èœãšãã®äœ¿çšæ³ã«é¢ããææ°æ å ±ã«ã€ããŠã¯ãåžžã«å ¬åŒã®Reactããã¥ã¡ã³ããåç §ããŠãã ããããŸããã¢ããªã±ãŒã·ã§ã³ããã¹ãŠã®ãŠãŒã¶ãŒïŒèœåãå°ççãªå Žæã«é¢ä¿ãªãïŒã䜿çšå¯èœã§ã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããããã«ã培åºçãªãã¹ããšã¢ã¯ã»ã·ããªãã£ç£æ»ãåªå ããŠãã ããã