최근 iOS 10에서 viewport meta 정보에 대해, user-scalable=”no” 를 무시하도록 되었다는 글을 보았다. 이것이 사실이든 아니든, 내가 작업할 때에는 user-scalable을 무조건 적으로 “yes”를 사용하는 편이기 때문에 이러한 변화가 있었는지에 대해 전혀 인지를 하지 못하고 있었다. (stackoverflow에 올라온 질문글을 보면, iOS 10 beta1에서 해당 기능이 들어간 모양이다.)

문제는 저렇게 된 걸 어떻게 적용되게 하느냐는 질문이 있다는 것이다.

Why? 라는 질문을 좀 던지자.

apple에서 user-scalable=”no”를 막았다면, 그에 상응하는 이유가 있을 거다.
사실 user-scalable을 yes로 두기를 권장하는 것은 오래전부터 있어왔던 이야기다. 심지어 w3c github에서는 HTML spec에 user-scalable=no와 maximum-scale=1.0 을 사용하지 않게 하자는 제안이 올라와 있기도 하다.(#602)

이 이슈는 알고있는 이는 알겠지만, 접근성 상의 이슈로부터 출발했다. 좁은 시야를 가진 저시력 장애 사용자 등의 경우, 화면을 보기 위해서는 화면을 확대해서 눈 앞에 두고 봐야 하는 경우가 많다. 그런데 화면 확대를 막아버리면 아무리 확대를 하려해도 할 수 없기 때문에 콘텐츠를 확인하는 것이 당연히 어렵게 된다. HTML spec에 올라온 제안 역시 마찬가지의 이유다.

비단 이 문제 뿐 아니라, HTML elements에 대한 부분 역시 마찬가지다. HTML이 HTML 5로 넘어오면서 presentation을 목적으로하는 요소(element), 속성(attribute)들이 대거 폐기되고, CSS로 대체할 것이 권장되어졌다.

하지만, 이것들에 대해 "왜 그렇게 되었을까?" 라는 질문을 던지는 작업자는 그다지 보지 못했다.

Why? 라는 질문은 중요하다.

Apple이 해당 설정을 무시하게 한 것이나, W3C가 해당 제안에 대해 적극 검토를 한 것은 그만큼 접근성이라는 부분이나 사용자의 자율성에 대해 무게를 많이 두었다라는 것일 거다. 그것에 무게를 두고 있다라는 것은, 당연히 그 문제가 중요하다라고 여긴다는 것으로 이어진다.

이를 알아야 viewport 확대를 막아달라는 주문이 들어왔을 때, 어떠한 이유로 막아서는 안된다라는 반박의 근거가 되고, 어떠한 이유로 막아서는 안 되는지를 알아야 사용자에 대한 어떠한 문제가 있는지를 알 수 있다.

HTML 5 역시 마찬가지로, Markup Language의 역할은 문서의 구조, 의미 전달에의 목적에 충실에 따라 presentation을 위한 것들이 폐기 되었다. 이를 알지 못하는 한, semantic markup은 불가능에 가깝다.

아 몰랑~ 난 그런거 신경 안써 그거 몰라도 결과는 나오는데? 란다면 딱히 할 말은 없다.
물론, 그렇게 하기 때문에 접근성 품질이 떨어지고, 검색엔진 최적화 수준이 떨어지고, 코드 품질이 떨어지는 것은 알까 모르겠다.

Why? 를 알고 작업하자. 제발.

왜 브라우저들이 어떤 설정을 무시하는지 (앞서 언급한 모바일에서의 핀치 줌을 막는 설정이나, 팝업 창의 resizable을 막는 설정 등등), 왜 table 요소(element)를 레이아웃 용도로 사용하지 말라고 하는지, 왜 outline을 0 또는 none으로 하지 말라 하는지 등등, "왜"라는 것을 알지 못하는 한 어쩌면 좋은 품질의 코드는 결단코 나올 수 없을 거다.

"왜"를 알아야, 저러한 주문을 하는 기획자 혹은 클라이언트에게 왜 그렇게 해서는 안되는지, 그렇게 할 경우 발생되는 이슈가 어떠한 것들이 있는지 등을 설명할 수가 있고, 잘못된 방향을 올바른 방향으로 바꾸어 낼 수가 있다. (물론 가끔은 그냥 황소 고집 똥고집으로 기어이 자기 생각대로 밀어붙이는 이들도 적지않기는 하지만 말이다.)

또, "왜"를 알아야 당연히 양질의 결과물이 탄생할 수 있게 된다. "왜"를 알고 모르고의 차이는 매우 크다. 아는 이들은 요구사항과 제한사항의 사이에서 조율할 방법을 찾을 수 있지만, 모르는 이는 그냥 시키면 시키는 대로 할 뿐일테니까.

가장 황당한(?) 건, 왜 그런지는 모르면서 그냥 이렇게 하면 원하는대로 나와라며, 어떠한 이슈가 뒤따르는지조차 모르고 (모르기 때문에 너무나 당연하게) 저품질의 혹은 지양되는 방법을 아무렇지 않게 전파(?)하고 다닌다라는 거다. 그리고 그걸 보는 이 역시 "왜"를 묻지 않으니 그냥 그게 정답인줄로 받아들이고…

"잘" 하고 싶다면, 혹은 "좋은" 품질을 만들고 싶다면 부디 "왜" 그러한가, "왜" 그러한 이야기가 나오는가를 찾자. 제발.