텍스트 모드라는 거짓말: 현대 TUI가 접근성을 해치는 이유

1 week ago 29

터미널에서 실행된다고 자동으로 접근 가능한 것은 아니며, 현대 텍스트 사용자 인터페이스(TUI) 는 접근성이 떨어지는 그래픽 인터페이스보다 스크린 리더에 더 적대적일 수 있음 전통적인 명령줄은 시간순으로 쌓이는 선형 데이터 스트림인 반면, 현대 TUI는 문자 셀을 픽셀처럼 쓰는 2차원 격자로 시간적 흐름을 공간적 배치로 바꿈 Ink, Bubble Tea, tcell 같은 프레임워크는 화면 갱신 때마다 커서를 여러 위치로 이동시켜 스크린 리더가 변화와 읽기 순서를 처리하기 어렵게 만듦 일부 오래된 TUI는 터미널 기능으로 이런 문제를 피하며, Irssi는 화면 전체를 다시 그리는 대신 VT100 스크롤 영역을 사용함 TUI 자체보다 터미널의 핵심 기능을 제대로 활용하지 않는 구현 방식이 문제이므로, 개발 단계에서 화면 재그리기와 커서 이동의 접근성 영향을 고려해야 함 터미널이 보장하지 않는 접근성 시각이 있는 개발자 사이에는 그래픽, 복잡한 DOM, WebGL 캔버스가 없는 터미널 애플리케이션이라면 스크린 리더가 쉽게 해석할 수 있는 원시 ASCII 텍스트라는 오해가 이어지고 있음 실제 현대 TUI는 접근성이 떨어지는 그래픽 인터페이스보다 사용하기 어려울 수 있음 터미널 개발자 경험을 개선하려는 Ink(JS/React), Bubble Tea(Go), tcell 같은 프레임워크가 시각장애인의 사용 경험을 오히려 훼손함 명령줄과 현대 TUI의 구조적 차이 전통적인 명령줄 인터페이스에서는 최신 데이터가 아래에 추가되고, 위로 갈수록 과거 기록이 나타나는 선형 데이터 스트림이 형성됨 이러한 시간순 구조는 스크린 리더가 비교적 쉽게 처리할 수 있으며, 커널 수준 스크린 리더도 잘 작동함 현대 프레임워크 기반 TUI는 각 문자 셀을 픽셀처럼 사용하는 2차원 격자로 동작함 데이터의 시간적 흐름 대신 공간적 레이아웃을 구성함 스크린 리더는 이 공간 배치를 해석하기 어려움 화면 갱신이 읽기 순서를 깨뜨리는 과정 현대 TUI는 화면을 갱신할 때마다 커서를 여러 위치로 이동시킴 반복적인 커서 이동 때문에 스크린 리더는 화면의 변화와 읽기 순서를 제대로 처리하기 어려워짐 문자 기반 출력인지보다 터미널 화면을 어떻게 갱신하는지가 접근성을 좌우함 오래된 TUI가 활용한 터미널 기능 현대 TUI 프레임워크보다 먼저 만들어진 일부 애플리케이션은 터미널에 더 적합한 방식으로 설계됐음 커서를 숨기는 선택지를 제공해 스크린 리더 문제를 줄이는 도...

Read Entire Article