목록으로
디지털 정부 KRDS 인사이트

대체텍스트(alt), 왜 빈칸이면 안 되나

[월·개념] 대체텍스트(alt), 왜 빈칸이면 안 되나

VViewCheck
·2026.08.17 20분 96
대체텍스트(alt), 왜 빈칸이면 안 되나
본문 이미지 1

공감·문제제기

“이미지에 대체텍스트 넣으셨어요?”

웹 접근성 점검 회의에서 이 질문이 나오면, 회의실 공기가 미묘하게 가라앉는 순간이 있다. 다들 ‘그게 뭔지’ 어렴풋이는 안다. 그런데 막상 “우리 사이트 이미지에 대체텍스트가 제대로 들어가 있느냐”고 물으면, 자신 있게 “네”라고 답하는 사람은 드물다. 대개는 “외주 업체가 알아서 했을 거예요” 아니면 “그거… 이미지 설명 같은 거 아니에요?” 정도에서 멈춘다.

나도 한동안 그랬다. 공공 사이트 운영을 몇 년 하면서 ‘alt 속성’이라는 말은 수도 없이 들었다. 점검 보고서에도 늘 빠지지 않고 나오는 항목이었다. 그런데 솔직히 고백하면, 그게 정확히 무엇을 위한 것이고 왜 그렇게까지 중요한지를 제대로 이해한 건 한참 뒤의 일이었다. 그전까지 나에게 대체텍스트는 ‘점검에서 자꾸 지적당하니까 어쩔 수 없이 채워 넣는 칸’ 그 이상도 이하도 아니었다.

그러다 생각이 완전히 바뀐 계기가 있었다. 시각장애가 있는 분이 화면 낭독 프로그램으로 우리가 만든 사이트를 쓰는 걸 옆에서 지켜본 순간이었다. 기계 음성이 또박또박 페이지를 읽어 내려가다가, 어떤 이미지 앞에서 그냥 “이미지”라고만 말하고 지나갔다. 또 어떤 곳에서는 알 수 없는 파일 이름을 그대로 읽었다. “이미지 공백 공백 점 제이피지.” 그 순간 알았다. 우리가 무심코 비워둔 그 빈칸이, 누군가에게는 ‘읽을 수 없는 벽’이 되고 있었다는 걸.

이 글은 대체텍스트, 그러니까 흔히 ‘alt’라고 부르는 그 작은 속성을 처음 진지하게 들여다보려는 공공웹 담당자를 위한 입문 글이다. 이번 주 우리가 다루는 큰 주제는 웹 접근성, 그중에서도 이미지와 대체텍스트다. 전문 용어를 최대한 풀어서, 디자인이나 개발을 전공하지 않은 분도 “아, 이래서 빈칸이면 안 되는구나” 하고 무릎을 칠 수 있게 써보려 한다. 사이트 하나 운영해본 사람이라면 충분히 따라올 수 있는 이야기다.

먼저 결론부터 말하면 이렇다. 대체텍스트는 ‘눈으로 볼 수 없는 사람을 위해 이미지를 말로 옮겨 적은 글’이다. 화면을 보지 못하는 사람도, 이미지가 깨져서 안 뜨는 상황에 처한 사람도, 심지어 검색엔진이라는 기계조차도, 이 대체텍스트를 통해 ‘여기에 어떤 이미지가 있는지’를 안다. 그래서 대체텍스트가 빈칸이라는 건, 그 모든 사람과 기계에게 그 이미지가 ‘존재하지만 무엇인지 알 수 없는 무언가’로 남는다는 뜻이다.

그리고 여기서부터가 중요한데, 이건 단순히 ‘친절하면 좋은 것’의 문제가 아니다. 우리나라에서 웹 접근성은 권장이 아니라 법으로 정해진 의무다. 행정안전부의 「전자정부 웹사이트 품질관리 지침」이 정한 7대 영역 중 ‘접근성’이 당당히 한 자리를 차지하고 있고, 그 접근성을 구체적으로 따지는 한국형 웹 콘텐츠 접근성 지침(KWCAG)에서도 대체텍스트는 가장 먼저, 가장 기본으로 나오는 항목이다. 다시 말해 대체텍스트의 빈칸은 ‘배려의 부족’일 뿐 아니라 ‘기준 미달’이기도 하다.

조금 더 솔직하게 이야기를 풀어보자. 공공웹 담당자라는 자리는 챙길 게 너무 많다. 디자인 일관성에, 보안 점검에, 성능 최적화에, 품질관리 지침까지. 그 와중에 ‘이미지마다 설명 글을 일일이 넣어라’는 요구는 솔직히 뒤로 밀리기 쉽다. 콘텐츠 한 페이지에 이미지가 수십 장씩 들어가는데, 그걸 하나하나 손으로 설명 다는 게 보통 일이 아니기 때문이다. 그래서 많은 사이트가 대체텍스트를 ‘일단 비워두거나’ ‘아무 글자나 채워두거나’ 둘 중 하나의 방식으로 처리한다. 그런데 이 둘 다 사실은 문제다. 빈칸도 문제고, 아무 글자나 채우는 것도 문제다. 왜 그런지가 이 글의 핵심이다.

한 가지 미리 안심시켜 드리자면, 이 글은 대체텍스트를 ‘또 하나의 부담스러운 숙제’로 만들려는 글이 아니다. 오히려 그 반대다. 대체텍스트가 무엇이고 어떤 원리로 작동하는지를 알고 나면, ‘어떤 이미지에 무슨 글을 넣어야 하는지’가 의외로 단순한 몇 가지 규칙으로 정리된다는 걸 보여주려는 글이다. 막연하니까 어렵게 느껴지는 것이지, 원리를 알면 생각보다 명쾌하다.

사실 대체텍스트는 웹 접근성이라는 큰 산에서 ‘가장 낮은 봉우리’에 해당한다. 접근성에는 색 대비, 키보드만으로 조작하기, 동영상 자막, 깜빡임 제어처럼 손이 많이 가는 항목도 있다. 그에 비하면 대체텍스트는 ‘이미지에 설명 한 줄 다는 것’으로, 진입 장벽이 낮은 편이다. 그런데도 이 낮은 봉우리에서 가장 많은 사람이 걸려 넘어진다. 왜? 이미지가 너무 많고, 빈칸이 눈에 안 띄고, ‘누가 하긴 해야 하는데’ 하며 서로 미루기 때문이다. 바꿔 말하면, 대체텍스트는 ‘마음만 먹으면 가장 빨리 개선할 수 있는 영역’이기도 하다. 접근성 점수를 단기간에 눈에 띄게 끌어올리고 싶다면, 대체텍스트부터 손대는 게 가장 가성비 좋은 선택이다. 이 글이 ‘부담’이 아니라 ‘기회’로 읽혔으면 하는 이유가 여기에 있다.

이 글의 흐름을 미리 일러두면 이렇다. 먼저 ‘대체텍스트가 대체 무엇인지’를 라디오 중계에 빗대어 쉽게 풀고, 화면 낭독기가 어떻게 작동하는지를 짚는다. 그다음 ‘왜 빈칸이면 안 되는지’를 시각장애 사용자·깨진 이미지·검색엔진 세 관점에서 설명하고, 반대로 ‘아무 글자나 채워도 안 되는 이유’를 이야기한다. 이어서 ‘좋은 대체텍스트를 쓰는 원칙’과 ‘오히려 비워야 하는 예외(장식용 이미지)’까지 정리하고, 실제 공공 사이트에서 반복되는 익명 사례를 보여준 뒤, 마지막으로 ‘그래서 우리는 무엇부터 시작하면 되는지’를 실무 단계로 정리한다. 처음부터 끝까지 ‘어려운 용어를 쉬운 비유로 바꾸는 것’을 원칙으로 삼았으니, 편하게 읽어 내려가면 된다.

본론 1 — 개념·왜 중요한가

■ 대체텍스트가 대체 뭔가 — 라디오 중계를 떠올려보자

‘대체텍스트’라는 말이 좀 딱딱하게 들릴 수 있다. 영어로는 alternative text, 줄여서 alt라고 부른다. 말 그대로 ‘이미지를 대신하는(alternative) 텍스트’다. 그런데 이 ‘대신한다’는 말의 뉘앙스가 핵심이다. 단순히 이미지 옆에 붙는 부가 설명이 아니라, 이미지를 볼 수 없는 상황에서 ‘이미지 자리를 대신 채워주는 글’이라는 뜻이다.

이걸 가장 쉽게 이해하는 방법은 라디오 중계를 떠올리는 것이다. 야구 경기를 텔레비전으로 보면 화면만 봐도 무슨 일이 벌어지는지 안다. 그런데 라디오로 들으면 화면이 없다. 그래서 캐스터가 “타자가 친 공이 좌측 담장을 넘어갑니다! 홈런입니다!”라고 ‘눈에 보이는 장면을 말로 옮겨’ 준다. 라디오 청취자는 그 말을 듣고 머릿속에 장면을 그린다. 대체텍스트가 하는 일이 바로 이 라디오 중계와 똑같다. 화면을 볼 수 없는 사람에게, 이미지가 보여주는 내용을 ‘말로 옮겨’ 전달하는 것이다.

여기서 좋은 캐스터와 나쁜 캐스터를 떠올려보면 대체텍스트의 좋고 나쁨도 자연스럽게 이해된다. 나쁜 캐스터는 “어… 공이 날아갔어요”라고만 한다. 청취자는 그 공이 안타인지, 파울인지, 홈런인지 알 수가 없다. 더 나쁜 캐스터는 아예 입을 다물어버린다(이게 빈칸이다). 반대로 좋은 캐스터는 ‘청취자가 알아야 할 핵심’을 정확하고 간결하게 전한다. 너무 짧지도, 쓸데없이 길지도 않게. 대체텍스트를 잘 쓴다는 건 ‘좋은 라디오 캐스터처럼 이미지의 핵심을 말로 옮기는 일’이라고 생각하면 거의 정확하다.

또 한 부류의 나쁜 캐스터가 있다. ‘쉴 새 없이 떠드는’ 캐스터다. 별것 아닌 장면까지 시시콜콜 다 중계하느라, 정작 중요한 홈런 순간에 청취자가 지쳐서 집중을 놓친다. 대체텍스트에도 이런 과잉이 있다. 모든 이미지를 빠짐없이, 장식 하나하나까지 길게 설명하면, 듣는 사람은 핵심에 닿기도 전에 피로해진다. 그러니 좋은 캐스터의 또 다른 덕목은 ‘말할 것과 말하지 않을 것을 구분하는 절제’다. 무엇을 중계할지 고르는 안목, 그게 좋은 대체텍스트의 핵심이다. ‘많이 채우는 사람’이 아니라 ‘맞게 채우는 사람’이 잘하는 것이다.

이 라디오 비유에서 한 가지 더 얻어갈 게 있다. 라디오 중계가 의미 있으려면 캐스터가 ‘경기를 이해하고’ 있어야 한다. 야구 규칙도 모르는 사람이 중계하면 장면을 제대로 옮길 수 없다. 대체텍스트도 마찬가지다. 그 이미지가 ‘이 페이지에서 왜 거기 있는지’를 이해하는 사람이 써야 좋은 설명이 나온다. 그래서 대체텍스트는 단순한 받아쓰기가 아니라, 콘텐츠를 가장 잘 아는 사람이 ‘맥락을 담아’ 쓰는 게 이상적이다. 이미지를 올린 담당자 본인이 그 자리에서 한 줄 적어주는 게, 나중에 제3자가 추측으로 채우는 것보다 훨씬 정확하다.

조금 더 기술적으로 들어가 보면, 대체텍스트는 웹페이지를 만드는 코드 안에 숨어 있다. 이미지를 넣을 때 쓰는 코드에는 ‘여기에 이 이미지의 설명을 적으세요’라는 칸이 마련돼 있다. 화면에는 이미지가 그림으로 보이지만, 그 코드 안에는 ‘이 그림이 무엇인지’를 적는 글자 칸이 함께 들어 있는 셈이다. 평소 눈으로 사이트를 보는 사람에게는 이 글자 칸이 보이지 않는다. 하지만 화면을 볼 수 없는 사람의 보조기기는 바로 이 칸을 읽는다. 그래서 ‘눈에 안 보이니까 대충 해도 되겠지’라는 생각이 가장 위험하다. 눈에 안 보이는 그 칸이, 누군가에게는 유일하게 ‘들리는’ 부분이기 때문이다.

이 ‘눈에 안 보인다’는 특성이 대체텍스트를 유난히 방치되게 만드는 근본 원인이기도 하다. 일반적인 디자인 문제, 예를 들어 버튼 색이 이상하거나 글자가 깨졌거나 하는 건 누가 봐도 ‘티가 난다’. 그래서 빨리 발견되고 빨리 고쳐진다. 그런데 대체텍스트의 빈칸은 화면에 아무런 흔적을 남기지 않는다. 비장애인 담당자가 사이트를 아무리 들여다봐도, 이미지가 멀쩡히 보이니 ‘문제없다’고 느낀다. 정작 그 빈칸에 막혀 돌아서는 사용자는 담당자 눈에 보이지 않는 곳에 있다. 보이지 않는 사용자의 보이지 않는 좌절. 이게 대체텍스트 문제의 특수성이다. 그래서 ‘내 눈에 멀쩡하다’를 기준으로 삼으면 절대 발견할 수 없고, 의도적으로 ‘들어보거나’ ‘점검 도구로 확인해야만’ 비로소 드러난다.

한 번쯤 직접 체험해보길 권한다. 요즘은 컴퓨터나 스마트폰에 화면 낭독 기능이 기본으로 들어 있다. 그 기능을 켜고 눈을 감은 채 우리 기관 사이트를 ‘들어보면’, 그동안 보이지 않던 문제들이 한꺼번에 들린다. 이미지 앞에서 멈칫하는 침묵, 파일 이름의 기계어, 끝없이 반복되는 “이미지 이미지”. 이 경험은 백 마디 설명보다 강력하다. 5분만 들어봐도 ‘아, 이래서 챙겨야 하는구나’가 몸으로 이해된다. 개념을 머리로 아는 것과 귀로 듣는 것은 전혀 다른 차원의 이해다.

■ 화면 낭독기는 어떻게 사이트를 ‘읽을까’

대체텍스트가 왜 중요한지를 제대로 이해하려면, 화면 낭독기(스크린리더)가 어떻게 작동하는지를 알아야 한다. 화면 낭독기는 시각장애가 있는 분들이 컴퓨터나 스마트폰을 쓸 때 사용하는 프로그램이다. 화면에 무엇이 있는지를 ‘소리로 읽어주는’ 역할을 한다.

여기서 많은 사람이 오해하는 게 있다. 화면 낭독기가 ‘화면을 사진처럼 인식해서 알아서 설명해 준다’고 생각하는 거다. 그렇지 않다. 화면 낭독기는 화면의 ‘그림’을 보는 게 아니라, 그 화면을 구성하는 ‘코드’를 읽는다. 글자는 글자대로 읽고, 링크는 링크라고 알려주고, 버튼은 버튼이라고 알려준다. 그렇다면 이미지는? 이미지는 그림이라서 ‘읽을’ 수가 없다. 그래서 화면 낭독기는 이미지를 만나면 그 이미지에 딸린 ‘대체텍스트’를 대신 읽는다.

이 지점이 결정적이다. 대체텍스트가 잘 적혀 있으면 화면 낭독기는 “환하게 웃는 어르신이 복지관에서 태블릿 사용법을 배우는 사진”이라고 읽어준다. 사용자는 눈으로 보지 않고도 그 이미지가 무엇인지 안다. 그런데 대체텍스트가 비어 있으면? 화면 낭독기는 그 이미지에 대해 해줄 말이 없다. 그래서 그냥 “이미지”라고만 하거나, 더 심하면 이미지 파일의 이름을 그대로 읽어버린다. “이미지 underscore 공백 공백 한삼사오 점 피엔지.” 무슨 뜻인지 알 수 없는 기계어가 사용자의 귀에 꽂힌다.

상상해보자. 라디오를 듣는데 중요한 장면마다 캐스터가 입을 다물고 “화면, 화면, 화면”만 반복한다면 어떨까. 아니면 “파일 번호 삼사오”라고만 한다면. 청취자는 경기를 따라갈 수가 없다. 답답함을 넘어 ‘나는 이걸 들을 자격이 없는 사람인가’ 하는 소외감마저 든다. 비어 있거나 엉망인 대체텍스트는 시각장애 사용자에게 정확히 이런 경험을 안긴다.

게다가 공공 사이트의 이미지는 단순한 장식이 아닌 경우가 많다. 행사 안내 포스터, 신청 절차를 그림으로 정리한 흐름도, 통계를 보여주는 그래프, 지도, 자격 요건을 표로 만든 이미지… 이런 것들은 그 자체가 ‘정보’다. 만약 이 정보가 이미지로만 제공되고 대체텍스트가 비어 있다면, 시각장애 사용자는 그 정보에 아예 접근할 수가 없다. 비장애인은 포스터 한 장으로 5초 만에 알 수 있는 ‘신청 마감일’을, 시각장애인은 알 길이 없어진다. 같은 공공 서비스인데, 누군가에게는 정보의 문이 닫혀 있는 셈이다. 공공 서비스는 ‘누구나’ 써야 한다는 원칙을 떠올리면, 이건 단순한 불편이 아니라 ‘차별’에 가까운 일이 된다.

한 가지 더 분명히 해두고 싶은 게 있다. ‘화면 낭독기를 쓰는 사람이 얼마나 된다고 그렇게까지 챙겨야 하느냐’는 생각이다. 솔직히 나도 처음엔 그런 의문이 있었다. 그런데 이 생각에는 두 가지 오해가 깔려 있다. 첫째, 대체텍스트의 혜택을 받는 사람은 ‘전맹(완전히 보이지 않는)’ 사용자만이 아니다. 시력이 약해진 고령층, 손 떨림이나 인지적 어려움으로 화면 낭독을 보조 수단으로 쓰는 분, 일시적으로 눈을 다쳐 화면을 보기 힘든 사람, 운전 중이라 화면을 못 보고 음성으로만 정보를 듣는 사람까지 — 생각보다 폭이 넓다. 둘째, 접근성은 ‘소수를 위한 특별 대우’가 아니라 ‘모두를 위한 기본 품질’이다. 경사로는 휠체어 이용자만 쓰는 게 아니라 유아차를 끄는 부모, 무거운 짐을 든 택배기사, 다리를 다친 사람 모두가 쓴다. 대체텍스트도 마찬가지다. 한 사람을 위해 만든 배려가 결국 모두에게 도움이 된다. 이걸 ‘커브컷 효과’라고 부르기도 하는데, 보도블록의 턱을 낮춘 작은 설계가 모두의 편의로 돌아오는 현상을 가리킨다. 대체텍스트는 웹에서의 작은 커브컷이다.

그리고 한 가지 더, 고령화 사회라는 큰 흐름도 빼놓을 수 없다. 우리나라는 빠르게 늙어가고 있고, 공공 서비스를 가장 절실하게 필요로 하는 계층 중 상당수가 고령층이다. 나이가 들면 시력이 약해지고, 작은 글씨나 흐릿한 이미지를 알아보기 어려워진다. 화면을 확대하거나 음성 안내에 의존하는 분이 점점 늘어난다. 그러니 대체텍스트를 챙기는 일은 ‘지금 소수를 위한 일’이 아니라 ‘머지않은 미래의 다수를 위한 일’이기도 하다. 우리 자신도 언젠가는 그 사용자가 된다. 접근성을 ‘남의 일’이 아니라 ‘나중의 내 일’로 바라보면, 빈칸 하나를 채우는 손길이 조금은 달라진다.

본문 이미지 2

■ 빈칸이면 안 되는 세 가지 이유

이제 본격적으로 ‘왜 빈칸이면 안 되는가’를 정리해보자. 이유는 크게 세 가지다. 그리고 이 세 가지는 각각 다른 ‘사용자’를 위한 것이다.

첫째, 화면을 볼 수 없는 사람을 위해서다. 앞에서 길게 설명한 바로 그 이유다. 시각장애가 있는 분, 그리고 시력이 많이 약해진 고령층 일부는 화면 낭독기에 의존해 사이트를 쓴다. 이들에게 대체텍스트는 이미지를 ‘듣는’ 유일한 통로다. 빈칸은 그 통로를 막아버린다. 이게 가장 본질적이고, 법적으로도 가장 직접적인 이유다. 웹 접근성이 법적 의무인 이유의 핵심이 바로 여기에 있다.

둘째, 이미지가 깨졌을 때를 위해서다. 의외로 많은 사람이 놓치는 부분이다. 인터넷이 느리거나, 서버에 문제가 생기거나, 이미지 파일이 사라지면 화면에 이미지 대신 ‘깨진 이미지 아이콘’이 뜬다. 이때 대체텍스트가 적혀 있으면, 깨진 자리에 그 텍스트가 대신 표시된다. 사용자는 이미지가 안 떠도 ‘아, 여기 행사 안내 배너가 있었구나’ 정도는 알 수 있다. 반대로 대체텍스트가 비어 있으면, 깨진 자리에는 아무것도 안 뜨거나 정체불명의 아이콘만 남는다. 이건 비장애인에게도 일어나는 일이다. 즉 대체텍스트는 ‘특정 소수’만을 위한 게 아니라, ‘어쩌다 이미지가 안 뜬 평범한 사용자’ 모두를 위한 안전장치이기도 하다.

셋째, 검색엔진이라는 ‘기계 사용자’를 위해서다. 검색엔진은 사람이 아니지만, 사이트를 ‘읽어서’ 어떤 내용인지 파악한다. 그런데 검색엔진도 이미지를 그림으로 이해하지는 못한다. 검색엔진이 이미지의 내용을 아는 거의 유일한 단서가 바로 대체텍스트다. 대체텍스트가 잘 적혀 있으면 검색엔진은 “이 페이지에는 이런 이미지가 있고, 이런 주제를 다루는구나”라고 더 정확히 파악한다. 그 결과 검색 결과에 더 잘 노출되고, 이미지 검색에도 잡힌다. 다시 말해 대체텍스트는 접근성뿐 아니라 검색 노출(SEO)에도 도움이 된다. 공공 사이트도 ‘찾아오게 만드는 것’이 중요하다는 점을 생각하면, 이건 결코 사소한 이점이 아니다.

이 세 가지를 한 문장으로 묶으면 이렇다. 대체텍스트는 ‘눈으로 이미지를 볼 수 없는 모든 존재 — 시각장애 사용자, 깨진 화면을 마주한 사용자, 그리고 검색엔진이라는 기계 — 를 위한 다리’다. 그 다리가 빈칸이라는 건, 이 셋 모두에게 다리를 끊어놓는 일과 같다.

■ 그런데 ‘아무 글자나’ 채워도 안 된다

여기서 흔한 함정이 하나 있다. “그럼 빈칸이 문제라니까, 일단 뭐라도 채워 넣으면 되는 거 아니야?”라는 생각이다. 점검에서 ‘대체텍스트 없음’으로 지적당하지 않으려고, 모든 이미지에 똑같이 “이미지”라고 채우거나, 파일 이름을 그대로 넣거나, 의미 없는 글자를 넣는 경우가 실제로 무척 많다. 그런데 이건 빈칸과 다를 게 없거나, 어떤 면에서는 오히려 더 나쁘다.

생각해보자. 화면 낭독기가 페이지의 이미지 열 장을 연달아 만나는데, 그때마다 “이미지, 이미지, 이미지…”라고 열 번을 반복하면 어떨까. 사용자는 ‘이미지가 있다’는 사실만 열 번 들을 뿐, 그 이미지들이 무엇인지는 전혀 알 수 없다. 차라리 빠르게 넘어가는 게 나았을 정보 앞에서 시간만 버린다. 파일 이름을 읽는 건 더 고약하다. “디에스시 영영영삼사 점 제이피지”를 듣는 사용자는 정보도 못 얻고 짜증만 난다.

그래서 좋은 대체텍스트의 첫 번째 원칙은 ‘이미지가 전하려는 정보를 적는다’이다. 이미지의 ‘파일 정보’가 아니라 ‘의미’를 적는 것이다. 예를 들어 어르신이 복지관에서 디지털 교육을 받는 사진이라면, “이미지”나 “사진1”이 아니라 “복지관에서 어르신이 강사에게 스마트폰 사용법을 배우는 모습”처럼 적어야 한다. 그래야 화면 낭독기를 듣는 사용자도 비장애인이 그 사진에서 받는 인상과 비슷한 정보를 얻는다.

두 번째 원칙은 ‘맥락에 맞게, 간결하게’다. 같은 이미지라도 어디에 쓰이느냐에 따라 적어야 할 대체텍스트가 달라진다. 어떤 인물 사진이 ‘이 사람을 소개하는 페이지’에 있다면 그 사람의 이름과 직책이 핵심이지만, ‘우리 기관의 따뜻한 분위기를 보여주는 배경’으로 쓰였다면 그 사람이 누구인지보다 ‘분위기’가 핵심이다. 그래서 대체텍스트는 ‘이 이미지가 이 자리에서 무슨 역할을 하는가’를 먼저 생각하고 적어야 한다. 그리고 가능하면 짧게. 너무 긴 대체텍스트는 듣는 사람을 지치게 한다. 핵심만, 간결하게가 원칙이다.

세 번째 원칙은 ‘중복하지 않는다’이다. 만약 이미지 바로 아래에 이미 ‘설명 글’이 캡션으로 달려 있다면, 대체텍스트에 똑같은 내용을 또 적을 필요는 없다. 그러면 사용자는 같은 내용을 두 번 듣게 되니까. 이미 글로 설명된 정보는 굳이 반복하지 않는 게 좋다. 이처럼 좋은 대체텍스트는 ‘무조건 길게 채우는 것’이 아니라 ‘딱 필요한 만큼, 맥락에 맞게’ 쓰는 일이다.

■ 오히려 ‘비워야’ 하는 이미지도 있다

여기서 많은 분이 헷갈리는 반전 하나를 짚어야 한다. 지금까지 ‘빈칸이면 안 된다’고 강조해놓고 갑자기 ‘비워야 하는 경우도 있다’니, 모순처럼 들릴 것이다. 하지만 이건 모순이 아니라 ‘정밀함’의 문제다.

웹페이지에는 정보를 담은 이미지만 있는 게 아니다. 순전히 ‘꾸미기 위한’ 장식용 이미지도 있다. 예를 들어 문단과 문단 사이를 나누는 가느다란 선 그림, 제목 옆에 멋으로 붙인 작은 점 모양, 배경에 깔린 무늬 같은 것들이다. 이런 것들은 ‘정보’가 아니라 ‘장식’이다. 화면 낭독기를 쓰는 사용자가 이걸 일일이 다 들을 필요가 없다. 만약 이런 장식 이미지마다 대체텍스트를 채워 넣는다면, 사용자는 “장식선, 장식점, 무늬…” 같은 의미 없는 소리에 시달리게 된다.

그래서 장식용 이미지는 일부러 ‘빈 대체텍스트’로 처리한다. 여기서 중요한 건 ‘대체텍스트 칸 자체를 빼버리는 것’과 ‘대체텍스트 칸을 두되 그 안을 의도적으로 비우는 것’이 다르다는 점이다. 후자, 즉 ‘alt 칸은 있되 내용을 비운 상태’는 화면 낭독기에게 “이 이미지는 그냥 장식이니 건너뛰어도 돼”라는 신호로 작동한다. 그래서 화면 낭독기는 이 이미지를 조용히 지나친다. 사용자는 불필요한 소음 없이 정보에만 집중할 수 있다.

이걸 정리하면 이렇다. ‘정보를 담은 이미지’는 대체텍스트로 그 정보를 또박또박 적어준다. ‘장식만 하는 이미지’는 대체텍스트를 의도적으로 비워 화면 낭독기가 건너뛰게 한다. 핵심은 ‘이 이미지가 정보냐 장식이냐’를 판단하는 것이다. 그래서 대체텍스트 작업은 단순 노동이 아니라 ‘각 이미지의 역할을 판단하는 작은 편집 작업’에 가깝다. 라디오 캐스터가 ‘이 장면은 중계할 가치가 있나, 없나’를 매 순간 판단하는 것과 같다. 이 판단을 잘하는 게 대체텍스트 작업의 진짜 실력이다.

■ KWCAG와 7대 품질 영역 속에서 대체텍스트의 자리

이쯤에서 큰 그림을 한 번 그려보자. 대체텍스트는 그냥 떠 있는 개념이 아니라, 더 큰 기준 체계 안에 자리 잡고 있다.

먼저 행정안전부의 「전자정부 웹사이트 품질관리 지침」이 있다. 이 지침은 공공 웹사이트가 갖춰야 할 품질을 7대 영역으로 나눈다. 호환성, 접근성, 개방성, 접속성, 편의성, 효율성, 신뢰성. 이 일곱 가지가 ‘잘 만든 공공 웹’을 떠받치는 기둥이다. 대체텍스트는 이 중 ‘접근성’ 영역의 핵심 항목이다.

그 ‘접근성’을 더 구체적으로 따지는 잣대가 한국형 웹 콘텐츠 접근성 지침, 줄여서 KWCAG다. KWCAG는 웹 콘텐츠가 ‘누구나 접근 가능하게’ 만들어졌는지를 33개 항목으로 점검한다. 그리고 이 33개 항목 중에서도 가장 첫머리, 가장 기본으로 등장하는 게 바로 ‘텍스트 아닌 콘텐츠의 대체텍스트 제공’이다. 즉 대체텍스트는 웹 접근성의 ‘알파벳 A’ 같은 존재다. 접근성의 출발점이자, 가장 많이 위반되는 항목이기도 하다.

왜 가장 많이 위반될까. 이유는 단순하다. 이미지가 너무 많기 때문이다. 글자는 그 자체로 화면 낭독기가 읽을 수 있어서 따로 손댈 게 없다. 그런데 이미지는 한 장 한 장 사람이 판단해서 대체텍스트를 달아줘야 한다. 콘텐츠가 많은 공공 사이트일수록 이미지가 수천, 수만 장 쌓여 있고, 그걸 일일이 챙기는 건 사실상 불가능에 가깝다. 그래서 ‘가장 기본인데 가장 안 지켜지는’ 역설이 생긴다. 이 역설을 푸는 열쇠가 바로 ‘자동 점검’인데, 이 이야기는 글 뒷부분에서 다룬다.

여기서 ‘기본’이라는 말의 무게를 한 번 더 생각해보자. 접근성에서 대체텍스트가 ‘기본’으로 불리는 건 ‘쉬워서’가 아니라 ‘없으면 그다음이 다 무너져서’다. 집을 지을 때 기초가 부실하면 위에 아무리 좋은 자재를 올려도 소용없는 것과 같다. 이미지로 핵심 정보를 전하는 페이지에서 대체텍스트가 비어 있으면, 그 페이지의 다른 접근성 노력이 아무리 훌륭해도 시각장애 사용자에게는 ‘정보가 통째로 빠진 페이지’가 된다. 그래서 대체텍스트는 ‘여러 항목 중 하나’가 아니라 ‘다른 항목들이 의미를 가지기 위한 토대’에 가깝다. 기본을 기본답게 챙기는 것, 그게 접근성의 시작이자 절반이다.

또 하나, 대체텍스트를 잘 챙긴 사이트는 ‘조직의 태도’를 드러낸다는 점도 말하고 싶다. 눈에 보이지도 않는 그 빈칸까지 신경 썼다는 건, 그 기관이 ‘보이지 않는 사용자’까지 염두에 두고 일한다는 증거다. 반대로 빈칸이 방치된 사이트는, 의도하지 않았더라도 ‘우리는 화면을 볼 수 있는 사람만 생각했다’는 메시지를 던진다. 공공기관의 사이트가 곧 그 기관의 얼굴이라면, 대체텍스트는 그 얼굴의 ‘보이지 않는 표정’인 셈이다. 사용자는 그 표정을 의외로 예민하게 느낀다.

여기서 한 가지 더 분명히 해둘 게 있다. 대체텍스트는 KRDS 846규칙과도 맞닿아 있다. KRDS는 공공 웹의 디자인과 사용성을 846개 규칙으로 정리한 국가 표준이다. DS(디자인 기반 요소) 120개, CP(컴포넌트) 446개, BP(기본 패턴) 108개, SP(서비스 패턴) 172개로 이뤄진다. 이미지와 아이콘 같은 시각 요소를 어떻게 다뤄야 하는지, 그 요소가 정보를 전달할 때 접근성을 어떻게 보장해야 하는지가 이 규칙들 곳곳에 녹아 있다. 즉 대체텍스트는 ‘접근성 점검 항목’이면서 동시에 ‘잘 만든 공공 웹의 기본 문법’이기도 하다. 접근성과 디자인 표준은 따로 노는 게 아니라 한 몸으로 움직인다.

■ ‘권장’이 아니라 ‘의무’라는 무게

여기서 많은 담당자가 가장 궁금해하는 질문을 정면으로 다뤄보자. “그래서 대체텍스트를 안 챙기면 어떻게 되나요? 그냥 권고 사항 아닌가요?” 결론부터 말하면, 웹 접근성은 권고가 아니라 법적 의무다. 우리나라에는 장애가 있는 사람이 차별받지 않도록 정한 법이 있고, 그 안에 ‘정보 접근에서의 차별 금지’가 포함돼 있다. 웹사이트가 시각장애인이 쓸 수 없게 만들어져 있다면, 그건 단순한 품질 미달을 넘어 ‘차별’의 영역으로 들어갈 수 있다. 특히 공공기관은 민간보다 더 엄격한 책임을 진다. 국민 누구나 차별 없이 써야 할 ‘공식 창구’이기 때문이다.

물론 ‘대체텍스트 한 칸이 비었다고 당장 처벌받느냐’는 식의 단순한 이야기는 아니다. 하지만 접근성을 방치한 사이트가 누적되면, 그건 기관의 신뢰와 평판에 직접 영향을 준다. 접근성 실태 조사 결과가 공개되기도 하고, 민원이 제기되기도 하며, 감사나 평가에서 지적되기도 한다. 무엇보다, ‘우리 기관 사이트는 누군가를 배제하고 있다’는 사실 자체가 공공의 가치에 어긋난다. 법적 의무라는 표현이 무겁게 들릴 수 있지만, 그 무게의 본질은 처벌이 아니라 ‘공공이 마땅히 지켜야 할 평등’이다. 대체텍스트를 챙기는 일은 규제를 피하기 위한 방어가 아니라, 공공이라는 이름값을 하는 일에 가깝다.

그리고 이 ‘의무’는 한 번 지키고 끝나는 게 아니라 ‘계속 지켜져야 하는’ 성격을 가진다. 사이트는 매일 새 콘텐츠가 올라오는 살아 있는 공간이다. 작년에 접근성 인증을 받았어도, 올해 올린 게시물에 대체텍스트가 빠지면 그 페이지는 다시 벽이 된다. 그래서 접근성은 ‘프로젝트’가 아니라 ‘운영’의 문제로 다뤄야 한다. 한 번 고치고 잊는 게 아니라, 콘텐츠를 올릴 때마다 자연스럽게 챙기는 습관과 체계가 필요하다. 이 ‘지속의 부담’을 덜어주는 게 바로 뒤에서 이야기할 자동 점검이다.

■ 사람이 쓴 대체텍스트와 ‘대충 자동’의 차이

요즘은 이미지를 분석해 설명을 자동으로 붙여주는 기술도 있다. 그럼 ‘사람이 일일이 안 쓰고 기계가 알아서 달면 되지 않나’ 싶을 수 있다. 부분적으로는 맞다. 하지만 여기엔 중요한 한계가 있다. 기계가 이미지를 보고 “사람들이 모여 있는 사진”이라고 설명할 수는 있어도, ‘이 사진이 이 페이지에서 무슨 역할을 하는지’는 모른다.

예를 들어 같은 ‘악수하는 두 사람’ 사진이라도, 협약식 보도자료에서는 “A기관과 B기관이 업무협약을 체결하는 모습”이 핵심이고, 어떤 캠페인 페이지에서는 “화합과 협력을 상징하는 이미지”가 핵심일 수 있다. 기계는 이 ‘맥락’을 모른다. 그래서 기계가 붙인 설명은 출발점은 될 수 있어도 완성은 될 수 없다. 가장 좋은 방식은 ‘기계가 초안을 제안하고, 사람이 맥락을 입혀 다듬는’ 협업이다. 여기서도 다시 한번, ‘사람은 의미를, 도구는 노동을’이라는 역할 분담이 등장한다. 이 원칙은 이 글 전체를 관통하는 핵심이니 꼭 기억해두면 좋겠다.

본론 2 — 흔한 실수·사례 (익명)

개념만 들으면 ‘그래서 실제로 뭐가 문제인데?’ 싶을 수 있다. 그래서 공공 사이트를 점검하다 보면 패턴처럼 반복되는 전형적인 문제들을 익명으로 풀어보겠다. 미리 양해를 구하자면, 아래 사례에는 어떤 실제 기관명도, 도메인도, 식별 가능한 정보도 들어 있지 않다. 모두 여러 사이트에서 공통으로 관찰되는 ‘유형’을 익명으로 재구성한 것이다. 특정 기관을 비판하려는 게 아니라, ‘기준이 없으면 누구에게나 일어나는 일’임을 보여주려는 의도다. 읽다가 ‘어, 우리 사이트 얘긴가?’ 싶은 대목이 있다면, 그건 그만큼 흔한 문제라는 뜻이지 당신 기관만의 문제가 아니다.

■ 사례 하나: 마감일이 ‘안 보이는’ 신청 안내

어느 ○○시의 한 부서가 청년 지원금 신청 안내를 올렸다고 치자. 신청 자격, 지원 금액, 제출 서류, 그리고 가장 중요한 마감일까지 — 이 모든 정보가 깔끔하게 정리된 ‘안내 포스터 이미지’ 한 장에 담겨 있었다. 비장애인 눈에는 더없이 친절한 안내였다. 한 장만 보면 모든 게 한눈에 들어왔으니까.

문제는 그 포스터가 ‘이미지 한 장’이라는 데 있었다. 그 이미지의 대체텍스트는 비어 있었다. 화면 낭독기를 쓰는 시각장애 사용자가 이 페이지에 들어오면, 화면 낭독기는 그 포스터 앞에서 “이미지”라고만 말하고 지나갔다. 신청 자격도, 지원 금액도, 마감일도 — 그 무엇도 들을 수 없었다. 비장애인은 5초 만에 알 수 있는 ‘마감일’을, 시각장애인은 끝내 알 수 없었다.

이건 ‘대체텍스트 빈칸’ 문제이면서, 동시에 더 깊은 구조적 문제이기도 하다. ‘중요한 정보를 이미지로만 제공한’ 것 자체가 접근성 관점에서는 위험한 설계다. 정보가 글로도 함께 제공돼 있었다면, 설령 이미지 대체텍스트가 부실해도 사용자는 글에서 정보를 얻을 수 있다. 그래서 이 사례의 교훈은 두 겹이다. 첫째, 이미지에는 대체텍스트를 달자. 둘째, 정말 중요한 정보는 이미지에만 가두지 말고 글로도 함께 제공하자. 포스터는 ‘보기 좋으라고’ 더하는 것이지, 정보 전달의 유일한 수단이 되어서는 안 된다.

■ 사례 둘: 파일 이름이 그대로 읽히는 갤러리

또 다른 사례. 한 B공공기관의 행사 갤러리 페이지였다. 행사 사진이 수십 장 올라와 있었는데, 사진을 올린 담당자는 ‘대체텍스트’라는 칸이 있는 줄도 몰랐다. 그래서 사진을 업로드한 시스템이 자동으로 파일 이름을 대체텍스트 자리에 넣어버렸다. 결과적으로 화면 낭독기는 그 갤러리에서 “디에스시 영영영일 점 제이피지, 디에스시 영영영이 점 제이피지, 디에스시 영영영삼 점 제이피지…”를 끝없이 읽어 내려갔다.

이건 ‘빈칸은 아니지만 빈칸보다 못한’ 전형적인 경우다. 의미 없는 파일 이름이 스무 번, 서른 번 반복되는 걸 듣는 사용자의 답답함은 상상 이상이다. 차라리 장식 이미지처럼 깔끔하게 건너뛰는 게 나았을 것이다. 이 사례가 보여주는 건, ‘대체텍스트를 채웠다’는 사실만으로는 아무것도 보장되지 않는다는 점이다. 핵심은 ‘무엇을’ 채웠느냐다. 자동으로 채워진 파일 이름은 사람이 채운 의미 있는 설명을 대신할 수 없다.

이 기관의 경우 해법도 명확했다. 갤러리에 올라오는 사진들이 대체로 ‘행사 분위기를 보여주는 기록 사진’이라면, 일일이 다른 설명을 다는 것이 부담스러울 수 있다. 그렇다면 ‘○○ 행사 현장 사진’처럼 최소한의 맥락이라도 담은 설명을 다는 게 파일 이름보다 백배 낫다. 그리고 특정 사진이 ‘수상자 발표’처럼 정보적 의미가 클 때는 그 사진만 별도로 구체적인 설명을 달아주면 된다. 모든 사진을 똑같이 정성 들일 필요는 없지만, ‘파일 이름이 그대로 읽히는 상태’만큼은 반드시 피해야 한다.

■ 사례 셋: 장식 이미지까지 ‘읽히는’ 과잉 친절

반대 방향의 실수도 있다. 한 C기관은 접근성 점검에서 ‘대체텍스트 없음’ 지적을 받은 뒤, 의욕적으로 모든 이미지에 대체텍스트를 달았다. 문제는 ‘모든’ 이미지에 달았다는 점이다. 정보를 담은 이미지뿐 아니라, 문단을 나누는 장식선, 제목 옆 작은 점, 배경 무늬까지 전부 “장식선 이미지”, “포인트 점”, “배경 무늬” 같은 설명을 달아버렸다.

선의에서 출발했지만 결과는 역효과였다. 화면 낭독기 사용자는 본문 정보 사이사이에 “장식선, 포인트 점, 배경 무늬” 같은 잡음을 계속 들어야 했다. 정보의 흐름이 자꾸 끊기고, 정작 중요한 내용에 집중하기 어려워졌다. ‘대체텍스트를 다는 것’과 ‘대체텍스트를 잘 다는 것’은 다르다는 걸 보여주는 사례다.

이 기관에 필요했던 건 ‘판단’이었다. 정보를 담은 이미지는 설명을 달고, 장식만 하는 이미지는 의도적으로 빈 대체텍스트로 처리해 화면 낭독기가 건너뛰게 하는 것. 이 구분만 제대로 했어도 사용자 경험이 크게 달라졌을 것이다. 다시 강조하지만, 대체텍스트의 핵심은 ‘무조건 채우기’가 아니라 ‘각 이미지의 역할에 맞게 처리하기’다.

■ 사례 넷: 의미를 ‘색과 모양’으로만 전달하는 아이콘

조금 다른 결의 사례도 있다. 한 A광역지자체 사이트의 민원 처리 현황 페이지에서, 처리 상태를 색깔 아이콘으로만 표시했다. 초록 동그라미는 ‘완료’, 노란 동그라미는 ‘진행 중’, 빨간 동그라미는 ‘반려’. 비장애인 눈에는 직관적이었다. 그런데 이 아이콘들에 대체텍스트가 없었다. 화면 낭독기를 쓰는 사용자는 ‘동그라미가 있다’는 것조차 알 수 없었고, 색맹·색약이 있는 분은 초록과 빨강을 구분하기 어려웠다.

이 사례는 대체텍스트 문제이면서, ‘색만으로 정보를 전달하면 안 된다’는 접근성의 또 다른 원칙과도 이어진다. 해법은 간단했다. 각 상태 아이콘에 “완료”, “진행 중”, “반려”라는 대체텍스트를 달면, 화면 낭독기 사용자도 상태를 정확히 들을 수 있고, 색을 구분하기 어려운 사용자도 텍스트로 확인할 수 있다. 작은 아이콘 하나의 대체텍스트가 ‘정보 접근의 평등’을 좌우하는 것이다. 이미지라고 해서 꼭 큰 사진만 떠올릴 게 아니라, 이런 작은 상태 아이콘 하나하나가 모두 대체텍스트의 대상이라는 걸 기억해야 한다.

■ 사례 다섯: 링크가 된 이미지의 ‘설명 없는 손잡이’

마지막 사례는 의외로 자주 놓치는 유형이다. 어느 한중앙부처 사이트의 메인 화면에는 주요 서비스로 바로 가는 ‘배너 이미지’들이 줄지어 있었다. 배너를 누르면 해당 서비스 페이지로 이동하는 구조였다. 비장애인에게는 큼직하고 시원한, 잘 만든 메인이었다. 그런데 이 배너 이미지들에는 대체텍스트가 없었다.

이게 왜 더 심각하냐면, 이 이미지들은 단순한 그림이 아니라 ‘링크’이기 때문이다. 화면 낭독기는 링크를 만나면 “링크”라고 알려주고, 그 링크가 어디로 가는지를 대체텍스트로 안내한다. 그런데 대체텍스트가 비어 있으면, 화면 낭독기는 “링크”라고만 하고 ‘어디로 가는 링크인지’를 말해주지 못한다. 사용자는 “링크, 링크, 링크…”라는 정체불명의 손잡이 여러 개를 더듬는 셈이 된다. 어느 게 ‘민원 신청’이고 어느 게 ‘정책 안내’인지 알 수 없으니, 메인 화면에서부터 길을 잃는다.

이 사례의 교훈은 ‘이미지가 링크일 때 대체텍스트는 더더욱 중요하다’는 것이다. 이때 대체텍스트는 ‘이미지의 모습’이 아니라 ‘이 링크가 어디로 가는지’를 적어야 한다. 화려한 배너 그림을 묘사할 게 아니라 “민원 신청 바로가기”처럼 ‘기능’을 적는 게 맞다. 이미지의 역할이 ‘정보 전달’이냐 ‘이동 수단(링크)’이냐에 따라 대체텍스트의 내용이 달라진다는 걸 보여주는 사례다. 다시 한번, 핵심은 ‘이미지의 역할을 판단하는 것’이다.

이 다섯 가지 사례를 관통하는 교훈은 분명하다. 대체텍스트는 ‘있다/없다’의 단순한 문제가 아니라 ‘이미지의 역할을 이해하고 그에 맞게 처리하는’ 판단의 문제라는 것. 빈칸도, 파일 이름도, 과잉 설명도, 무시도, 링크 배너의 침묵도 — 모두 ‘판단의 부재’에서 나온다. 그리고 이 판단을 매번 사람이 수천 장의 이미지에서 정확히 해내기란 현실적으로 어렵다. 바로 여기서 ‘자동 점검 도구’의 필요성이 등장한다.

본론 3 — 그래서 어떻게 시작할까 + 자동 점검

■ 먼저 ‘현황 파악’부터 — 막막함을 숫자로 바꾸기

대체텍스트를 챙기기로 마음먹었다고 치자. 그런데 막상 시작하려고 하면 막막하다. 우리 사이트에 이미지가 몇 장인지, 그중 대체텍스트가 빈 게 몇 장인지, 파일 이름이 그대로 들어간 게 몇 장인지 — 아무도 모른다. 막막함의 정체는 대개 ‘현황을 모름’이다. 그래서 첫 단계는 언제나 ‘현황 파악’이어야 한다.

현황을 모르면 우선순위도 못 잡는다. 무작정 첫 페이지부터 손대다 보면, 정작 사용자가 가장 많이 찾는 신청 페이지의 핵심 이미지는 손도 못 댄 채 시간만 흘러간다. 반대로 현황을 숫자로 파악하면 ‘어느 페이지에 빈 대체텍스트가 집중돼 있는지’ ‘정보 이미지인데 비어 있는 치명적인 경우가 어디인지’를 알 수 있고, 거기서부터 손대면 된다. 막막함을 숫자로 바꾸는 것, 이게 모든 개선의 출발점이다.

문제는 이 ‘현황 파악’을 사람이 손으로 하기가 거의 불가능하다는 점이다. 이미지가 수십 장인 작은 사이트라면 몰라도, 콘텐츠가 수천, 수만 페이지에 걸친 공공 사이트에서 이미지를 일일이 열어 대체텍스트를 확인하는 건 한 사람의 평생이 걸려도 못 끝낼 일이다. 그래서 이 영역이야말로 ‘자동 점검’이 빛을 발하는 지점이다.

■ 자동 점검은 무엇을 ‘대신’ 해주나

자동 점검 도구는 사람이 일일이 하기 어려운 ‘기계적 확인’을 순식간에 대신해 준다. 페이지에 있는 모든 이미지를 훑어서, 어떤 이미지에 대체텍스트가 비어 있는지, 어떤 이미지에 파일 이름 같은 무의미한 값이 들어가 있는지, 정보를 담은 이미지인데 빈칸인 위험한 경우가 어디인지를 자동으로 찾아낸다. 사람이 며칠 걸려도 못 할 일을, 도구는 몇 분 만에 해낸다.

물론 자동 점검이 모든 걸 다 해주는 건 아니다. ‘대체텍스트가 비어 있다’는 건 기계가 정확히 잡아낼 수 있지만, ‘이 대체텍스트가 이미지를 제대로 설명하는 좋은 글인가’ 하는 건 결국 사람의 판단이 필요하다. 그래서 가장 현실적인 그림은 ‘기계가 빈칸과 명백한 오류를 골라내고, 사람은 그 목록을 보고 좋은 설명을 채워 넣는’ 역할 분담이다. 사람은 방향과 의미를 챙기고, 도구는 빠짐없이 훑는 노동을 챙긴다. 이게 가장 효율적이고 지속 가능한 방식이다.

이걸 의료에 비유하면 이해가 쉽다. 건강검진 기계는 우리 몸을 빠르게 훑어 ‘어디에 이상 신호가 있는지’를 골라낸다. 하지만 그 신호가 무엇을 뜻하고 어떻게 치료할지는 의사가 판단한다. 기계 없이 의사가 온몸을 일일이 들여다보는 건 비효율적이고, 의사 없이 기계 결과만으로 치료하는 건 위험하다. 둘이 짝을 이뤄야 한다. 대체텍스트 점검도 똑같다. 자동 점검이라는 ‘검진 기계’가 문제 목록을 뽑아주면, 콘텐츠를 아는 담당자라는 ‘의사’가 그 목록을 보고 맥락에 맞는 설명을 채운다. 어느 쪽도 혼자서는 잘하기 어렵고, 함께일 때 가장 빠르고 정확하다.

여기서 한 가지 더 짚을 게 있다. 자동 점검은 ‘한 번 하고 끝’이 아니라 ‘계속 반복’해야 의미가 있다. 사이트는 살아 있는 생물처럼 매일 콘텐츠가 추가된다. 오늘 모든 이미지를 완벽하게 챙겨도, 내일 새 게시물이 올라오면 또 빈칸이 생긴다. 그래서 자동 점검을 정기적으로 돌려 ‘새로 생긴 문제’를 빠르게 잡는 체계가 중요하다. 사람이 매번 전수 점검하는 건 불가능하지만, 도구로는 주기적인 점검이 충분히 가능하다.

자동 점검이 주는 또 하나의 숨은 가치는 ‘설득의 근거’다. 공공 조직에서 무언가를 개선하려면 윗선을 설득하고 예산을 확보해야 한다. 그런데 “접근성이 좀 부족한 것 같습니다”라는 막연한 말로는 누구도 움직이지 않는다. 반면 “우리 주요 페이지 이미지 1,200장 중 대체텍스트가 비어 있거나 부실한 게 절반이 넘습니다”라는 ‘숫자’는 다르다. 막연한 우려가 구체적인 현황으로 바뀌는 순간, 비로소 의사결정이 시작된다. 자동 점검은 이 ‘설득의 숫자’를 만들어준다. 개선의 동력은 늘 ‘측정’에서 나온다는 걸 기억하면, 자동 점검은 단순한 검사 도구를 넘어 ‘일을 굴러가게 만드는 출발점’이 된다.

그리고 자동 점검은 ‘대체텍스트’ 하나만 보는 게 아니라는 점도 짚어둘 만하다. 웹 접근성에는 대체텍스트 말고도 색 대비, 키보드 조작, 제목 구조, 표의 구조화 같은 여러 항목이 있고, 이것들이 KWCAG 33항목으로 정리돼 있다. 좋은 자동 점검은 이 항목들을 한꺼번에 훑어 ‘우리 사이트가 접근성의 어느 부분에서 약한가’를 종합적으로 보여준다. 대체텍스트는 그 출발점일 뿐, 접근성이라는 큰 그림의 한 조각이다. 이번 주에는 대체텍스트에 집중했지만, 같은 원리로 접근성의 다른 항목들도 ‘측정 → 우선순위 → 개선 → 정기 점검’의 흐름으로 다뤄나가면 된다.

본문 이미지 3

■ 실무에서 바로 쓸 수 있는 점검 순서

그럼 실제로 대체텍스트를 개선하려면 무엇부터 하면 될까. 거창한 프로젝트로 만들 필요 없이, 작은 순서로 시작하면 된다.

첫째, ‘우리 사이트의 대표 페이지들’부터 점검한다. 메인 페이지, 사용자가 가장 많이 찾는 신청·민원 페이지, 자주 안내가 올라오는 공지 페이지. 이 핵심 페이지들의 이미지부터 대체텍스트 현황을 확인한다. 모든 페이지를 한 번에 챙기려 하지 말고, 영향 큰 곳부터 손대는 게 현실적이다.

둘째, ‘정보를 담은 이미지’와 ‘장식 이미지’를 구분한다. 앞에서 강조한 그 판단이다. 정보 이미지에는 의미 있는 설명을 달고, 장식 이미지는 의도적으로 빈 대체텍스트로 처리한다. 특히 ‘중요한 정보가 이미지로만 제공되는’ 위험한 경우를 우선적으로 찾아내, 그 정보를 글로도 함께 제공하도록 고친다.

셋째, ‘자동으로 채워진 파일 이름’을 찾아 사람이 쓴 설명으로 교체한다. 업로드 시스템이 자동으로 넣은 파일 이름은 거의 항상 무의미하므로, 이런 값들을 우선 정리한다. 양이 많다면 ‘최소한의 맥락이라도 담은 일괄 설명’으로 먼저 바꾸고, 정보적 의미가 큰 이미지만 따로 정교하게 다듬는 단계적 접근이 좋다.

넷째, ‘앞으로 올라올 콘텐츠’를 위한 규칙을 만든다. 지금 있는 이미지를 다 고쳐도 새 콘텐츠가 또 빈칸을 만들면 밑 빠진 독이다. 그래서 ‘이미지를 올릴 때는 반드시 대체텍스트를 적는다’는 작업 규칙을 콘텐츠 담당자들과 공유하고, 정기적인 자동 점검으로 새로 생긴 빈칸을 빠르게 잡는다. 이렇게 ‘기존 정리 + 신규 예방 + 정기 점검’의 세 박자가 맞아야 대체텍스트 품질이 유지된다.

이 순서가 거창해 보일 수 있지만, 핵심은 단순하다. ‘현황을 알고, 중요한 것부터, 판단을 담아, 꾸준히’다. 그리고 이 모든 단계에서 ‘현황 파악’과 ‘정기 점검’은 자동 도구의 힘을 빌리는 게 압도적으로 효율적이다. 사람이 의미를 채우고, 도구가 빠짐없이 훑는다. 이 역할 분담을 기억하면 대체텍스트 작업은 생각보다 막막하지 않다.

■ 자주 받는 질문 몇 가지

대체텍스트를 처음 챙기려는 담당자들이 자주 던지는 질문을 몇 개 정리해두자. 글을 읽으며 비슷한 의문이 들었다면 여기서 풀릴 수 있다.

“대체텍스트는 몇 글자가 적당한가요?” 정해진 글자 수는 없다. 다만 원칙은 ‘이미지의 핵심을 전할 만큼 충분하되, 듣는 사람이 지치지 않을 만큼 간결하게’다. 보통은 한두 문장이면 충분하다. 단, 그래프나 표처럼 ‘많은 정보를 담은 이미지’는 짧은 대체텍스트만으로는 부족하다. 이런 경우엔 대체텍스트로 ‘무슨 그래프인지’를 짧게 알리고, 그 안의 구체적인 수치는 본문 글이나 별도의 설명으로 함께 제공하는 게 좋다. 즉 ‘이미지의 복잡도에 맞는 분량’이 정답이다.

“같은 이미지를 여러 페이지에서 쓰는데, 대체텍스트도 똑같이 하면 되나요?” 꼭 그렇지 않다. 앞에서 말했듯 대체텍스트는 ‘맥락’을 반영해야 한다. 같은 로고 이미지라도 ‘기관 소개 페이지’에서는 기관명을 알리는 역할이고, ‘모든 페이지 상단에 반복되는 헤더’에서는 매번 읽히면 오히려 거슬릴 수 있다. 그래서 반복되는 머리글 영역의 이미지는 처리 방식을 신중히 정해야 한다. 핵심은 ‘이 자리에서 이 이미지가 무슨 역할을 하는가’를 매번 묻는 것이다.

“이미지 안에 글자가 들어 있으면 어떻게 하나요?” 이건 특히 공공 사이트에서 흔한 함정이다. 안내문, 공지, 포스터를 ‘글자가 박힌 이미지 한 장’으로 만들어 올리는 경우가 많은데, 이때는 그 이미지 안의 글자를 대체텍스트로 그대로 옮겨 적어줘야 화면 낭독기가 읽을 수 있다. 하지만 더 근본적인 해법은 ‘애초에 글자를 이미지로 만들지 않는 것’이다. 글자는 글자로 제공하면 화면 낭독기가 알아서 읽고, 확대해도 깨지지 않으며, 검색에도 잡힌다. ‘글자가 박힌 이미지’는 가능하면 피하고, 부득이하다면 반드시 그 내용을 텍스트로 함께 제공하는 게 원칙이다.

“우리는 콘텐츠 관리 시스템(CMS)으로 글을 올리는데, 거기서 대체텍스트를 어떻게 넣나요?” 대부분의 콘텐츠 관리 시스템에는 이미지를 올릴 때 ‘대체텍스트’ 또는 ‘이미지 설명’을 입력하는 칸이 있다. 그동안 그 칸을 비워두거나 못 보고 지나쳤을 뿐이다. 콘텐츠 담당자 교육에서 ‘이미지를 올릴 때 이 칸을 꼭 채운다’를 한 줄 규칙으로 정하는 것만으로도 신규 콘텐츠의 빈칸이 크게 줄어든다. 시스템이 그 칸을 강제로 채우게 막아두면 더 확실하다. 결국 도구·규칙·습관이 함께 가야 한다.

마무리 — 정리·CTA

지금까지 ‘대체텍스트가 왜 빈칸이면 안 되는가’를 길게 이야기했다. 핵심만 다시 묶어보자.

대체텍스트는 ‘이미지를 볼 수 없는 사람을 위해 이미지를 말로 옮겨 적은 글’이다. 라디오 캐스터가 화면 없는 청취자에게 경기 장면을 중계하듯, 대체텍스트는 화면 낭독기를 쓰는 사용자에게 이미지의 내용을 전한다. 그래서 빈칸은 곧 ‘중계가 끊긴 라디오’이고, 시각장애 사용자에게는 ‘읽을 수 없는 벽’이 된다. 게다가 대체텍스트는 깨진 이미지를 마주한 평범한 사용자에게도, 사이트를 읽는 검색엔진에게도 똑같이 다리가 되어준다. 빈칸은 이 셋 모두에게 다리를 끊는 일이다.

동시에 ‘아무 글자나 채우는 것’도 답이 아니라는 걸 봤다. 파일 이름이 그대로 읽히는 건 빈칸보다 못하고, 장식 이미지까지 일일이 설명하는 과잉 친절은 오히려 사용자를 괴롭힌다. 좋은 대체텍스트는 ‘이미지의 역할을 판단해, 정보는 또박또박 적고 장식은 깔끔히 건너뛰게 하는’ 작은 편집의 결과다. 이건 행정안전부 「전자정부 웹사이트 품질관리 지침」의 ‘접근성’ 영역, KWCAG 33항목의 첫머리, 그리고 KRDS 846규칙이 추구하는 ‘누구나 쓸 수 있는 공공 웹’과 한 줄로 이어진다.

그리고 이 모든 걸 사람이 손으로만 챙기는 건 현실적으로 불가능하다는 것도 이야기했다. 수천, 수만 장의 이미지에서 빈칸과 오류를 골라내는 일은 자동 점검이 대신해야 한다. 사람은 의미와 판단을 챙기고, 도구는 빠짐없이 훑는 노동을 챙긴다. 이 역할 분담이 대체텍스트 품질을 지속 가능하게 만든다.

처음 이 글을 시작할 때, 나는 화면 낭독기가 어떤 이미지 앞에서 그냥 “이미지”라고만 말하고 지나가던 그 순간을 이야기했다. 그 짧은 침묵이 누군가에게는 ‘여기서부터는 당신을 위한 정보가 아니다’라는 말처럼 들린다. 공공 서비스가 ‘누구나’를 위한 것이라면, 그 침묵은 우리가 가장 먼저 깨야 할 벽이다. 그리고 다행히도 그 벽은 거대한 공사가 필요한 벽이 아니다. 이미지에 설명 한 줄을 다는, 아주 작은 손길로 무너진다. 어렵지 않지만 누군가 챙겨야만 하는 일. 그게 대체텍스트다. 그 ‘누군가’가 이 글을 읽는 당신이 되어준다면, 우리 공공 웹은 분명히 조금 더 따뜻해진다.

마지막으로 한 가지만 덧붙이자면, 완벽하게 시작하려 하지 않아도 된다. 모든 이미지를 한 번에 챙기겠다는 욕심은 오히려 시작을 막는다. 오늘 우리 사이트의 메인 한 페이지, 가장 많이 찾는 신청 페이지 한 곳만이라도 현황을 확인하고 빈칸 몇 개를 채워보자. 그 작은 시작이 다음 페이지로, 또 다음 페이지로 이어진다. 접근성은 ‘완성’이 아니라 ‘방향’이다. 어제보다 한 칸 더 채워진 사이트면, 그걸로 충분히 잘 가고 있는 것이다.

만약 지금 ‘우리 사이트의 대체텍스트 현황이 도대체 어떤지 궁금하다’는 생각이 들었다면, 막연한 걱정으로 두지 말고 한 번 확인해보길 권한다. ViewCheck(krds.viewcheck.co.kr)에서는 URL만 넣으면 공공 웹의 접근성·KRDS 846규칙 준수 현황을 자동으로 진단해 준다. 웹 접근성(KWCAG) 분석 탭에서 이미지 대체텍스트가 어떻게 처리돼 있는지, 어디에 빈칸이 있는지를 한눈에 볼 수 있다. 무료 진단으로 우리 사이트의 현황을 숫자로 먼저 확인하고, 거기서부터 ‘중요한 것부터’ 손대보자. 막막함을 숫자로 바꾸는 첫걸음으로, 이만한 게 없다.

대체텍스트의 빈칸 하나가 누군가에게는 닫힌 문이라는 것. 그 문을 여는 일이 생각만큼 어렵지 않다는 것. 이 두 가지만 기억해도, 우리 공공 웹은 ‘누구나’에게 한 뼘 더 가까워진다.

본문 이미지 4

키워드/태그: #KRDS #공공웹 #웹접근성 #KWCAG #대체텍스트 #alt텍스트 #스크린리더 #전자정부 #품질관리지침 #디지털접근성 #공공기관홈페이지 #ViewCheck

#2026-08#KRDS#공공웹#웹접근성#KWCAG#개념

댓글 0

0/2000

댓글을 불러오는 중…

관련 글

새 글 소식 받기

KRDS·공공웹 UX 인사이트를 이메일로 받아보세요.

구독 시 이메일 알림 수신에 동의하는 것으로 간주되며, 언제든 메일 하단에서 수신거부할 수 있습니다.

뉴로플로우
ViewCheck Insight

© 2026 ViewCheck. Premium research on Korean digital government.