text-indent:-9999px를 활용하는 IR기법의 고도화

이미지 대체텍스트를 위한 CSS 기법인 IR기법에는 여러 방법이 있는데, 다룸에서 소개하는 IR기법에 다양한 기법에 대한 설명과 장단점이 잘 나와있다.

Phark Method

이 중 text-indent로 텍스트를 날리는 방법인 Phark Method가 가장 범용적으로 쓰이는 편인데, text-indent: -9999px와 같은 매우 큰 수치를 주어 화면 밖으로 밀어내버리는 원리이다.

.ir {
	display: inline-block;
	width: 200px;
	text-indent: -9999px;
	background: url(../images/blank.gif);
}

이는 화면상에 보이지 않더라도 실제 캔버스는 지정한 영역까지 뻗어있는 꼴이므로 text-indent: -9999px은 성능상 좋지 않다고 한다. 해법은 다음과 같으며, 특정한 경우가 아니라면 가장 애용하는 방식이다.

보완한 CSS

.ir {
	display: inline-block;
	width: 200px;
	text-indent: 100%;
	white-space: nowrap;
	background: url(../images/blank.gif);
	overflow: hidden;
}

text-indent를 요소의 너비와 동일하게 설정하면 텍스트가 첫 줄을 비우고 그 다음 행으로 개행하게 되는데 white-space: nowrap;를 이용해 이를 막고, 요소의 우측으로 텍스트가 삐져나가게 한 다음 해당 부분은 overflow: hidden; 처리하여 숨긴다. 이렇게 하면 실제 생성되는 캔버스 영역은 -9999px일 때보다 훨씬 작아지게 될 것이다.

이슈 및 해결

  • background를 지정하지 않고 본 기법을 활용하려는 경우, ie에서는 해당 영역을 감지하지 못하여 클릭할 수 없는 버그가 있었다. 이를 위해 투명한 2px*2px짜리 blank.gif를 만들어 배경으로 지정하여 해결했다.
  • ie7에서 해당 요소에 padding 값이 좌측 또는 우측에 적용되어있을 때 text-indent: 100%;로 지정하면 글씨가 삐져나오는 버그가 있었으며, 이 경우 %가 아닌 너비와 동일한 px로 지정하여 해결 가능하다.

웹 접근성 검수시 필수 점검 페이지

  • 메인
  • 통합검색 및 레이아웃
  • 회원가입 / 로그인
  • 게시판 – 목록 상세 등록
  • 관리자 운영페이지(DB 입력 페이지) – CMS로 등록하는 공지사항이나 QNA등
  • 핵심 기능
  • 핵심 콘텐츠
  • 디자인 콘텐츠 대표 유형
  • 이미지 많은 페이지 대표 유형
  • 각종 특이 케이스 및 외부 솔루션
  • 지도 / 동영상 등

카도와(K-WAH)만 맞춘다고 웹 접근성 준수 아니다

이번 달에만 “웹 접근성 자동점검 도구 카도와(K-WAH) 준수율 100% 맞추면 웹 접근성 지킨 것이 아니냐”는 질문을 세 번 째 받았다. 자동점검 보고서의 유의사항에 분명히 다음과 같이 적혀있는데도 말이다.

2. 웹 접근성의 준수여부는 K-WAH 자동평가만으로 판단될 수 없으며, 반드시 웹접근성표준의 전체 지표에 따른 수동평가를 통해 준수 여부를 확인하여야 합니다.

맞춤법 검증기 결과가 100점이 나왔더라도 그 문장의 문법과 짜임새가 훌륭한지는 알 수 없는 것처럼, 웹 접근성에 있어 자동으로 검증하는 부분은 극히 일부분이다. 매우 기초적인 문법 검사 정도로 생각해 두자.

웹 접근성 준수가 의무화 되면서 수년전보다 의식이 높아지기는 했으나 여전히 퍼블리싱 팀 이외의 부서에서는 자세한 내용을 모르는 경우가 많다. 접근성은 단지 한 부서만이 고군분투한다고 지켜지는 것이 아니다. 기획 단계에서부터 충분히 고려하여 콘텐츠를 만들어야 하며, 디자인, 개발팀 모두가 기여하는 영역이 있다. 한국형 웹 콘텐츠 접근성 지침 2.0 가이드라인 한국형 웹 콘텐츠 접근성 지침 2.1 가이드라인을 훑어보는데 한 시간만 투자해도 개요 정도는 파악할 수 있다. 자세한 내용은 이슈가 발생할 때 확인해도 좋으니, 어떤 내용들로 구성되어 있는지 정도는 알아두자.

모바일 웹 브라우저 URL 입력창 숨기기의 보안 이슈

모바일 웹 환경에서 사용자들에게 조금 더 넓은 뷰를 제공하고자 URL 입력창을 숨겨달라는 요구사항이 있었다. 이에 관련 팁을 찾아 적용하였으나 아이폰4(iOS8)/갤럭시노트2 환경에서 작동하지 않았고, 모 기사(아이폰 웹 앱 주소창 숨기기, 악용 가능성 제기 – IT World Korea)에서 해답을 찾을 수 있었다.

모바일 브라우저의 주소창을 숨겨 좀 더 수월하게 각종 피싱과 악성 코드에 악용 가능하다는 것인데, 실제로 보안에 민감한 금융권 웹 환경에서는 녹색 주소창을 확인하라는 등 주소창 그 자체의 보안을 매우 중시하고 있다. 애플은 처음에는 이 의견에 미지근한 반응을 보이더니 나중에는 이를 수용해 패치했다고 한다.

아이폰에서 직접 확인해보니 기존 웹 브라우저는 스크롤을 내려보면 URL 입력창이 사라지는 구조였으나, 현재는 입력창 대신 URL이 그 자리를 대체하며 영역의 높이가 작아질 뿐이다. 무려 4년도 더 된 기사에서 2년 전 팁의 해답을 찾았다는 것이 조금 의아하지만 보안이슈가 되는 사항이므로 더이상 깊게 고민않기로 했다.

URL창 숨기기 기능, 쓰지 말자.