<h1> 요소 숨김 처리 (display none or hidden)

조회수 2912회

이미지특정 목적으로 숨김처리를 할 때 어떤 방법이 유효하진 질문드립니다.

CASE

  • 특정한 이유로 인하여 h1 요소를 숨겨야 하는 상황

질문

  • 웹접근성, 검색엔진 크롤러를 고려할 때 h1 의 처리를 어떤 방식으로 처리해야 할까요?
  • display none 처리
  • hidden 속성을 준뒤 label 처리
  • section에 포함되지 않은 경우 hidden 속성을 가진 요소를 어떻게 label 처리 해야할까요?
  • 이외에 다른 방식??

참고

1 답변

  • 저 텍스트를 보여주지도 않을 거면서 왜 저 자리에 텍스트로 입력해야 하는 건가요?

    1. 만약 그게 스크린 리더 때문이라면 부트스트랩이 .sr-only 클래스를 이용해서 스크린 리더 전용 텍스트를 남겨놓는 방식을 참고해보면 어떨까요.

    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }
    

    보시면 아시겠지만 display: hidden; 먹이면 될것같은 문제를 아주 까다롭게 처리하고 있죠. 화면에 띄지는 않지만 유효한 텍스트로 남겨 두려면 이렇게 하시면 될 거 같습니다.

    2. 만약 SEO 때문에 넣으신 거라면 차라리 적절한 메타태그를 많이 사용하시는 게 도움이 됩니다. 종래의 트릭들 ― left: -5000px;이나 color: transparent; 같은 것들 ― 은 너무 낡아서 검색엔진들/스패머들에 의해 쉽게 간파당합니다.

    3. 이미지가 로딩되지 않을 때 대신 자리를 채우는 기능으로 넣으시는 거라면 스크립트로 동적으로 바꿔치거나, 그냥 alt="MWave" 형식으로 주시는 게 낫습니다.

    4. 이도 저도 아니라면 display: none; 주면 별문제 없을 겁니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)