HTML에는 텍스트를 그대로 두고, 화면에는 그 텍스트 대신 이미지를 보여 주는 CSS 기법. 로고나 디자인된 제목에 썼다. 텍스트가 남아 있어 스크린 리더(Screen Reader)와 검색 엔진이 내용을 읽을 수 있다.
/* 텍스트를 화면 밖으로 밀어내기 */
.logo {
background: url(logo.png) no-repeat;
width: 200px; height: 50px;
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
}- 예전에는
text-indent: -9999px로 멀리 밀어내는 방식(Phark)이 흔했다. 위처럼100%만 밀고 넘친 부분을 숨기는 방식(Kellum)은 거대한 상자를 만들지 않는다 - 화면에서만 숨기고 보조 기술(Assistive Technology)에는 읽히게 하는 sr-only(visually hidden) 패턴도 같은 계열이다. 아이콘 버튼에 이름을 붙일 때 지금도 쓴다
.sr-only {
position: absolute; width: 1px; height: 1px;
overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}display: none이나 visibility: hidden은 스크린 리더에서도 사라지므로 이 용도로는 쓰지 않는다. 요즘은 SVG(Scalable Vector Graphics)·웹폰트가 좋아져서 이미지로 바꾸는 IR 자체는 드물고, 로고는 img에 alt를 주거나 인라인 SVG에 title을 다는 쪽이 일반적이다.
참고: Zeldman — Replacing the -9999px hack (new image replacement) · CSS-Tricks — Inclusively Hidden