피드로 돌아가기
Dev.toFrontend
원문 읽기
React 19 기반 Vertical Layout 대응 Accessible Navigation 설계
Vertical Layout Considerations
AI 요약
Context
기존 Horizontal Layout 중심의 키보드 핸들링 로직으로 인한 Mobile Vertical 환경의 UX 불일치 발생. 특히 Sublist 자동 닫힘 현상과 방향키 이동 제약으로 인한 Operability 저하 문제 해결 필요.
Technical Solution
- NavigationProvider 내 config 객체에 orientation prop을 저장하여 레이아웃 상태를 전역적으로 관리하는 구조 설계
- isLayoutVertical 콜백 함수를 통한 레이아웃 상태 판별 로직 구현으로 조건별 키보드 이벤트 분기 처리
- Vertical 레이아웃 시 _closeOpenSiblings 호출을 제한하여 Sublist 상태를 유지하는 UX 최적화 적용
- DOWN-ARROW 키 입력 시 현재 리스트의 닫힘 여부와 마지막 요소 도달 여부를 판단하여 Parent Sibling으로 포커스를 이동시키는 순환 탐색 로직 구현
- UP-ARROW 키 입력 시 가시적 리스트의 역순으로 포커스를 이동시켜 Top Row의 첫 번째 자식 요소까지 도달하는 탐색 경로 최적화
- focus 이동 시 브라우저 기본 스크롤 동작을 허용하여 Vertical 뷰포트 내 접근성 확보
실천 포인트
- 레이아웃 변경에 따른 상호작용 변화를 처리하기 위해 State 관리 계층(Provider)에 Orientation 설정 포함 여부 검토 - Accessibility 구현 시 Screen Reader를 위한 Structural HTML 정의와 Keyboard User를 위한 Operability 설계 분리 적용 - 단순 Tab 이동 외에 방향키(Arrow Keys)를 활용한 Custom Focus Navigation 로직의 예외 케이스(리스트 끝단 처리 등) 정의