요소 숨김 처리

CSS로 대체 텍스트를 화면에서 숨기는 방법은 여러가지가 있다. 몇가지 방법들을 살펴보고 사용하지 말아야 할 속성들과 주의해야할 점들을 알아보도록 하겠다. 대체 텍스트는 그 의미가 잘 전달이 되도록 시멘틱하게 마크업 해야 하고, 화면에서 보이지 않도록 CSS로 숨긴다. 이때 중요한 것은 스크린 리더기가 읽을 수 있도록 처리해야 한다는 점이다.

 


 

요소를 화면에서 숨기는 방법

  (1) 좋지 않은 수준

  • 스크린 리더가 인식하지 못하기 때문에, 다음 중 어느 속성이라도 사용하지 말아야 한다.
/* 투명도를 0으로 주는 것과 동일하게 화면에서 사라지지만, 스크린 리더 인식 안함 */
visibility: hidden;

/* 요소가 아예 없는 것으로 인식 */
display: none;

/* 요소의 사이즈를 0으로 만들면 스크린 리더 인식 안함 */
width: 0;
height: 0;
font-size: 0;
line-height: 0;

 

  (2) 그저 그런 수준

  • 스크린 리더가 인식하지만 레이아웃이나 성능 등에 이슈가 발생할 수 있기 때문에, 상황에 맞게 사용하여야 한다.
  • 참고로  text-indent 값을 100%로 처리함으로서 성능 이슈는 피할 수 있다.
/* 투명해진 것 뿐, 위치를 그대로 잡고 있기 때문에 단독으로 사용 불가능 */
opacity: 0;

/* 전체 레이어의 크기가 지나치게 크게 잡힘: 성능 이슈  */
text-indent: -9999px;

/* position 속성 추가해야 함: 성능 이슈  */
z-index: -1;

 

  (3) 좋은 수준

  • 스크린 리더가 인식하면서 레이아웃이나 성능 등에 영향을 미치지 않는 방법으로, 아래 속성들을 조합해서 사용한다.
  • HTML 전체적으로 많이 쓰이기 때문에 클래스로 처리하는 것이 효율적이다.
<span class="blind">숨김 텍스트</span>
.blind {
    /* 레이아웃에 영향을 끼치지 않도록 */
    position: absolute;

    /* 스크린 리더가 읽을 수 있도록 */
    width: 1px;
    height: 1px;

    /* 눈에 보이는 부분을 제거 */
    clip: rect(0 0 0 0);
    margin: -1px;
    overflow: hidden;
}

 

clip: rect(top right bottom left);

  • 네개의 좌표로 지정한 직사각형 모양대로 요소를 잘라내는 속성이다.
  • position 속성 값이 absolute 혹은 fixed인 요소여야 한다.
  • 만약 overflow 속성 값이 visible일 경우에는 적용이 되지 않는다.


 

 


 

 

 

[ 출처 ]

BoostCourse 웹 UI 개발 : https://www.boostcourse.org/web344/lecture/47663

728x90

'WEB > 웹 접근성' 카테고리의 다른 글

스크린리더  (1) 2024.09.26
웹 접근성 진단 도구  (1) 2024.09.26
마크업 오류 방지  (1) 2024.09.26
오류 정정  (0) 2024.09.26
레이블 제공  (0) 2024.09.26