• 웹 접근성 API 보조공학과 상호작용 :: 마이구미
    HTML, CSS 2016. 8. 21. 18:33
    반응형

    이번 글은 어떻게 보조공학(스크린 리더) 자체가 사용자에게 어떻게 정보 전달의 원리를 볼 것이다.

    조금 기술적으로 말해보자면,

    웹 콘텐츠의 내부에서 일어나는 일과 보조공학(AT) 상호작용의 기본 원리를 본다.


    기본적으로 알고 가야할 것들을 먼저 보자.

    API(Application Programming interface)란 무엇일까?

    많이 들어봤을 것이다.

    하지만 API가 뭐냐? 물으면 바로 말할 수 없는 사람들이 많다.

    이번 계기로 확실히 알고 가보자.


    API에 대한 정의로는,


    어떤 언어로 프로그래밍하는 데 필요한 코드나 함수, 혹은 용어를 제공하는 프레임워크나 규칙.


    이번 주제에 관한 정의로 본다면,


    브라우저나 보조공학 같은 소프트웨어에게 어떤 작업을 하라고 명령할 때 사용하는 코드 라이브러리.


    예를 들어 브라우저는 HTML5로 작성된 웹 콘텐츠를 DOM으로 변환한다.

    웹페이지의 DOM은 브라우저가 사용하는 레이아웃 엔진(게코, 웹킷 등)과 관련이 있다.

    변환을 마치면 브라우저는 레이아웃 엔진과 DOM에서 정보를 가져와 os의 플랫폼 접근성 API를 지원한다.

    이 접근성 API로 보조공학은 브라우저가 보여주는 모든 접근성 정보를 모니터하고 질의할 수 있다.


    앞서 설명한 정의에 대해 필요한 단어의 의미를 살짝 살펴보자.


    DOM이란?

    문서 객채 모델(Document Object Model)이라 뜻한다.

    웹 페이지나 다른 문서의 시맨틱 구조를 일종의 트리 형식으로 나타낸다.

    즉, 브라우저나 보조공학이 인지하게 될 여러 구조적 부분들을 나타낸다.


    DOM 구조



    레이아웃 엔진이란?


    레이아웃 엔진(layout engine) 또는 렌더링 엔진(rendering engine)은 웹 콘텐츠(HTML, XML, 그림 파일 등)와 포맷 정보(CSS, XML 등)를 가져 와서 화면에 해당 콘텐츠를 정리하여 보여 주는 소프트웨어를 말한다. 이 프로그램은 모니터 프린터에 표시할 창의 콘텐츠 영역을 그린다. 레이아웃 엔진은 웹 브라우저, 이메일 클라이언트와 같은 웹 콘텐츠를 보여 주거나 편집하는 데 쓰이는 응용 프로그램에 사용된다.


    각 브라우저마다 고유의 렌더링 엔진이 있다.

    ( 파이어폭스 - 게코, 크롬, 사파리 - 웹킷, 익스플로러 - 트라이던트, 오페라 - 프레스토 )


    접근성 API이란?
    특정 플랫폼에 제한된 접근성 API는 데스크톱이나 브라우저에서 보조공학이 이해할 수 있는 방식에 따라 접근성 정보를 주고받을 때 사용된다.

    접근성 API에는 MSAA, 유아이오토메이션, 애플 접근성 API,아이액세서블2, AT-SPI 등이 있다.

    이 API들은 윈도우, 맥, 리눅스와 같은 다양한 os 플랫폼에서 제공된다.

    접근성 API 종류에 대해 각각의 설명은 하지 않을 것이다.


    이제 어떻게 보조공학(스크린 리더)이 웹 콘텐츠의 정보를 출력할 수 있는 지에 대해 보자.


    보조공학과 웹 콘텐츠의 상호작용의 흐름은 크게 2가지로 볼 수 있다.

    보조공학이 DOM에 직접 접근하거나, 접근성 API를 통한 상호작용을 하는 것이다.



    아래 도표를 통해 살펴보자.

    그림에서의 API는 MSAA, 유아이오토메이션, 애플 접근성 API와 같은 접근성 API이다.


    접근성 API


    크게 스크린 리더, DOM, 접근성 API 3가지 분류로 보면 된다.

    위 도표를 풀어서 본다면, 아래 도표와 같다.


    접근성 API


    첫번째 방식은 스크린 리더는 접근성 API를 통해 정보를 얻을려고 한다면, 

    API는 DOM을 통해 정보를 얻어 스크린 리더에게 전달해준다.

    두번째 방식은 스크린 리더는 DOM에 직접 접근하여 정보를 얻는다.


    깊고 많은 내용이 있어, 전체적인 흐름만을 설명하기 위해 많이 축약했다.

    그러다보니, 내용은 짧지만 글을 적는데 오래 걸렸다.

    핵심만 잘 설명한건지는 확실치 않다.

    많은 피드백이 필요하다.


    아래 링크에 쉽게 설명되어있다.

    https://talk.godo.co.kr/view.php?cate=success&mode=success2&sno=767



    참고 책

    http://book.daum.net/detail/book.do?bookid=DGT4808996627432

    반응형

    댓글

Designed by Tistory.