웹 접근성 검사에서 오류가 적게 나왔다고 해서, 키보드로 검색창에 도착하고 원하는 건강정보를 열 수 있다고 바로 말할 수 있을까. 나는 검사 도구가 내놓은 판정과 실제로 따라간 검색 경로를 따로 기록했다. 화면의 한 요소를 확인한 결과가 웹사이트 전체에 대한 평가로 커지지 않게 하기 위해서다.
건강·공공정보 사이트를 대상으로 삼되 사이트별 점수를 매겨 순위를 내지 않고, 규칙 검사에 어떤 사례를 넣었는지, 버튼을 누른 뒤 어느 상태를 읽었는지, 검색이 어느 단계까지 이어졌는지를 구분해 정리했다. W3C도 도구 하나만으로 사이트의 접근성을 판정할 수 없으며 사람의 평가가 필요하다고 설명한다. W3C 접근성 평가 안내
판정한 사례와 판정하지 못한 사례를 함께 남겼다
먼저 W3C의 ACT 사례를 기준으로 자동 검사 도구의 출력을 대조했다. ACT는 접근성 규칙을 어떻게 검사할지와 그 검사에 사용할 예시를 정리한 형식이다. 공개 사례 중 승인된 항목을 고르고, 예상 결과가 통과 또는 실패이며 자동 검사 도구인 axe-core가 해당 규칙과의 대응 관계를 밝힌 경우만 포함했다. W3C ACT 안내
이 단계에서 중요한 선택은 결과를 통과와 실패 두 칸으로만 만들지 않는 것이었다. 규칙 위반은 없지만 추가 검토가 필요하다는 incomplete 출력이 있으면 review로 남겼고, 페이지 이동이나 검사 실행이 실패한 경우는 error로 구분했다. 판정이 얼마나 맞았는지는 통과·실패를 결정한 사례만으로 계산하고, 얼마나 넓게 판정했는지는 처음 포함한 전체 사례를 분모로 삼았다. 판정하지 못한 사례가 표에서 사라지면, 좁은 범위에서 잘 맞는 도구가 넓은 범위를 검사한 것처럼 보일 수 있다.
W3C에 보존된 구현 보고서도 같은 원칙으로 정리했다. 제공자가 같은 사례에 여러 절차의 결과를 적었을 때 유리한 결과 하나를 골라 쓰지 않았다. 서로 충돌하는 판정은 mixed로 남기고, 미시험·적용 불가·판정 불가도 구분했다. 이 자료는 제공자마다 버전과 작성 시점이 다른 보고서이므로, 현재 제품들을 같은 조건에서 다시 실행한 비교처럼 취급하지 않았다.
버튼의 상태를 읽는 코드에서 초점 문제를 만났다
정적인 규칙 검사 다음에는 키를 누르기 전후의 상태를 기록했다. 버튼이 펼쳐졌는지, 선택 항목이 체크됐는지 같은 변화다. 키 입력과 예상 상태는 ARIA-AT의 공개 참조 사례에서 가져오고, Chrome이 보조기술에 전달하는 정보에서 해당 속성을 읽도록 수집기를 구성했다. 버튼이나 선택 항목의 역할·이름·상태를 계층으로 묶은 이 정보를 접근성 트리라고 부른다.
이 과정에서 처음 수집기가 잘못 읽은 대상이 있었다. 여러 선택지 중 하나를 고르는 라디오 버튼 묶음에서는 문서의 키보드 초점이 묶음 전체에 머물고, 실제 활성 항목은 aria-activedescendant가 가리킬 수 있다. 묶음 자체에서 checked 값을 읽으면 어느 선택 항목이 체크됐는지를 놓치게 된다. 이는 WAI-ARIA가 허용하는 초점 관리 방식이다. aria-activedescendant 명세
이전 기록에서는 키를 누르기 전후 모두 체크 상태가 비어 있었다. 수집기가 활성 하위 항목을 찾아 그 접근성 트리 노드를 읽도록 바꾸면서, 문서상 초점이 있던 요소는 별도로 기록했다. 예상 결과는 그대로 둔 채 변경 이유와 이전 실행을 남기고, 해당 검사 묶음 전체를 다시 실행했다. 사이트의 동작 문제로 분류하기 전에, 검사 코드가 올바른 요소를 보고 있는지부터 확인해야 했다.
다만 여기서 읽은 것은 브라우저가 노출한 기술적 상태다. 스크린리더가 실제로 어떤 말을 했는지, 이용자가 그 변화를 이해했는지까지 측정한 것은 아니다. 정상 동작을 기대하는 참조 사례를 확인하는 작업과, 고장 난 요소를 얼마나 잘 찾아내는지도 구분했다.
검색창에서 도착 페이지까지 경로를 남겼다
공공보건 사이트의 실시간 검사에서는 시작 주소와 공통 검색어를 정하고, Tab으로 초점을 순서대로 옮겼다. 검색 기능을 나타내는 역할과 이름을 확인한 뒤 검색어를 입력하고, 결과 화면에서는 본문 영역의 내용 링크로 이동하도록 조건을 정했다. 여기서 역할과 이름은 단순한 화면 모양이 아니라, 브라우저가 그 요소를 검색창이나 링크로 설명할 때 쓰는 정보다. 검색어가 이름에 들어 있다는 이유만으로 검색 필터나 재검색 링크를 도착 결과로 인정하지 않았다.
마지막에는 주소가 바뀌었는지와 도착 페이지의 제목 또는 첫 번째 큰 제목에 검색어가 있는지를 확인했다. 이것이 이 검사에서 정한 도착 기준이다. 해당 페이지의 모든 내용이 이해하기 쉽거나 의학적으로 충분하다는 판단까지 포함하지는 않는다.
요청 시간이 초과되거나 서버 오류로 페이지를 관찰하지 못한 경우도 별도로 남겼다. 그런 기록을 곧바로 접근성 실패로 세면, 페이지에 도착하지도 못한 측정으로 인터페이스를 평가하게 된다. 반대로 미리 정한 초점 이동 범위 안에서 검색 요소를 찾지 못했다는 기록은 그 조건과 시점에 한정해서 읽어야 한다.
검사 도중 수집기의 역할 인식이나 결과 링크 분류를 고칠 때는 일부 사이트만 다시 골라 실행하지 않았다. 바뀐 조건을 기록하고 해당 경로 검사 전체를 다시 돌렸으며, 이전 실행과 수정 후 실행을 합쳐 하나의 성적표로 만들지 않았다.
남겨 둔 자료와 현재 상태
원고와 보존 패키지에는 사례 목록, 수집 코드, 실행 로그, 분석 표와 버전 정보를 함께 남겼다. 어떤 코드와 입력을 썼는지 따라갈 수 있도록 원본 저장소의 특정 버전을 가리키는 커밋과 파일의 SHA-256을 기록했다. SHA-256은 파일 내용이 바뀌었는지 대조하는 해시값이다. 최종 파일의 해시를 묶은 기록은 자료가 같은지 확인하는 데 쓸 수 있지만, 모든 실험 전에 계획을 등록했다는 증거는 아니다.
이 작업에서 기록한 것은 자동 규칙 판정, 노출 상태 변화, 정해진 검색 경로다. 장애가 있는 이용자를 모집한 사용성 실험은 아니며, 국가별 수준이나 개별 기관의 법적 적합성을 판단하지 않는다. 사이트별 수치와 결론은 현재 이 페이지에 공개하지 않는다.
출판 경로는 비용을 부담하지 않는 조건과 맞지 않아 투고를 철회했다. 2026년 9월 4일 Nature Communications 편집부가 처리 완료를 확인했으며, 해당 투고건은 더 이상 심사 중이 아니다. 이미 출판된 논문을 철회한 사례는 아니다.
