일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- absolute
- Semantic tag
- translate
- css3
- 툴팁
- jQuery
- 깜박임
- window open
- script
- html5
- JavaScript
- Transform
- Semantic
- window.open
- relative
- onclick
- position
- 팝업
- 새창열기
- googlechart
- jQuery UI
- 구글차트
- 페이지 이동
- 시맨틱 태그
- 태그
- 시맨틱
- 가상 클래스
- 가상 요소
- HTML
- tag
- Today
- Total
무아지경
[CSS] 텍스트 숨기기(웹 접근성 고려...) 본문
텍스트 숨기기
작업을 하다 보면 버튼이나 a링크에 텍스트가 보이자 않아야 하는 경우 또는 <table> 에서 <caption>을 숨겨야 하는 경우..
등등의 이유로 텍스트를 숨겨야 하는 경우가 있다.
이럴때 무조건 안보이기만 한다면 간단히 display:none 혹은 visibility:hidden 으로 숨기면 된다.
하지만 문제는 웹 접근성이다.
웹 접근성을 지키면서 텍스트를 숨겨야 하는게 문제가 된다.
<table> 에서 <caption>의 경우 화면에서는 보이지 않아야 하지만 스크린 리더는 읽을 수 있어야 한다.
display:none 혹은 visibility:hidden 으로 숨기면 스크린 리더가 해당 내용을 읽을 수 없기 때문에 사용 해서는 안된다.
이외에도 font-size:0; / line-height:0; / width:0px; height:0px 등을 사용 해서 숨기기도 하는데 이 역시 스크리 리더가 읽을 수 없다.
그럼 스크린 리더가 읽을 수 있으면서 안보이게 하려면 어떻게 해야 할까...
1. text-indent:-10000px
이 방법은 텍스트를 화면 밖으로 밀어버려서 안보이도로록 하는 방법이다.
실제로 사용했던 방식인데 문제가 있다고 한다. form 또는 link 요소에 할 경우 포커싱 되었을때 스크린 밖에 위치해 있기 때문에 정확한 위치를 표시 할 수 없어 혼란을 줄 수 있고 우리와 다르게 오른쪽에서 왼쪽으로 언어를 읽는 경우(RTL 언어권) 문제가 된다.
But 페이징(paging) 디자인 할때 혹은 이와 비슷한 디자인의 경우 사용하는건 큰 문제가 없지 않을까??
a링크를 사용하고 아무런 글자도 넣지 않으면 그것 또한 웹 접근성 자가진단 테스트에서 오류로 잡기 때문에 이런 디자인에는 사용해도 무방 할 것 같다.
2. position:absolute를 이용해 화면 밖으러 밀어내는 방법
1 2 3 4 5 6 7 | .hidden { position: absolute !important; top:auto; left:-10000px; width:1px; height:1px; overflow:hidden; } | cs |
- 이 방법은 현재 <caption>을 숨길때 사용하고 있는 방법이다.
- 첫번째 방법의 문제점을 알고 난 후 같은 문제점이 있지 않을까? 하는 생각이 든다.
3. CSS clip 사용
1 2 3 4 5 6 7 | .hidden { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px 1px 1px 1px); /* IE6, IE7 */ clip:rect(1px, 1px, 1px, 1px);} | cs |
- 1px이 안되는 공간을 만들어 화면상에서 콘텐츠를 없애주고 스크린 리더에서 읽혀진다.
- position:absolute; : 레이아웃에 영향을 끼치지 않도록...
- width:1px;, height:1px; : 스크린 리더가 읽을 수 있도록...
- clip:rect(1px, 1px, 1px, 1px); : 눈에 보이는 부분 제거
이 방법은 이번에 알게 된 방법으로 사용 여부는 좀 더 알아봐야 할 것 같다.
'퍼블리싱 > HTML5 + CSS3' 카테고리의 다른 글
[CSS] 반응형 작업을 위한 폰트 단위 em / rem 사용 (23) | 2019.01.17 |
---|---|
[HMTL] 특수문자 변환 (0) | 2018.12.19 |
[HTML] onclick로 페이지 이동시키기 (8) | 2018.08.28 |
[CSS] div안에서 가로/세로 가운데 정렬 (0) | 2018.07.16 |
대문자/소문자 변경 text-transform, font-variant (0) | 2018.07.13 |