Code Logs

22.02.28

Safari, Chrome 브라우저에 따라 달라지는 button의 focus 속성
고양이 빵 Cat bread - 세마리의 고양이와 홈베이킹 이야기

Focus on Button - Safari VS Chrome

Safari, Chrome 브라우저에 따라 달라지는 button의 focus 속성

focus 속성은 브라우저와 OS 환경에 따라 약간의 차이를 보이는데 정리하자면 다음과 같다.

Clicking and focus - MDN Web Docs

표에서 보는바와 같이 Safari<button>, <input type=”button” />, <input type="submit" />focus 속성을 지원하지 않는다.

<button id="button">Button</button>

<script>
  const button = document.querySelector('#button')
  button.addEventListener('click', () => console.log('Click on button'))
  button.addEventListener('focus', () => console.log('Focus on button'))
</script>

html 을 통해 생성된 <button />을 클릭하고 개발자 도구의 console을 확인하면

Chrome의 경우 - Focus on button 과 Click on button 을 번갈아 가며 출력하는 반면

Safari의 경우 - Click on button 만 출력하게 된다.

이러한 특성에 기인하여 focus, focus-within , focus-visible 등의 의사 클래스를 통한 DOM 조작이 예상치 못한 방향으로 흘러 갈 수 있으니 주의해야 한다.

카테고리 더보기

    참고

    댓글