🌱 웹 표준 & 접근성
웹 표준
웹 표준은 W3C에서 제시한 권고 사항으로, 웹에서 표준적으로 사용되는 기술이나 규칙을 의미합니다. 어떤 브라우저를 사용하더라도 웹 페이지가 동일하게 보이고 정상적으로 작동할 수 있도록 하는 웹 페이지 제작 기법을 포함하고 있으며 이러한 웹 표준을 준수하는 것은 사용자에게 좋은 사용자 경험을 제공하고, 검색 엔진 최적화 등의 이점을 가져다줍니다.
최신 웹 브라우저, 크롬, 엣지, 사파리, 오페라, 파이어폭스 등은 모두 웹 표준을 지원하므로, 웹 페이지를 웹 표준에 맞춰 작성하면 어떤 브라우저를 사용하더라도 동일한 결과물을 얻을 수 있습니다. 웹 표준은 W3C에서 제공하는 '권고' 사항이지만, 사용자에게 좋은 사용자 경험을 제공하기 위해 웹 표준을 준수하는 것이 좋습니다.
웹 표준 장점
- 유지 보수의 용이성
이전에는 HTML, CSS, JS 등을 사용할 때 구조(HTML), 표현(CSS), 동작(JS)이 섞여서 작성되기도 했으며, 이는 특정 부분을 수정하기 위해 전체를 고쳐야 할 때가 있었습니다. 그러나 이제는 각각의 영역이 분리되어 유지 보수가 용이해졌으며, 마크업 코드도 불필요한 부분을 제거하여 경량호되어 트래픽 비용이 줄어들었습니다. - 웹 호환성 확보
웹 사이트가 특정 운영체제나 브라우저에 종속되지 않아 다양한 환경에서 동일하게 작동할 수 있습니다. 이를 준수함으로써 사용자에게 좋은 사용자 경험을 제공할 수 있습니다. 만약 웹 사이트가 웹 표준을 준수하지 않고 특정 브라우저나 운영 체제에 종속적이라면, 그 외의 환경에서는 제대로 작동하지 않을 수 있습니다. - 검색 효율성 증대
웹 표준에 맞게 웹 사이트를 작성하면 검색 엔진에서 더 높은 우선순위로 노출될 수 있어, 검색 효율성을 높이는 데 도움이 됩니다. 이를 위해 웹 표준은 적절한 HTML 요소의 사용과 웹 페이지에 대한 정확한 정보 작성 등 검색 효율성과 관련된 내용을 다루어 홍보 비용을 들이지 않아도 검색 효율성을 높일 수 있습니다. - 웹 접근성 향상
브라우저의 종류, 운영 체제의 종류, 기기의 종류 등 웹 환경의 다양성과 사용자의 다양성으로 인해 모두를 충족하는 개발은 쉽지 않지만, 웹 표준을 준수하면 이러한 문제를 해결할 수 있습니다.
Semantic HTML
웹 표준에서는 HTML을 시멘틱하게 작성하는 것이 중요합니다. semantic은 '의미의, 의미가 있는'이라는 뜻을 가지고 있습니다. 의미를 가진 Semantic HTML를 작성하여 각 구조의 역할을 쉽게 파악할 수 있습니다.
<div>
와 <span>
요소로만 화면을 구성했을 때에 비하면 각 요소의 이름만으로도 어떤 역할을 할 지, 어떤 내용을 담게 될 지 명확하게 알 수 있습니다. 이처럼 요소가 어떤 내용을 담게 될지, 어떤 기능을 하게 될지 확실하게 의미를 가지고 있는 요소를 시멘틱 요소라고 합니다.
시멘틱 HTML의 필요성
- 개발자 간 소통
주석이나 id, class를 사용하지 않고도 해당 요소가 어떤 역할을 할 지 명확하게 알 수 있어 각 요소의 기능을 정의하느라 낭비하는 시간을 절약할 수 있습니다. - 검색 효율성
검색 엔진은 시멘틱 요소를 보고 문서의 구조를 파악하여 어떤 요소에 더 중요한 내용이 들어있을 지 우선순위를 정하여 우선순위가 더 높은 페이지를 검색 결과 상단에 표시하게 됩니다. - 웹 접근성
스크린리더로 웹페이지를 이용하는 사용자에게 화면의 구조에 대한 정보까지 추가로 전달할 수 있어 콘텐츠를 좀 더 정확하게 전달할 수 있습니다.
요소 종류 | 설명 |
<header> | 페이지나 요소의 최상단에 위치하는 머리말 역할 |
<nav> | 메뉴, 목차 등에 사용되는 요소 |
<aside> | 문서와 연관은 있지만, 직접적인 연관은 없는 내용을 담는 요소 |
<main> | 이름 그대로 문서의 메인이 되는 주요 콘텐츠를 담는 요소 |
<article> | 게시글, 뉴스 기사 등 독립적으로 구분해 재사용할 수 있는 부분을 의미하는 요소. 각각의 <article>을 구분하기 위한 수단이 필요하며, 보통 제목을 퐇마하는 방법을 사용한다. |
<section> | 문서의 독립적인 구획을 나타내며, 딱히 적합한 의미의 요소가 없을 때 사용한다. 제목을 포함하는 경우가 많다. |
<hgroup> | 제목을 표시할 때 사용하는 요소. <h1>~<h6>을 의미한다. |
<footer> | 페이지나 요소의 최하단에 위치하는 꼬리말 역할의 요소 |
주의해야하는 마크업
- 블럭 요소 안에 인라인 요소
블럭 안에 인라인은 포함할 수 있지만 인라인 요소 안에 블럭 요소를 포함할 순 없다. <b>
,<i>
태그 대신 시멘틱한<strong>
,<em>
사용하기<hgroup>
요소의 역할을 디자인적 요소로만 사용하기<br>
연속으로 사용하기. → 대신<p>
를 사용하고<p>
사이에 margin 스타일을 주는 것이 좋다.- 인라인 스타일링 사용하지 않기.
크로스 브라우징
웹 사이트에 접근하는 브라우저의 종류와 상관없이 동등한 화면과 기능을 제공할 수 있도록 만드는 작업.
크로스 브라우징 워크플로우
- 초기 기획
필요 콘텐츠와 기능, 디자인을 결정하며 이 사이트의 고객층이 사용하는 브라우저와 기기를 파악하여 여기에 맞는 기술을 사용해 개발할 수 있도록 기획한다. - 개발
브라우저의 호환성을 파악하여 개발한다.
- 테스트 / 발견
- 데스크탑 브라우저 (크롬, 엣지, 파이어폭스, 오페라, 사파리 등) 테스트
- 휴대폰 및 태블릿 브라우저 (삼성 인터넷, 사파리, 안드로이드의 크롬) 테스트
- Window, Linux, Mac 등 다양한 운영 체제 테스트
- 수정 / 반복
섣불리 수정했다가는 다른 브라우저에서 버그가 발생할 수 있으므로, 조건문을 작성해 다른 코드를 실행하게 하는 방식으로 고쳐나가는 것이 좋다. 수정이 완료되면 3번부터 반복한다.
웹 접근성
접근성은 사람들의 접근이 제한되어 있거나 몸이 불편하더라도, 가능한 많은 사람들이 웹 사이트를 사용할 수 있도록 하는 것입니다. 접근성은 개인의 신체적, 인지적 능력 및 웹에 접근하는 방법과 관계없이 가능한 접근할 수 있도록 콘텐츠를 개발하는 것을 말합니다. 일반적으로 웹 접근성은 장애인, 고령자 등이 웹 사이트에서 제공하는 정보에 비장애인과 동등하게 접근하고 이해할 수 있도록 보장하는 것을 뜻합니다.
" 웹은 사람들의 하드웨어, 소프트웨어, 언어, 문화, 장소, 혹은 신체적 물리적 능력과 관계없이
모든 사람을 위해 작동하도록 설계되었습니다
. 웹이 이 목표를 달성할 때, 다양한 범위의 청각, 움직임, 시각, 그리고 인지 능력을 가진 사람들이 웹에 접근할 수 있습니다."
- W3C [접근성]
웹 접근성의 효과
- 사용자층 확대
장애인, 고령자 등 정보 소외 계층도 웹 사이트를 자유롭게 이용할 수 있어 새로운 고객층을 확보할 수 있습니다. - 다양한 환경 지원
정보 소외 계층이 아니더라도 정보에 접근하기 어려운 상황에도 접근할 수 있도록 서비스의 사용 범위가 확대되어 서비스의 이용자 수 증가를 기대할 수 있습니다. - 사회적 이미지 향상
기업이 정보 소외 계층을 위한 사회 공헌 및 복지 향상에 힘쓰고 있음을 보여줄 수 있습니다.
웹 접근성 지침
- 인식의 용이성 : 모든 콘텐츠는 사용자가 인식할 수 있어야 한다.
- 적절한 대체 텍스트
- 자막 제공
- 색에 무관한 콘텐츠 인식
- 명확한 지시사항 제공
- 텍스트 콘텐츠 명도 대비 (4.5 : 1)
- 자동 재생 금지
- 콘텐츠간 구분
- 운용의 용이성 : 사용자 인터페이스 구성요소는 조작 가능하고 내비게이션 할 수 있어야 한다.
- 키보드 사용 권장
- 초점 이동
- 조작 가능
- 응답 시간 조절
- 정지 기능 제공
- 깜빡임과 번쩍임 사용 제한
- 반복 영역 건너뛰기
- 제목 제공
- 적절한 링크 텍스트
- 이해의 용이성 : 콘텐츠는 이해할 수 있어야 한다.
- 기본 언어 표시
- 사용자 요구에 따른 실행
- 콘텐츠 선형 구조
- 표의 구성
- 레이블 제공
- 오류 정정
- 견고성 : 웹 콘텐츠는 미래의 기술로도 접근할 수 있도록 견고하게 만들어야 한다.
- 마크업 오류 방지
- 웹 어플리케이션 접근성 준수
'🐣 STUDY > HTTP, WEB' 카테고리의 다른 글
🌱 [Web] cookie & session (0) | 2023.05.02 |
---|---|
🌱 [HTTP/네트워크] 네트워크 기초 (2) | 2023.04.26 |
[기술면접] (1) | 2023.04.10 |
🌱 [Web Server/Node.js] Express - req.query, req.params (1) | 2023.04.05 |
🌱 [Web Server/Node.js] Express 프레임워크 (2) | 2023.04.05 |