안녕하세요. 오늘은 웹 표준과 웹 접근성에 대해서 공부한 내용을 정리해보려 합니다.
정리하는 내용에서는 표준이 왜 필요하고, 표준을 잘 지킴으로써 얻는 이점이 무엇이 있는지 알아보며, 이를 통해 보다 좋은 프로그래머가 될 수 있도록 합니다.
웹 접근성 파트에서는 기술을 위한 기술이 아닌, 인간을 위한 기술에 대해 고민해보고 이를 달성하기 위한 방법들에 대해 알아볼 예정입니다.
웹 표준은 말 그대로 '웹'이라는 공간에서 통용되는 여러 표준들을 통틀어 웹 표준이라고 부릅니다. 이를 권고하는 기관은 W3C(World Wide Web Consortium)로 웹에서 표준적으로 사용되는 기술이나 규칙들을 표준으로 배포합니다. HTML, CSS, JS에 대한 표준도 이에 포함됩니다.
표준이 없던 시절에는 웹 브라우저마다 지원하는 태그나 기능들이 달라 각 브라우저에 대응되는 사이트를 만들어야 했다고 합니다. 상상만 해도 끔찍한 일이 아닐 수가 없는데요. 현대에 이르러서는 표준을 잘 지켜 개발하는 것만으로 어떤 운영체제/브라우저에서 웹 페이지에 접속하더라도 동등한 정보를 제공합니다.
여기서 '동등'은 '동일'과는 다른 의미입니다. 브라우저가 다르다면 한 코드로 100% 동일한 화면을 제공한다는 것이 어려울 수 있습니다. 하지만 표준을 잘 지켜 개발할 시 누가 정보에 접근하든 개발자가 의도한 정보를 오롯이 표시할 수 있습니다.
앞으로 글에서 설명할 SEO와 웹 접근성을 아래와 같이 정의합니다.
SEO와 웹 접근성, 이 2개가 웹 표준과 어떻게 연관될까요? 우선 SEO부터 살펴보면 웹 표준, 그 중에서도 HTML 코드를 작성 시 의미가 분명하게 드러나도록 하는 요소들이 존재합니다. 이를 시맨틱(Semantic) 요소라고 부르는데요. 시맨틱 요소는 글의 주된 내용이 어디서 등장하는지를 마크업으로 나타내기 때문에 검색 엔진이 참고할 때 개발자의 의도대로 참조될 확률을 높여줍니다.
따라서 웹 표준을 지켜 코드를 작성, 즉 시맨틱 요소를 사용하여 코드를 작성한다면 자연스럽게 검색 엔진이 검색 결과에 등록할 확률이 높은 방식으로 코드를 작성하게 됩니다.
웹 접근성의 경우에도 이와 마찬가지로 시각장애인을 위한 스크린 리더 등이 동작할 때 어떤 부분이 본문인지 안내함으로써 실제 사용자에게 알리려고 하는 정보를 효율적으로 전달할 수 있습니다.
이처럼 웹 표준을 잘 지키는 것만으로 검색 효율성(SEO로 인한)과 웹 접근성이 향상되는 관계라고 설명할 수 있습니다.
현재의 HTML 표준에서는 시맨틱 요소로 코드를 작성하길 권장합니다. 실제로도 HTML로 복잡한 레이아웃을 작성하다 보면 div와 span만으로 화면을 구성하는 것보다 시맨틱 요소로 화면을 구성하는 것이 나중에 볼 때도 코드를 이해하기 쉽게 만들어줍니다.
<header>
, <nav>
, <main>
등이 있으며 매우 많은 요소들이 있어 이를 모두 외우기 보다는 공식 문서를 참고하여 작성하기를 권장 드리는데요. 일부러 외우는 것보다 코드를 작성하며 자연스럽게 익히는 것이 더 효율적이기 때문입니다.
웹 접근성이 필요한 이유는 그것이 '당연히' 필요하기 때문이에요. 즉 당연히 컴퓨터나 스마트폰 등의 전자기기 사용이 능숙한 비장애인이 아니더라도 웹을 통해 정보에 접근할 수 있어야 합니다.
물론 웹 접근성은 소수자만을 위한 배려가 아니에요. 웹 접근성을 보장하는 것으로 운전 중과 같이 시각적인 확인이 어려울 때는 시각장애인이 웹을 사용하는 것처럼 스크린 리더를 통해 소리로 정보에 접근할 수 있기 때문입니다. 웹 사이트나 새로운 서비스를 만들 때도 항상 접근성을 고려하면 이용자 증가, 새로운 타겟 고객층 발굴, 다양한 사용환경 지원 확보로 이어집니다.
물론 자신이 경험해보지 못 한 환경의 접근성을 직관으로만 충족하기란 매우 어려운 일입니다. 그렇기에 웹 접근성을 잘 확보했는지 점검하기 위한 여러 지침들이 존재하는데요. W3C에서 배포하는 WCAG(Web Content Accessibility Guidelines) 2.0이 그 예입니다.
자세한 내용은 해당 지침을 기반으로 한국에 맞게 수정한 지침인 '한국형 웹 콘텐츠 접근성 지침 2.1'을 참고 부탁드립니다.
사실 공부할 때나 토이 프로젝트에서까지 웹 접근성을 신경 쓰는 경우는 제 경험으로 미뤄보았을 때 통상적인 경우는 아닌 것 같습니다. 하지만 모든 사용자에게 가치 있는 서비스를 전달하기 위해서는 이러한 내용이 있다는 것을 기억하고, 적용하려는 노력이 중요한 것 같습니다.
웹 표준의 경우도 SEO나 웹 접근성 향상을 목적으로만 지키는 것이 아니라 내가 읽기 쉬운 코드를 작성한다는 측면에서 잘 지켜야 할 것입니다.