Windows 7 필요 옵션 (사용자 보조)
Windows 7 필요 옵션과 음성인식 경험 개발을 담당하는 사용자 인터페이스 플랫폼 팀의 개발장인 Michael Bernstein 이 쓴 글입니다. 우리에서 필요 옵션 라는 용어는 가능한 한 많은 사람들에서 Windows 가 사용하기 쉽게 되기 위한 기능이나 API 를 의미합니다. 즉, 신체 능력이나 인식 능력에 관계없이 누구나가 Windows 기능에 액세스할 수 있도록 하는 것입니다. 이것을 가능하게 하기 위해서, Windows 에는 기본 제공되는 필요 옵션 유틸리티와 API가 모두 포함되어 있습니다. API 는 특히, 타사제품의 지원 기술이나, 자사 소프트웨어가 액세스 하기 쉽도록 만들기 위해 응용 프로그램 개발자에 의해서 사용됩니다. 이번 주제는 Microsoft에서 몹시 중요하고, Windows 7 의 엔지니어링의 기본이념의 하나이기도 합니다. 또, Microsoft에는 PC 가 보기 쉽고, 들리기 쉽고, 사용하기 쉽도록 연구하는 전사적인 그룹이 있습니다. Microsoft의 필요 옵션에 대한 이니시어티브에 대해는 https://www.microsoft.com/korea/enable/Products/default.mspx 에서 자세하게 보실 수 있습니다. --Steven
먼저 Windows 7 필요 옵션에 관해서 어떻게 생각하는지 얘기하고 싶습니다.
우리는 Windows 7 을 지금까지 Microsoft가 만들어온 운영 체제 중에서 가장 액세스 하기 쉽게 만들려고 했습니다. 이번 출시 계획에서도 밝혀졌지만, 필요 옵션이라는 개념은 외형만큼 단순하지는 않습니다. 필요 옵션은 보안과 같이 생각할 수 있습니다. 어느 쪽이나 기존의 불편이 있는 한편, 시스템은 안전/액세스 가능하다고 믿습니다. 그렇지만, 이 정의는 한정적입니다. 시각 장해를 가지는 사용자의 요구는 청각 장해를 가진 사용자의 요구와는 완전히 다르다는 사실에 대해서, 어떻게 대처하면 좋을까요? 양쪽 눈이 모두 거의 보이지 않는 사람의 요구와 약시를 가진 사람의 요구도 다릅니다. 예를 들어, 확대 도구는 양쪽 시야가 모두 거의 보이지 않는 분들은 도움이 되지 않습니다만, 약시를 가진 분들에서는 지극히 중요합니다. 또, 이론적으로는 액세스 가능해도, 실질적으로는 어려운 (예를 들어, 실행하는데 36회 키를 누르지 않으면 안 되는 시나리오 등) 경우는 어떨까요? 분명, 필요 옵션은 단순한 「네」 「아니오」로 대답할 수 있는 질문이 아닙니다. 좀더 특별한 용도를 목적으로 사용하는, 각각 개별의 요구를 가진 특수한 사용자 무리를 위한 사용성입니다.
질문이 복잡하여 대답도 복잡해졌습니다. 우리는 Windows 7에 대해 필요 옵션을 향상시키기 위해, 4개 파트에서 완성되는 방법을 선택했습니다.
I. UI 자동화로 제대로 한 기초를 쌓아 올린다
Windows Vista에서 Microsoft는「UI 자동화」라는 필요 옵션 용무가 새로운 코어 구성요소를 도입했습니다. UI 자동화는 사용자의 지원 기술 (Assistive Technology = AT)이 응용 프로그램의 UI 를 프로그램으로 구동하는 것을 가능하게 하여, 필요 옵션 기능을 이전 버전의 Windows 와 비교해서 보다 풍부한 방법으로 표현할 수 있도록 합니다. UI 의 요소에 대해 세세하게 확인할 수 있고 더 풍부한 방법으로 UI 를 조작할 수 있습니다. UI 자동화는 「컨트롤 패턴」이라는 생각도 도입했습니다. 컨트롤 패턴이란, UI 의 어느 요소도 어떻게 컨트롤 되어야 할 지를 결정할 수 있습니다. 예를 들어, 단추에는 Invoke 패턴이 있지만, 이것은 누를 수 있는 것을 보이는 것입니다. 이와 같이 콤보 박스에는 열거나 닫을 수 있는 것을 보이는 ExpandCollapse 패턴이 있습니다.
Windows 7 에서는 UI 자동화 시스템 성능 향상에 힘을 쏟아, 지원 기술을 사용한 다양한 소프트웨어로 효과적으로 사용되도록 UI 자동화 용무의 API 를 새롭게 처음부터 생성했습니다. 지금은 C++ 로 쓰여진 응용 프로그램도 .NET 프레임워크를 사용해 쓰여진 응용 프로그램도, UI 자동화를 활용할 수 있습니다.
우리는 또, UI 자동화 시스템이 레거시인 Microsoft Active Accessibility (MSAA)와 보다 밀접하게 통합되도록 상당한 작업을 실시하여, 신구 기술이 좋은 곳을 중개하기 위한 새로운 기술을 개발했습니다. UI 자동화의 클라이언트는 MSAA 응용 프로그램에서 필요 옵션 정보를 읽어낼 수 있고, 그 반대도 같지만, 이것은 응용 프로그램이 원래 어느 쪽의 API 를 사용하고 있었는지를 관계없이 최대한의 필요 옵션을 확실한 것으로 하기 위해서입니다. UI 자동화 시스템과 MSAA 시스템은 다양한 시나리오에서 서로 긴밀히 협력하고 있으며, 이 두가지의 조합을 「Windows Automation API」라고 부릅니다. 이 아키텍처는 그 외의 필요 옵션에 대한 대처의 기초가 되는 것으로, 이 필요 옵션의 기초가 Windows 7 에도 포함되어 되어 기쁩니다.
II. Windows 에 들어가 있는 필요 옵션의 유틸리티를 개선한다
Windows 에 필요 옵션의 유틸리티도 개선 했습니다. Microsoft는 수많은 AT 소프트웨어 회사와 밀접하게 협력하고 있지만, 다른 소프트웨어를 설치 하기 전의 초기 경험도 액세스 하기 쉬도록 하기 위해서, Windows 에는 일련의 유틸리티가 포함되어 있습니다. Windows 7 에서는 이러한 유틸리티 중 두 가지를 강화하기로 했습니다. 스크린 키보드와 확대경입니다.
스크린 키보드의 가장 현저한 변화는 개선된 형태나 조작면이지만, 그 밖에도 미묘한 확장이 있습니다. 이 유틸리티의 형태는 Windows XP에서 바뀌지 않고, 고객에서 사이즈 변경을 할 수 있도록 요청을 받았습니다. 우리는 이 양쪽 모두에 대해 태블릿 개발자와 함께, 태블릿 소프트키보드와 스크린 키보드로 공통의 코드베이스를 공유했습니다. 지금은 어느 쪽의 키보드도 Windows 7에서 조화를 이룬 매력적인 형태가 되어, 사이즈 변경이 가능하게 되었습니다. 그렇지만, 키보드는 다릅니다. 태블릿 사용자는 자필과 유형 입력을 다이내믹하게 전환하고 싶어 합니다. 한편, 스크린 키보드의 사용자는 클릭하는 것이 어려운 장해가 있는 경우, 키를 찾거나 스캔 할 수 있는 모드가 필요합니다. 그래서 장해가 있는 사람은 문자를 보다 빠르게 입력할 수 있도록 기본적인 예측 입력 기능을 추가했습니다. 지금까지 스크린 키보드로 유형 입력을 시도했던 적이 있다면, 예측 입력이 얼마나 텍스트의 입력 스피드를 향상시키는지 알 수 있을 것입니다.
확대경은 철저하게 재검토되었습니다. Windows Vista 나 Windows XP 로의 확대경은 직감적인 경험이 아니었습니다. 예를 들어, 화면의 일부를 포인트 하면, 확대된 내용은 (일반적으로, 화면의 윗쪽에 도킹된) 다른 윈도우에 표시되었습니다. 즉, 한점을 포인트 하면서, 다른 장소를 보지 않으면 안되었습니다. 이 문제에 대해서, 우리는 두가지 기본적인 솔루션을 생각했습니다. 화면 전체를 줌할 수 있도록 하는 것으로, 포인터의 움직임에 맞추고 영역을 확대해 나머지의 부분은 그대로 하는 것입니다. 이 「전체 화면 모드」와「렌즈 모드」가 Windows 7 확대경의 두가지 주요한 모드가 되었습니다.
전체 화면 모드는 화면상에 있는 모든 것의 사이즈를 한 번에 크게 하고 싶은 경우에 유효합니다. 마우스나 키보드의 포커스를 화면의 중앙 근처에서 움직여도, 뷰는 그대로 입니다. 화면의 구석으로 움직이면, 확대경은 따라가듯이 뷰를 스크롤 합니다. 이 사용성의 문제에 대처하기 위해, 화면 전체에 대해서 지금 보고 있는 영역이 어디인지 보여주기 위해서 줌 아웃하여, 그 후 다시 줌인 하는 상황을 보이는 애니메이션을 추가했습니다.
한편, 렌즈 모드는 특정 부부만을 줌인하고 싶은 경우에 편리합니다. 이 모드에서는 렌즈는 마우스포인터를 중심으로 하므로, 확대경을 사용하는 느낌입니다. 렌즈는 폭넓게 사이즈 조정이 가능해서, 문서를 1 행씩 확대하고 싶은 경우에 편리합니다. 이 디자인은 호평을 받고 있는 Microsoft IntelliPoint 확대경에 근거하지만, 지금부터는 어느 마우스에서나 사용할 수 있습니다.
확대경의 윈도우가 화면상에서 공간을 차지한다는 사용자의 피드백을 받았습니다. 무엇보다 잘 사용되는 줌인/줌 아웃이라고 하는 컨트롤을 작은 도구 막대에 이동시켰습니다. 이 도구 막대는 사용하지 않을 때는 페이드 아웃됩니다. 그 외의 옵션은 필요한 때에 [옵션] 대화상자로 설정 할 수 있습니다. 그리고 마지막에, 거의 모든 기능에 대해서 키보드 바로 가기를 붙였습니다. 따라서, UI 를 보고 싶지 않으면, 사용하지 않아도 됩니다. Windows 7 에서는 [Win] + [+] 키를 누르면 언제라도 줌인할 수 있습니다.
이러한 도구는 낮은 시력이나 손끝의 세세한 작업이 곤란한 고객의 필요 옵션을 직접 향상시킵니다. 당연한 일이지만, PC 를 보거나 정보 교환을 실시하여 모든 사람에서 도움이 되도록, 이러한 두 가지 예는 AT 도구를 폭넓은 층에 대해서 호응을 얻었습니다. PDC 에서는 스크린 키보드와 확대경 양쪽 모두를 보여드렸지만, 능력에 관계없이 모든 사람이 이러한 도구가 자신에게 도움이 될 것이라고 생각합니다.
III. 필요 옵션 소프트웨어의 생성을 쉽게 한다
Windows 의 API 만이 필요 옵션의 모든 것을 제공할 수 있는 것은 아닙니다. Windows 기반의 응용 프로그램이 AT 프로그램이 사용하는 필요 옵션의 데이터를 올바르게 건네주는 것이 꼭 필요입니다. 예를 들어, 훈독 인상 소프트는 잘 음성을 낼 수 있는 것에도 불구하고, 마음에 드는 Web 브라우저에서 로드할 수 없다면, 그것은 무슨 의미가 없습니다. 훈독 인상 소프트나 확대경이라는 지원 도구는 필요 옵션 시스템의 「클라이언트」입니다. 한편, Web 브라우저나 워드프로세서 등의 응용 프로그램은 「공급자」입니다. 경험 전체가 액세스 가능 하려면, 양쪽 모두 필수적 입니다. 즉, 고품질 클라이언트와 견실한 공급자 양쪽 모두가 뛰어난 필요 옵션 경험을 얻기 위해서 필요합니다. 소프트웨어 에코시스템에서는 수많은 공급자가 있습니다. 그 때문에, 각각의 공급자에 대해 올바르게 코드가 쓰여져 있는지 하나하나 체크하는 것은 대단한 일입니다.
이 어려움에 대처하기 위해, 우리 팀은 「UI Accessibility Checker (줄어서 AccChecker)」라는 UI Automation Verify (UIA Verify) 응용 프로그램 (실제로는 공급자)을 스캔하여 일반적인 필요 옵션 문제에 대해 보고하는 유틸리티를 개발했습니다. 소프트웨어 개발자들은 고객이 실제로 사용하기 전에, AccChecker 나 UIA Verify 를 사용해 공급자코드의 문제를 검색 할 수 있습니다. 또, 품질 보장 엔지니어는 회사의 일의 품질을 유효성 검사 하는데 이러한 유틸리티를 사용할 수 있습니다. 우리는 AccChecker 나 UIA Verify 를 오픈 소스의 소프트웨어로서 공개하여, 가능한 한 많은 관계자에게 사용해 주는 것이 지극히 중요하다고 생각합니다.
IV. 필요 옵션 계획의 시작
Windows의 기능 그 자체가 뛰어난 공급자인 것을 확실히 하기 위해서 소프트웨어 개발 수명 주기의 위험 평가에서 아이디어를 얻었습니다. 코드를 쓰기 전에, 각각의 계획 된 Windows 7 의 기능에 대해, 필요 옵션의 위험도를 평가합니다. 기본적인 컨트롤을 사용하는 기능은 일반적으로, 보다 필요 옵션에 대응하고 있습니다. 왜냐하면, Windows 는 기성의 구성요소에 대해서 내장된 공급자를 제공하기 때문입니다. 사용자 지정 드로잉을 하는 기능은 대응시키기 위해서 여러가지 작업을 실시해야 합니다. 이 계획 프로세스에 의해, 각각의 개발 팀은 어느 정도 필요 옵션의 위험도가 있는지 알 수 있기 때문에, 정확하게 계획을 세울 수 있었습니다. 일단 기능이 올바르게 평가되면, 우리의 팀은 위험도에 의해서 기능표를 정렬하여 위험도가 높은 기능을 담당하고 있는 팀에 연락하여, 그 기능이 필요 옵션 대응이 되기 위해서 필요한 리소스나 도구가 충분한지 확인했습니다. 또, 보다 실천적인 테스트나 유효성 검사가 확실히 되도록 했습니다. 그 결과, Windows 의 기능의 대부분은 이전의 버전에 포함되어 있던 것과 비교하고, 보다 액세스 가능하고 종합적인 사용자 경험이 향상하고 있습니다.
마지막으로 정리하면, 우리는 Windows 7 개발에서 필요 옵션을 중시했습니다. 필요 옵션 용무의 코어 구조의 개선이나, 스크린 키보드나 확대경 등 Windows 에 포함되는 도구의 강화로, 순조롭게 진전되었습니다. AccChecker 및 UIA Verify 도구에 의해, 응용 프로그램이 기존의 지원 도구나 Windows Automation API 를 기반으로 한 장래의 도구에 대해서 호환성 및 유효성 검사가 훨씬 간단해 졌습니다. Windows 기능이나 공급자 필요 옵션에 대한 우리의 대처는 사내의 몇 백 명이나 되는 엔지니어 덕분에, 한층 더 철저하고, 일관성 있게 통합되었습니다. Windows 7의 성과에 대해 우리는 자랑으로 생각합니다. 그리고, 장해가 있는 사용들이 스스로의 잠재 능력을 발휘하여, Windows에서 보다 즐거운 경험을 구현하는 도움이 되기를 바랍니다.
--Michael