린팅을 넘어서: A11y 및 로컬라이제이션을 위해 시맨틱 계약으로 전환한 이유
주요 릴리스 3일 전 워룸에 앉아 있던 기억이 납니다. 우리는 자신감이 있었습니다. 정적 접근성(a11y) 린터가 통과했고, 간단한 문자열 비교를 수행하는 현지화(l10n) 단위 테스트도 녹색 불이 들어왔습니다. 그러던 중, 베타 사용자가 primary_submit_action 버튼을 물리적으로 탭할 수 없다고 보고했습니다. 현지화 파일이 버튼 레이블을 늘려 터치 타겟을 화면 밖으로 밀어냈기 때문입니다.우리의 테스트는 화면을 보지 않았기 때문에 실패하지 않았습니다. 그들은 텍스트 파일을 보고 있었습니다. 바로 그 순간, 저는 깨지기 쉬운 문자열 비교와 기본적인 정적 린팅에 대한 우리의 의존이 규모 면에서 단단한 벽에 부딪혔다는 것을 깨달았습니다. 우리는 레이블의 존재 여부만 확인하는 것이 아니라, 레이아웃과 사용자 간의 의미론적 계약을 검증하는 새로운 접근 방식이 필요했습니다.