아티클

ARIA 스크린 리더 호환성 프로젝트, ARIA-AT 소개

2022-03-21 16:02:08

안녕하세요, 엔비전스입니다.

접근성 적용을 하면서 겪게 되는 문제 중 하나는 개발자가 적용한 특정 코드가 스크린 리더에 따라 완전히 다르게 출력되는 경우가 있다는 것입니다. 예를 들어 웹 페이지 마크업을 하는데 대화상자를 여는 버튼이 있다고 가정해 보겠습니다.

<button aria-haspopup=”dialog”>All
Services</button>

해당 버튼에 접근성을 적용하려면 대화상자 팝업이 있다는 것을 알려 주어야 하므로 aria-haspopup=”dialog” 속성을 적용했습니다. 그런데 이것을 여러 스크린 리더에서 다 동일하게 읽을까요? 대화상자 팝업이라고 읽는 스크린 리더도 있지만 하위 메뉴, 팝업메뉴라고 읽는 스크린 리더도 있습니다.

이러한 경험을 하게 되면 어떻게 접근성을 적용해야 할지 많은 고민을 하게 되고 실질적으로 사용하는 사용자는 어떠한 스크린 리더에 따라 제공받는 정보 자체가 달라지게 됩니다. 왜냐하면 WAI-ARIA 사양에서는 하위 메뉴 팝업과 대화상자 팝업을 별도로 분류하고 있기 때문입니다.

이러한 문제를 해결하기 위해 어떤 개발자는 특정 정보를 스크린 리더만 읽을 수 있도록 대체 텍스트 형태로 요소 유형이나 상태 정보를 제공하기도 합니다. 안드로이드 네이티브 앱에서 그렇게 했던 가장 대표적인 예가 탭 요소입니다. 탭 요소는 TalkBack에서 요소 유형 정보를 제대로 지원한지가 얼마 안 됐습니다.

그래서 예전에는 나름대로 탭이라는 요소 유형 정보를 주려고 ‘탭 1/2’, ‘3개 중 첫 번째 탭’, ‘탭 이동 홈 탭’과 같이 여러 문구의 대체 텍스트가 추가해 왔습니다.

여러 앱을 사용해 본 입장으로써 참으로 다양한 문구들이 있었습니다. 그러나 TalkBack에서 탭 요소를 지원하기 시작하면서 대체 텍스트로 역할 정보를 제공해오던 탭은 역할 정보를 두 번 읽는 아이러니한 상황이 발생하게 되었습니다. 마치, 이미지 태그의 alt 값에 “이미지”나 “그래픽”을 써 놓은 것처럼 말이지요.

중복된 정보를 주거나 위젯에 대해 스크린 리더의 말이 너무 많으면 청각에 의존해야 하는 스크린 리더 사용자의 피로도는 한층 심해지게 됩니다. 즉 이러한 방법은 잠깐의 해결책은 될 수 있겠지만 실질적인 해결 방안은 될 수 없는 것입니다.

스크린 리더 호환성 문제는 웹에서 보조기술의 접근성을 더 높이기 위해 개발된 WAI-ARIA를 적용한 부분에서 특히나 더 두드러지게 발생합니다. 그래서 WAI-ARIA 기술이 모든 스크린 리더에서 동일한 정보를 주도록 하기 위해 W3C에서 ARIA-AT라는 프로젝트가 탄생했습니다. 본 아티클에서는 해당 프로젝트의 목표 및 현재의 진행 상황 등에 대해 함께 살펴보고자 합니다.

 

프로젝트가 만들어지게 된 배경

비장애인 관점에서 현재 대부분의 사이트는 우리가 사용하는 주요 브라우저에서 다 호환됩니다. 그러나 1990년대만 해도 브라우저마다 호환이 잘되지 않아 A 브라우저에서 실행되는 페이지가 B 브라우저에서는 실행되지 않는 사례가 많았습니다.

이러한 문제를 해결하기 위해서 2012년에 Web platform test 프로젝트를 만들고, 브라우저 호환성에 대한 버그를 해결하기 위해 웹 표준화 제정 및 수많은 자동화 테스트 등을 통해 문제를 해결하려고 노력하였으며 우리는 현재 그 노력의 성과를 경험하고 있습니다.

스크린 리더 호환성 문제를 해결하기 위한 프로젝트 역시 위에서 소개한 WPT 프로젝트의 성과에 착안하여 만들어지게 되었습니다.

본 프로젝트에서는 2023년까지 1차적으로 NVDA, JAWS, 그리고 macOS VoiceOver까지, 총 세 가지 주요 스크린 리더에 대한 WAI-ARIA 관련 호환성 테스트를 완료하고 그 결과를 공유하여 해결한 다음, 더 많은 보조기술로 범위를 넓힐 예정입니다.

그들이 추구하는 것은 WAI-ARIA의 여러 디자인 패턴들이 일관성 있게 스크린 리더에서 정보를 제공하는 것입니다. 즉, 읽는 용어 자체를 통일하거나 스크린 리더에서 독창적으로 추구하는 것들까지 침범하는 것은 아닙니다.

 

프로젝트 둘러보기

스크린 리더 호환성 테스트 범위는 역할(role), 상태 및 속성(states and properties), 역할 및 상태, 속성을 결합한 여러 위젯 패턴들을 포함합니다. 단, 개별 역할 속성 테스트에서 콘텐츠 자체에 사용해서는 안 되는 abstract role들은 테스트 범위에서 제외되었습니다. 단 랜드마크의 경우 디자인 패턴에 포함하여 테스트가 진행되고 있습니다.

제공되는 샘플 페이지는 ARIA Authoring Practices 예제를 사용하고 있습니다. WAI-ARIA는 현재 1.2 버전이 최신 표준이며 1.3 버전을 개발 중입니다. Authoring Practices 페이지에서는 각 ARIA 요소 자체의 사용 가이드보다는 여러 ARIA 관련 속성들을 사용하여 아코디언, 그리드 레이아웃, 드롭다운 메뉴, 모달 대화상자와 같은 여러 위젯 패턴을 개발할 때 지켜져야 할 개발 원칙과 샘플을 제공하고 있습니다.

따라서 본 프로젝트에서는 해당 디자인 패턴과 샘플 페이지를 중심으로 스크린 리더 호환성 테스트를 진행하고 있습니다. Test Writing Progress 페이지에 방문하면 테스트에 사용된 역할, 상태 정보 및 속성들의 리스트 및 현재 어느 정도 테스트가 진행되었는지를 확인할 수 있습니다.

모든 테스트는 표본마다 표본의 용도에 따라 어떤 식으로 테스트를 진행해야 하며 어떤 부분을 만족해야 하는지 가이드를 만들고 해당 가이드에 따라 테스트를 진행합니다. NVDA와 JAWS는 가상 커서를 켰을 때와 껐을 때를 나누어 진행합니다. VoiceOver에서는 가상 커서를 사용하지 않으므로 별도의 테스트가 진행됩니다. 예를 들어 NVDA 가상 커서를 켠 상태로 alert role의 호환성 테스트를 진행한다면 다음과 같은 시나리오가 제공됩니다.

  • 표준 환경으로 설정: NVDA 초기 설정으로 돌리기.

  • 표본 준비: 표본 페이지 실행하기, 포커스는 alert를 실행하는 버튼에 위치할 것임.

  • 가상커서 확인: ESC를 눌러서 가상커서가 혹시나 꺼져 있으면 켬으로 돌리기.

실행 동작 테스트: 실행 시에는 Enter, Space 키를 눌러서 각각 실행 시도하기.

  • 기대되는 결과: 해당 테스트를 통과하려면 NVDA는 ‘alert’ 라는 말을 해야 하고, 텍스트 ‘hello’라는 말을 포함해야 함.

특정 유형 테스트는 브라우저까지 함께 명시된 경우도 있습니다. 테스트 queue 페이지를 방문하면 각 테스트 유형 및 시나리오를 확인할 수 있습니다.

리포트는 테스트별 결과물을 바탕으로 작성합니다. 리포트에는 다음 내용이 포함되어 있습니다.

  • 테스트 환경정보: 테스트 재현 시 활용된 스크린 리더와 브라우저를 작성합니다.

  • 결과: 표본 시나리오 별 성공/실패 여부를 작성합니다.

  • 특이점(선택): 갑자기 반응 속도가 현저하게 느려지거나 초점이 다른 곳으로 튀거나 하는 예상되지 않은 스크린 리더 동작이 있으면 작성됩니다.

리포트 페이지를 방문하면 현재까지 리포트 된 내용들을 확인할 수 있습니다. 단 리포트는 현재 초안이기 때문에 수정될 수 있습니다.

 

스크린 리더 테스트 자동화 프로그램 개발

위에서 살펴본 것처럼 여러 테스트 유형이 있으며 스크린 리더도 현재 3종류입니다. 이러한 유형들을 일일이 수동으로 테스트하고 결과를 도출하는 것은 상당히 많은 시간이 소요됩니다.

브라우저 자체의 호환성 테스트를 할 때에는 WebDriver 프로토콜을 사용하여 자동화가 가능하였으나 해당 프로토콜을 사용하여 스크린 리더 실행 및 종료, 설정 변경, 출력된 텍스트 추출, 현재 가상커서가 켜져 있는지 등의 상태정보 파악 등이 불가능합니다.

이를 해결하기 위해서는 위에서 열거한 스크린 리더까지 함께 조작시킬 수 있도록 웹드라이버를 개발해야 합니다. 이와 별도로 본 프로젝트에서는 스크린 리더의 음성 텍스트를 JSON 형태로 출력하고 사용자의 키 입력을 동작시키는 기능을 개발하고 있습니다.

모든 스크린 리더에는 음성 엔진 카테고리에서 Microsoft Speech API 음성을 지원하는데 해당 음성 카테고리 내에 "Bocoup Automation Voice"가 추가되어 스크린 리더 환경설정에서 해당 음성 선택 시 텍스트를 추출할 수 있게 해 줍니다. 스크린 리더 자동화 테스트와 관련된 자세한 정보는 설명 페이지를 참고합니다.

지금까지 ARIA 스크린 리더 호환성을 높이기 위한 ARIA-AT 프로젝트에 대해 소개하였습니다. 본 프로젝트에서 진행 중인 여러 노력들이 여러 스크린 리더의 호환성을 개선하여 표준대로 접근성을 개발하면 사용에 아무런 문제가 없는 날이 하루속히 오기를 기대해 봅니다.

댓글 0
댓글을 작성하려면 해주세요.