기여 목록 / 8458262
a11y: Fix table accessible names when the first caption is hidden
BlinkfixMerged
<table> 요소의 접근성 이름(accessible name) 계산 시 첫 번째 <caption>이 숨김(hidden) 처리되어 있을 경우, 이후 노출되는 유효한 캡션을 탐색하여 테이블 이름을 올바르게 설정
문제 설명
- 기존 계산 로직에서는 DOM 트리상의 단순 첫 번째 캡션(
table_element->caption())만 확인 - 첫 번째 캡션에
hidden속성이 지정되어 있어 텍스트 대체 계산에서 제외될 경우, 이후에 화면에 노출되는 두 번째<caption>이 존재하더라도 탐색하지 않고 빈 문자열("")을 반환하는 문제 발생 - 스크린 리더 등 보조 기술 사용 시 시각적으로 렌더링된 테이블 캡션의 정보가 제대로 전달되지 않는 현상 발생
해결 내용
테이블의 자식 노드들을 순회하며 숨겨지지 않은(렌더링되는) 첫 번째 캡션을 찾아 접근성 이름을 계산하도록 로직을 변경하였습니다.
HTMLTableElement::caption()으로 단순 첫 번째 캡션을 가져오는 대신, 자식 캡션 노드들을 순회하는 구조로 변경- 각 캡션 요소의
AXObject를 조회하여IsHiddenForTextAlternativeCalculation()조건을 검사 - 숨겨지지 않은 첫 번째 캡션을 발견하면 해당 요소의 하위 트리를 통해 대체 텍스트(text alternative)를 계산하고 탐색 중단
관련 이슈와 외부 PR
- Chromium Bug: crbug.com/553525690
- Gerrit Change: a11y: Fix table accessible names when the first caption is hidden (8458262)
배운 점
- W3C ARIA 표준을 파악하여 스펙에 맞게 기여하는 방법 학습