보조 공학과 Java 액세스 브릿지

Java SE 2005/07/12 10:22 Posted by Sun
보조 공학(Assistive technology)란 신체적으로 부자유스런 사람들이 컴퓨터를 사용할 수 있도록 돕는 하드웨어/소프트웨어 솔루션을 말한다. 보조 공학은 음성 입력 기기, 점자 표시 단말기, TTS 스크린리더(웹 페이지 내 문자를 판독해 사용자에게 읽어주는 프로그램) 등을 아우른다. Java Foundation Class에서는 javax.accessibility 패키지에서 제공하는 Accessibility API를 통해 보조 공학을 지원하는 표준 방식을 제공한다. 이 API는 Swing 기반 프로그램에 신체적으로 부자유스런 사람들이 액세스할 수 있도록 만들어준다.

신체적으로 부자유스런 사람이 아니더라도 이런 액세스 옵션이 도움이 될 것이다. 이 옵션에는 사용자가 마우스를 갖다대어 컴포넌트를 나타낼 수 있는 툴팁 텍스트 등 간단한 기능도 포함되어 있다. 시력이 좋지 않은 사용자는 컴포넌트의 툴팁텍스트를 음성으로 말해주거나 테이블 셀을 체크박스로 표현해주는 스크린리더 같은 기기를 이용할 수 있다. 다른 옵션들에는 사용자가 최소한의 마우스 클릭으로 스크린을 네비게이트 하거나 최소한의 동작으로 작업이 실행될 수 있도록 하는 키보드 가속기나 메뉴 단축키 등이 포함되어 있다.

사용자의 Swing 컴포넌트는 컨피규어한다고 하면, javax.accessibility 패키지에 관련된 모든 것은 보이지 않고 일어난다. 액세스 보조기는 플랫폼 상의 Java Virtual Machine (JVM)*과 연결되어 있다. 사용자가 첨부된 보조기로 JVM*을 통해 프로그램을 로딩하면 Java Accessibility API가 필요한 정보를 기기에 제공하게 된다. 예를 들어 사용자의 프로그램에 ImageIcon을 생성하여 Accessibility API를 통해 ImageIcon에 액세스할 수 있게 만들고자 한다면, ImageIcon을 기술하여 이를 실행할 수 있다. ImageIcon에 대한 두 쌍의 컨스트럭터가 있다. 그 중 한 쌍에는 기술 독립변수가 없다.
   // Without description argument
   public ImageIcon()
   public ImageIcon(Image image)
   public ImageIcon(String filename)
   public ImageIcon(URL location)
   public ImageIcon(byte imageData[])
다른 한 쌍에는 기술 독립변수가 있다.
   // With description argument
   public ImageIcon(Image image, String description)
   public ImageIcon(String filename, String description)
   public ImageIcon(URL location, String description)
   public ImageIcon(byte imageData[], String description)
ImageIcon을 만들 때 description을 넣는 다면, 아이콘을 볼 수 없는 사용자에게 정보를 나타내기 위해 보조기술이 텍스트를 묘사할 수 있으므로 그 프로그램은 좀 더 액세스가 쉽게 된다.

다음은 보조 공학을 사용하고자 하는 애플리케이션을 생성할 때 필요한 몇가지 질문과 단계들이다.(완벽한 리스트는 아니다.)
  • 첫번째 과제로 마우스 없이 프로그램을 이용해보기 바란다. 사용자의 메뉴에 가속기와 단축기가 지원되는가? 키보드 버튼에 단축키가 입력되어 있는가? 사용자의 텍스트 필드에 setLabelFor() 메소드를 통해 연계되는 라벨이 있는가? 각 라벨에는 단축키가 있는가?

  • 컴포넌트에 이들에 연계된 간략한 텍스트 스트링이 있음을 확인하자. 컴포넌트에 이미지 버튼이라던지 체크박스 테이블 셀 같은 연계 텍스트 스트링이 없으면, AccessibleContextsetAccessibleName() 메소드를 호출하자. 사용자의 프로그램이 국제적인 수신자를 타겟으로 한다면 이 이름을 로컬화하는 것도 잊지 말자.

  • 가능하다면 툴팁 텍스트로 작업한다. 툴팁 텍스트를 컴포넌트에 연결시키는 것이 적절하지 않다면, setAccessibleDescription()를 호출한다.

  • 사용자정의 컴포넌트가 액세스 가능한가? JComponent를 서브클래스 했다면, 컴포넌트의 클래스는 Accessible 인터페이스를 구현하지 않는다. 그러나 JPanel를 서브클래스했다면 클래스는 Accessible 인터페이스를 구현한다. JPanelAccessible 인터페이스를 구현했더라도 사용자의 컴포넌트가 필요한 액세스 정보를 제공하지 않을 수 있다. 사용자정의된 AccessibleContextJComponent.AccessibleJComponent를 적절한 때에 확장하도록 한다.

  • 액세스 불가능한 컨테이너에 있는 컴포넌트는 액세스할 수 없다. 사용자의 스크린이 계속적으로 액세스가능하도록 컨테이너로 JPanel을 사용하기 바란다. (AWT Container 클래스를 사용하지 않도록한다.)
미국 정부는 미국 정부용으로 개발된 시스템을 많은 사용자들이 이용할 수 있도록 보증하기 위해 Section 508 액세스 요청이라고 알려진 일련의 연방 정책을 고수하고 있다. 많은 다른 나라들도 비슷한 정책을 갖고 있다. Sun사에서는 IT-related accessibility issues를 다루는 사이트를 운영하고 있다. 이 사이트에는 미국 내 뿐 아니라 국제 리소스에 대한 레퍼런스가 포함되어 있다.

다른 액세스 프로그램을 생성하는 테크팁은 Java 튜토리얼의 How to Support Assistive Technologies를 참고하기 바란다.

액세스 프로그램을 생성하는 간단한 법칙을 넘어서서 Sun사는 Java Access Bridge라고 불리는 윈도우 플랫폼용 툴을 제공하고 있다. Java Access Bridge에는 사용자의 프로그램이 얼마나 액세스 가능한지 확인하고, 보조 공학들을 데모할 수 있는 호환가능 Java VM을 추가할 수 있는 툴을 포함하고 있다.

Java Access Bridge를 다운로드하려면 Java Access Bridge 페이지를 열고 다운로드 링크를 클릭한다. 라이센스 동의서를 읽고 동의하면 Accept과 Continue를 클릭하면 된다. accessbridge-1_2.zip를 저장하고, zip 파일을 풀고 디렉토리 구조를 저장한다. 이로써 사용자의 설치 디렉토리에 AccessBridge_1.2_GA라는 이름의 디렉토리가 생성된다.

다음으로 인스톨러 서브 디렉토리에서 찾아 설치 프로그램을 구동한다. JVM 호환을 위해 인스톨러는 전체 시스템을 체크한다. 이를 통해 Bridge가 사용자가 원하는 JVM을 설치하도록 한다. 가장 사용하고 싶은 JVM을 고른다. 사용자의 기기의 기존 JVM 버전을 삭제해야할 수도 있다. c:\program files\java로 시작되는 디렉토리는 브라우저를 위한 Java Plug-in의 다른 버전이다.

Available Java virtual machines

Install 을 누르면 설치가 완성되었음을 알리는 창이 뜬다.

Installation Completed

이제 Access Bridge에 패키지된 두개의 예제 프로그램, : Java Monkey과 Java Ferret을 구동할 수 있다. 한번 구동 되면, 이 프로그램들은 같은 JVM을 구동하는 어떤 자바 프로그램에든지 첨부되어서 여러 개의 Java Access Bridge 기능을 사용하게 된다. Java Monkey를 사용해보자. 먼저 아무 Java 애플리케이션이나 실행한다. 예를 들어, 텍스트 유효성 검사로 문서 필터링하기 테크팁에서 보여준 NumericVerifier 프로그램을 구동할 수 있다. 두번째 윈도우에서 JavaMonkey를 구동한다. Java Monkey를 시작하면 사용자의 시스템 내의 모든 JVM에서 구동되고 있는 모든 Java 애플리케이션들의 컴포넌트 트리를 보여주는 윈도우를 볼 수 있다. 컴포넌트 트리가 즉시 나타나지 않으면 File 메뉴 안의 Refresh Tree 옵션을 클릭하도록 한다.

Java Monkey

Panel 메뉴에서 Accessibility API Panel 옵션을 선택하면 특정 컴포넌트의 정보를 얻을 수 있다. 트리에서 컴포넌트를 선택하여 이름, 정의, 역할 등의 정보를 보도록 하자.

Java Accessibility API view

Java Ferret은 트래킹 프로그램에 좀 더 가깝다. 마우스, 포커스, 메뉴 선택 등 서로 다른 이벤트들의 트래킹이 가능하다. JaVa Ferret을 구동하는 것은 Java Monkey를 구동하는 것과 매우 흡사하다. Numeric Verifier 프로그램과 같이 어떤 Java 애플리케이션이나 첫번째 윈도우에 실행하고 Java Ferret을 두번째 윈도우에 시작한다.

Java Ferret을 시작할 때 UpdateSettings, JavaEvents, AccessibilityEvents가 포함된 메뉴가 있는 윈도우를 봐야한다. JavaFerret으로 할 수 있는 것을 보여주기 위한 예제로써, JavaEventsMenu 내의 TrackMouseEvent를 선택하자. 이는 '마우스로 입력'하는 모든 이벤트를 Java Access Bridge로 등록하고 각 마우스 이벤트에 대한 정보를 보여준다.

Java Ferret

사용자의 프로그램에서 Java Monkey와 Java Ferret 프로그램을 사용하여 해당 프로그램에 얼마나 액세스 가능한지 알아보기 바란다.

Monkey와 Ferret 이외에도 netBeans.org의 Accessibility Developer Corner에서는 a11y(11은 accessibility의 영문알파벳 'a'와 'y'사이의 11자를 나타낸다)로 불리는 테스트 툴을 제공하고 있다. 이 툴에 대한 자세한 내용은 a11y project 홈을 참고하기 바란다.

UNIX에서도 또한 GnopernicusGOK로 불리는 보조 공학을 제공하고 있다. 이들은 Solaris 10에 구축되어 있으며, 무료로 이용가능하다.

accessibility에 대한 자세한 정보는 자바 튜토리얼의 How to Support Assistive TechnologiesState, Federal, and International Legal Resources for IT related Accessibility Issues를 참고하기 바란다.

"Java SE" 카테고리의 다른 글

2005/07/12 10:22 2005/07/12 10:22

TRACKBACK :: http://blog.sdnkorea.com/blog/trackback/187

  1. 보조 공학과 Java 액세스 브릿지

    Tracked from jinsoolife.com  삭제

    보조 공학(Assistive technology)란 신체적으로 부자유스런 사람들이 컴퓨터를 사용할 수 있도록 돕는 하드웨어/소프트웨어 솔루션을 말한다. 보조 공학은 음성 입력 기기, 점자 표시 단말기, TTS 스크린리더(웹 페이지 내 문자를 판독해 사용자에게 읽어주는 프로그램) 등을 아우른다. Java Foundation Class에서는 javax.accessibility 패키지에서 제공하는 Accessibility API를 통해 보조 공학을 ...

    2008/06/08 10:03

댓글을 달아 주세요

  1. 박정숙  수정/삭제  댓글쓰기

    좋은 정보 감사해요~

    2007/09/19 05:11
[로그인][오픈아이디란?]

◀ Prev 1  ... 501 502 503 504 505 506 507 508 509  ... 626  Next ▶