작성 배경

browser-font-size-modify

브라우저의 font size 설정을 변경했을 때 사이트의 비율이 달라지는 것을 막는 방법을 공유하고, 방지할 필요가 있었는지에 대한 나의 생각을 기록한다.


원인

:root CSS pseudo-class에서 font-size(px) 속성을 선언하지 않았기 때문이다.


해결 방법

앱의 전역 CSS 파일로 사용하는 index.css, globals.css 파일 등에서 :root 의사 클래스 내 font-size 속성을 선언해 주면 된다.

rem 단위의 rroot이므로 body, html 속성이 아닌, :root 의사 클래스의 속성으로 선언해 주는 것이다. 실제로 :root 의사 클래스 이외의 클래스에서 선언한 font-size 속성은 em 단위에는 영향을 주지만, rem 단위에는 영향을 주지 않는다.

이때 주의할 점은 font-size 속성을 선언할 때 px 단위를 사용해야 한다는 것이다. 기준이 되는 값을 선언해야 하는데, rem 단위를 그대로 사용하는 것은 무의미하다.


그럼 접근성(A11y)은?

아이러니하게도 rem 단위를 사용할 때 :rootfont-sizepx 단위로 설정하면, 브라우저에서 font size 설정을 조작하더라도 페이지에는 아무런 변화가 없을 것이다. 이 부분은 주로 글자 크기를 크게 보는 시니어 사용자분들께는 불편함이 될 수 있고, 페이지가 브라우저의 설정을 무시하는 방식이라는 점에서 접근성이 저해된다.

customize-fonts

Font size 설정이 페이지에서 아무런 영향을 주지 않음


그럼에도 필자가 pxrem 단위의 기준을 세우는 것의 이점을 높게 본 까닭은 다음과 같다.

macos-text-size

macOS 시스템 설정

windows-text-size

Windows 11 시스템 설정


📝 마무리

웹 접근성을 고려하는 것은 모든 이에게 제품이 갖고 있는 정보와 기능을 최대한 동등하게 보장하기 위해 지켜야 하는 기준이라고 생각한다. 하지만, 이번 케이스처럼 접근성과 디자인 일관성이 충돌하는 상황에서는 트레이드오프를 인지하고, 제품의 성격에 맞게 선택하는 것이 현실적일 것이다.

중요한 것은 어떤 방식을 선택했느냐보다, 그 선택의 결과가 사용자 경험에 어떤 영향을 미치는지 이해하고 결정하는 데 있다.


참고