그놈의 접근성 동작 방식

접근성 도구 모음(ATK)은 GUI 구성 요소에 접근할 수 있도록 필요한 모든 인터페이스 구현체 모음을 기술했습니다. 인터페이스는 도구 모음과 무관합니다. 구현체는 GTK, Motif, Qt 등 다양한 위젯으로 작성할 수 있습니다.

GTK 위젯 구현체는 GTK 프로그램에서 실행 시간에 동적으로 불러올 수 있는 GAIL(그놈 접근성 구현체 라이브러리) 모듈에 있습니다. 한 번 불러오고 나면, 프로그램에서 표준 GTK 위젯을 활용하는 부분프로그램을 전체적으로 수정하지 않아도 기본적인 수준의 접근성을 확보합니다. GAIL을 불러오지 않으면 GTK 위젯에서 ATK API와의 일치 여부에 대한 핵심 정보를 전혀 돌려주지 않는 기본 접근성 구현체를 보유합니다. 부분적으로 처리 영역을 벗어나는 보노보 제어 기술을 활용하는 프로그램은 libgail-gnome모듈에서 접근성 지원 코드를 불러옵니다. 그놈 데스크톱 프로그램이 "/desktop/gnome/interface/accessibility" gconf 키 값에 따라 자동으로 이들 접근성 지원 라이브러리를 불러오느냐에 따라 "true" 부울린 값을 설정하면 보조 기술 지원을 활성화하며, gnome_program_init을 호출하는 프로그램이 런타임에서 적절한 접근성 라이브러리를 자동으로 불러옵니다. gtk+를 활용하지만 libgnome과 연동하지 않은 "순수 GTK+ 프로그램"의 경우 보조 기술 지원을 활성화하려면 GTK_MODULES 환경 변수에 "gail:atk-bridge" 값을 설정해야합니다.

다른 데스크톱에서 동작하는 대부분의 보조 기술은 역사적으로 데스크톱의 OS 이벤트 스누핑을 기반으로 동작하는 복잡한 오프스크린 모델, 비 지원 OS의 사용, 프로그램 기능 및 API, 기타 이식하기 난해한 기술의 관리가 필요함을 발견했습니다. 이 때문에 OS 및 프로그램별, 프로그램의 버전별로 각자 따로따로 놀아나는 "허접한" 보조기술 지원을 만들어냈습니다. 반면에 그놈 데스크톱에서는 AT에서 필요한 모든 정보를 프로그램이 실행할 때 그놈 접근성 프레임워크에서, 도구 모음과는 별개의 서비스 제공 인터페이스로 제공했습니다. SPI는 유닉스 기반 AT에 화면 리더, 화면 돋보기같은 수단을 제공하여 일관되고 안정적인 API로 실행중인 프로그램에 접근성 정보를 얻어냈고, 대부분에 경우에 있어 오프스크린 모델의 필요성을 불식시킬 수 있었습니다. 프로그램에 대한 접근성 지원은 도구 모음에 적절한 API에서 프로그램 도구 모음에 "내장"했고(대부분의 네이티브 C 프로그램에는 ATK를, 자바 프로그램에는 Java 접근성 API를 활용), 관련 "브릿지"(다이어그램 참고)로 "AT-SPI" 일반 인터페이스를 내놓았습니다.

그림 1-1GNOME 접근성 구조

그놈의 내장 접근성 지원이란, 내장 지원 방식과 혼동되는 일반적이지 않은 수단은 활용하지 않도록 "자유로운" 보조 기술을 지원하는 보유 그놈 위젯을 활용하여 프로그램을 만듦을 의미합니다.

gtk+/GNOME 위젯은 이 문서 어디든 일반 접근성 지침을 따랐을 경우 접근할 수 있으며, 사용자 인터페이스의 역할에 맞는 ATK 인터페이스를 구현합니다. ATK 구현체는 그놈 도구 모음 위젯 "보유물"(오래되지 않은 gtk+ 및 그놈 위젯)로 제공하며, 대부분 기존 gtk+ 또는 그놈 위젯에서 오는 새 위젯도 적절한 접근성 지원을 물려받습니다.

그놈 내장 접근성 지원에서는 프로그램의 일부를 바꾸는 접근성 관련 코드 없이도 중요한 기능을 제공하지만, 보통 프로그램에서는 일부 위젯에 제공하는 기본 설명을 종종 개선할 수 있으며 프로그램에서 간단한 ATK 메서드 호출로 위젯의 개별 목적에 따라 다듬을 수 있습니다. 예를 들면, 대부분의 경우 프로그램에 적당한 ATK 함수 호출로 위젯의 글자 설명을 추가하거나 바꿔서 보조 기술의 결과물이 사용자에게 기능의 목적이나 상태를 설명할 수 있어야합니다. 자세한 내용은 접근성 지원 코드 작성 지침서 를 참고하십시오.

프로그램에 개별 제작 위젯을 사용한다면, 해당 위젯의 속성을 보조 기술에 알려주어야 합니다. 추가 정보는 개별 구성요소 접근성 처리접근성 API 활용 예제를 참고하십시오.

추가로, GTK/GTK+에 관련된 심층 정보는 GTK+ 참고 설명서, ATK 안내서의 GTK 섹션, GNOME에서 제공하는 GTK+ 2.0 활용 지침서, 공식 문서인 GTK+ FAQ을 참고하십시오.