自由なスタイルのアウトラインDOM要素

最近、アクセシビリティについての質問がますます頻繁になっています。以前 outline



 はページ要素を非表示にするのが一般的なルールでしたが、今では、良いサイトには少なくとも要素のアウトラインが必要 :focus-visible



です。主な問題 outline



 はそれらのスタイルです。





この記事で概説されている私の解決策にたどり着きました。





大きなgif





pet ( ) DOM.






 div



   document.body



 ,  pointer-events: none



, , z-index



  .





4-e div



  :





(scss):





 document



pointerenter



pointerleave



 , focus



 , blur



:





React , .





 tabIndex > -1



  event.target



.  href



,  disabled



.  blur



  , , ( , …  button



  a



 ):





 show



   target



   getBoundingClientRect



. , 4-e div



, :





, !





.





, , , . .





また、 overflow: hidden



 影響はありません outline



が、要素の形状と寸法を追跡する必要がある場合があります(たとえば、ResizeObserver)。これにより、このアプローチを改善でき、すべてが手元にあります。





読んでくれてありがとう!









さらに詳しい情報が必要な場合は、このDMartzub.onlineについてお知らせください 





PS:私の記事の英語版はこちらです








All Articles