런타임 BiDi 구조 검증으로 접근성/동작성/논리 속성 린팅이 놓친 우측-좌측(RTL) 레이아웃 결함 포착
요약
기존 접근성 및 논리 속성 린팅 도구들은 양방향(RTL) 레이아웃에서 발생하는 구조적 결함을 포착하는 데 한계가 있습니다. 본 글은 계산된 스타일과 지오메트리에 대한 '런타임 구조 불변량'을 제시하여 이러한 RTL 버그를 검출합니다. 이 새로운 검출기는 기존 도구 대비 높은 정확도로 실제 레이아웃 오류를 복구할 수 있음을 입증했습니다.
핵심 포인트
- RTL 결함은 물리적 CSS 사용 시 발생하며, 기존 린팅으로는 포착이 어렵습니다.
- '런타임 구조 불변량'을 통해 높은 정확도로 RTL 레이아웃 오류를 검출합니다.
- 제로-골든 모드는 장식/스타일 비대칭성 클래스 검출에 강점을 가집니다.
- 차분 모드는 오탐지 없이 블록 레벨 인셋/마진에서 경험적으로 정확합니다.
양방향(Bidirectional), 즉 우측-좌측(RTL) 레이아웃 결함은 물리적 방향성 CSS(margin-left, border-left, text-align:left)로 작성된 인터페이스가 dir="rtl" 환경에서 미러링되지 않고 렌더링될 때 발생합니다. 접근성 엔진(axe-core), 동작 가능성 엔진(Playwright)은 물론, Stylelint의 현재 핵심 논리 속성 규칙조차 이러한 결함을 국소화하는 데 실패합니다.
우리는 헤드리스 브라우저에서 이를 포착하는 런타임 구조 불변량(runtime structural invariants)을 제시합니다. 이는 계산된 스타일 및 지오메트리(computed style and geometry)에 대한 제로-골든 모드(zero-golden mode)와 bidi-보존적 차분 모드(bidi-conservative differential mode)입니다.
Bootstrap과 Material Components Web의 오래된 수정 커밋에서 재구성한 14개의 실제 RTL 버그를 보유한 벤치마크에서, 이 검출기는 13/14개 (제로-골든 모드에서 2개, 차분 모드에서 11개)를 복구하며, 패치된 버전에서는 오탐지(false alarm)가 전혀 없습니다. 실제 커밋된 historical bootstrap.rtl.css에서는 시도된 2개 중 1개를 포착합니다. 이 검출기는 16개의 음성 LTR 아일랜드 케이스에서 0개의 오탐지를 보고하며, 두 모드 모두 네 가지 디자인 시스템과 세 가지 RTL 아키텍처에 걸친 43개의 수정되지 않은 실제 컴포넌트에서도 그러합니다 (규칙-의-세-상한선(rule-of-three 95% upper bound) <= 7%). 또한 현재 Bulma 1.0.4에서 실제 방향성 결함을 발견했습니다.
대조적으로, Stylelint의 핵심 규칙은 Bootstrap의 LTR 및 올바른-RTL 빌드에서 동일한 1744개의 경고를 발생시키며, pseudo-localisation은 미러링 버그 중 어느 것도 감지하지 못하고, 순진한 픽셀 미러-앤-디프(pixel mirror-and-diff)는 테스트 세트 기반 조정된 임계값으로 F1 0.87에 도달할 뿐입니다.
두 모드는 상호 보완적입니다: 제로-골든은 장식/스타일 비대칭성 클래스(decoration/styling-asymmetry class)의 유일한 검출기이지만, 올바른 논리 경계(logical border-inline-end)에서는 오탐지를 일으키는 반면, 차분 모드는 해당 클래스는 감지하지 못하지만 결코 오탐지를 일으키지 않으며 블록 레벨 인셋/마진 클래스에서 경험적으로 정확합니다. 우리는 이 논문의 범위를 검출에 한정하며, 복구(repair)는 향후 작업입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기