장애인 접근성 향상을 위한 애플리케이션 개발에 필요한 2007 Office Fluent User Interface의 Microsoft Active Accessibility 계층 다루기

장애인 접근성 향상을 위한 애플리케이션 개발에 필요한 2007 Office Fluent User Interface의 Microsoft Active Accessibility 계층 다루기

소개: 이 문서는 2007 Microsoft Office System에서 장애인에게 도움을 주는 응용 프로그램 개발에 필요한 여러 접근성 관련 구조, 옵션 및 기능을 소개합니다. (24 페이지)

Timothy Long, Microsoft Corporation

Frank Rice, Microsoft Corporation

2007 년 5 월

**대상 제품 :**Microsoft 2007 Office system

목차

  • 접근성 지원 기술과 Microsoft Office

  • 리본 MSAA 계층

  • 문맥과 로컬라이즈 제어

  • Ribbon 컨트롤의 KBShortcut 속성

  • 문맥 리본 탭

  • 같은 이름의 문맥 탭

  • 문맥 탭이 표시되는 경우 판별

  • Microsoft Office 버튼

  • 리본 스케일

  • 새로운 컨트롤과 변경된 컨트롤

  • SplitButton 컨트롤

  • ListView 컨트롤

  • 갤러리 컨트롤

  • 리본내 갤러리 컨트롤

  • 대화 상자 실행 컨트롤

  • 스핀 박스 컨트롤

  • 그룹 상자

  • 키보드 사용

  • 기타 문제

  • SmartArt 그래픽 작업

  • Word 2007 의 수식

  • Word 2007 개체 모델 변경

  • Active Accessibility 의 FAQ

  • 추가 정보

접근성 지원 기술과 Microsoft Office

장애가 있는 사용자가 Microsoft Office 응용 프로그램을 사용할 수 있도록, 다양한 접근성 지원 기술 어플리케이션을 이용할 수 있습니다. 접근성 지원 기술의 예는 확대경, 스크린 리더, 음성합성 및 음성인식 응용 프로그램이 있습니다.

접근성 지원 기술을 개발하는 경우에는 이러한 기술에 영향을 주는 2007 Microsoft Office의 다양한 변화를 인식해야 합니다. 2007 Office system 의 가장 큰 변화는 Microsoft Office Fluent 사용자 인터페이스 (UI)입니다.

Office Fluent UI 는 Microsoft Office 의 이전 버전 UI 요소, 즉 계층형 메뉴, 도구 막대, 대화상자 등의 요소를 리본, 갤러리, 퀵 엑세스 도구 막대 등이 새로운 UI 요소에 있습니다. Fluent UI 의 목표는 편리한 사용입니다. 즉, Office Fluent UI 를 사용하는 소프트웨어 응용 프로그램은 이 UI 를 사용하지 않는 응용 프로그램보다 학습이 용이하고, 사용하기 쉽고, 뛰어난 조작성을 구현합니다.

다만, 새로운 UI 패러다임(paradigm)에 대응하기 위한 많은 기초가 되는 변화에 의해, 접근성 지원 기술을 업데이트 해야 합니다. 이것은 접근성 지원 기술이 장애를 가지는 사용자가 Microsoft Office 응용 프로그램을 효율적 한편 간단하게 사용하는 것을 연속적으로 지원하기 위해서 입니다. 이 문서에서는 기본적인 변화와 어떻게 하면 접근성 지원 기술 어플리케이션이 새로운 Office Fluent 사용자 인터페이스와 제휴할 수 있는지 설명합니다.

리본 MSAA 계층

접근성 지원 기술 어플리케이션이 리본을 이동해야 하는 경우, 리본상의 UI 요소가 어떻게 레이아웃 되는지 알아 두면 좋습니다.  리본 사용자 인터페이스 요소는 COM 개체로서 Microsoft Active Accessibility (MSAA) 클라이언트에 공개됩니다. MSAA 계층에서 리본은 MSAA 를 개입시켜 탭 첨부 대화상자로서 나타내집니다. 리본의 각 탭은 ROLE_SYSTEM_PAGETAB 의 역할 값으로 이것은 탭 첨부 대화상자내의 탭 요소와 같은 형식입니다.

포커스가 리본 탭에 있는 경우, Tab 키를 누르면, 그 탭의 첫번째 컨트롤로 이동합니다. Tab 키를 계속 누르면, 탭의 나머지의 컨트롤을 이동합니다. 탭의 마지막의 컨트롤에 도달했을 경우, Tab 키를 누르면  리본 탭에서 멀어져, [Help] 버튼으로 이동하여, 이어서 Office 버튼으로 이동하여, QAT 컨트롤을 거쳐, 최종적으로는 리본 탭으로 돌아옵니다. 탭 첨부 대화상자도 이와 같이 동작합니다. 예를 들어, 전형적인 탭 첨부 대화상자로 Tab 키를 누르면, 액티브한 탭에서 탭의 각 컨트롤을 지나 [OK] 또는 [Cancel] 버튼에 도달합니다.

각 탭에서는 같은 기능을 가지는 컨트롤은 그룹 구성요소에 편성되어 Shift + ←또는 Shift + →를 누르는 것으로 그룹에서 그룹으로 이동할 수 있습니다. 다만, 탭 첨부 대화상자와는 달리, Ctrl + Tab 키를 사용하여  탭 사이를 이동할 수 없습니다.

Microsoft Office Word 2007 의 리본 MSAA 트리 구조는 다음과 같습니다.

리본 (루트 요소, ROLE_SYSTEM_PROPERTYPAGE)

  • 퀵 엑세스 도구 막대 (ROLE_SYSTEM_TOOLBAR 요소)

    • QAT 의 개별 컨트롤을 나타내는 요소
  • 사용자 정의의 도구 막대 (ROLE_SYSTEM_PUSHBUTTON 요소)

  • 리본 탭 (ROLE_SYSTEM_PAGETABLIST 요소)

    • 이름이 없는 ROLE_SYSTEM_CLIENT 요소

    • 표준 탭을 나타내는 ROLE_SYSTEM_PAGETAB 요소

    • 문맥 탭의 머리글의 ROLE_SYSTEM_GROUPING 요소

    • 문맥 탭을 나타내는 ROLE_SYSTEM_PAGETAB 요소

  • Microsoft Office Word Help (ROLE_SYSTEM_PUSHBUTTON 요소)

  • Office 버튼 (ROLE_SYSTEM_BUTTONDROPDOWNGRID 요소)

  • 아래쪽 리본 (ROLE_SYSTEM_PANE 요소)

    • 이름이 없는 ROLE_SYSTEM_CLIENT 요소

    • 리본의 액티브한 탭을 나타내는 ROLE_SYSTEM_PROPERTYPAGE 요소

    • 리본의 개별 그룹을 나타내는 ROLE_SYSTEM_TOOLBAR 요소

    • 그룹내의 개별 컨트롤을 나타내는 요소

Note메모 :

이 설명은 완전한 트리가 아닙니다. 설명에서는 리본에 관계가 있는 트리 부분만이 표시됩니다.

탭 첨부 대화상자의 구조와 같이 리본 탭의 ROLE_SYSTEM_PAGETAB 요소는 액티브한 리본 탭의 요소의 직접적인 부모가 아닙니다. 그 결과, ROLE_SYSTEM_PAGETABLIST 서브 트리는 아래쪽 리본의 형제가 됩니다.

그림 1. Accessible Explorer 로 표시한 리본 MSAA 트리

리본의 MSAA 트리

문맥과 로컬라이즈 제어

컨트롤의 UI 문맥을 결정하려면, 일반적인 방법으로서는 포커스 이벤트를 취득한 후, 포커스가 있는 요소의 IAccessible 을 취득하여, 부모 요소로 이동을 계속하여 정의된 accName ("Quick Access Toolbar" 나 "Ribbon Tabs" 등)를 가지는 요소를 찾습니다. 다만, MSAA 트리의 각 요소 accName 은 로컬라이즈되어, 이 방법은 영어 이외의 언어에는 적용되지 않습니다.

지역에 관계없이 MSAA 트리를 이동할 수 있도록 하기 위해), MSAA 트리의 키 요소에는 로컬라이즈되지 않은 accValue 가 있습니다 (일반적으로, 이러한 요소형에는 accValue 속성은 없습니다).이러한 값을 표 1 에 보여줍니다.

표 1. MSAA 트리의 키 요소

accRole accValue (로컬라이즈되지 않음) accName (로컬라이즈된 상태)

ROLE_SYSTEM_PROPERTYPAGE

Ribbon

리본

ROLE_SYSTEM_TOOLBAR

Quick Access Toolbar

퀵 엑세스 도구 막대

ROLE_SYSTEM_PAGETABLIST

Ribbon Tabs List

리본 탭

ROLE_SYSTEM_PANE

Lower Ribbon

아래쪽 리본

ROLE_SYSTEM_PROPERTYPAGE

Ribbon Tab

다름 ( 각 탭이 독자적인 이름을 가진다)

ROLE_SYSTEM_TOOLBAR

Group

다름 ( 각 그룹이 독자적인 이름을 가진다)

ROLE_SYSTEM_PROPERTYPAGE

Status Bar

상태 막대

Ribbon 컨트롤의 KBShortcut 속성

접근성 지원 기술 어플리케이션이 리본의 Ribbon 컨트롤의 KBShortcut 속성을 처리 해야 하는 경우는 이 속성의 형식 정보가 필요합니다. Ribbon 컨트롤의 KBShortcut 속성에는 다음이 있습니다.

  • 컨트롤의 Ctrl 키 시퀀스 (존재하는 경우)

  • 단락 기호로서의 세미콜론 (두 가지 종류가 모두 사용될 때 중간의 구분자로)

  • 컨트롤의 Alt 키 시퀀스 (존재하는 경우)

예를 들어, Word에서 텍스트를 굵은 글씨로 하는 KBShortcut 속성은 Ctrl + B 및 Alt, H, 1 입니다. Alt 키 시퀀스에는 사용자가 Esc 키를 눌러 취소 할 수 있는 것을 보여주기 위해 각 KeyTip 의 사이에는 쉼표가 포함되어 있습니다. 편리하게 콤마는 키 시퀀스를 받을 때 스크린 입력기 (Screen reader) 잠시 여유를  줄 수 있도록 합니다. (즉, 스크린 리더는 「A (일시정지) H (일시정지) 1」라고 합니다).

키 시퀀스에 복수 문자의 KeyTip 가 포함된 경우, 그것들은 KBShortcut 속성에서는 공간으로 구분되어 있습니다. 예를 들어, [Font Type] 박스의 KBShortcut 속성은 ALT, H, F F 입니다.

문맥 리본 탭

2007 Office system 의 기능의 상당수는 어떤 상황에서만 사용할 수 있습니다. 예를 들어, Word에서 표를 서식 설정 할 수 있는 것은 현재 선택항목에 표의 일부 (또는 모든 것)가 포함된 경우입니다. 사용자가 특정 기능을 필요로 하는 경우 및 그 기능을 숨길 필요가 있는 경우를 판단하는 것은 오랫동안 사용자 인터페이스 설계자의 과제였습니다.

리본은 문맥 탭, 즉 기능을 사용할 수 있을 때는 표시하고, 기능을 사용할 수 없을 때에는 표시되지 않는 탭을 사용하고, 이 문제를 해결합니다. 문맥 탭의 동작을 표시하려면, Word에서 표를 삽입합니다. 표가 선택 된 경우, 문맥 탭이 리본에 표시됩니다. 현재 선택항목에 표가 포함되어 있지 않으면, 탭은 표시되지 않게 됩니다.

같은 이름의 문맥 탭

화면상에 두 개의 문맥 탭 이름이 같은 경우, 접근성 지원 기술 어플리케이션은 그것들을 구별해야 하는 경우가 있습니다. 같은 이름의 2 개의 문맥 탭을 표시하려면, Word 2007 문서에 표를 삽입합니다.  그리고, 표에 SmartArt 그래픽을 삽입합니다. 이것으로 리본에는 4 개의 문맥 탭이 존재하여, 그 중의 두 개가  [Design] 라는 이름입니다. 탭은 그룹화 되고 있는 것에 주의해 주세요.   [SmartArt Tools] 라는 표제아래에 [Design] 탭과 [Format] 탭이 그룹화 되고, [Table Tools] 라는 표제아래에 [Design] 탭과 [Layout] 탭이 그룹화됩니다.

MSAA 트리 계층에서는 리본 탭은 accValue가 "Ribbon Tab List" 인 ROLE_SYSTEM_PAGETABLIST 요소의 자식 손자인 ROLE_SYSTEM_PAGETAB 요소로서 나타내집니다. 일반 리본 탭은 ROLE_SYSTEM_PAGETABLIST 요소의 직접적인 자식입니다. 문맥 탭은 ROLE_SYSTEM_GROUPING 요소의 자식으로, 이 요소는 ROLE_SYSTEM_PAGETABLIST 요소의 직접적인 자식입니다 (문맥 탭의 ROLE_SYSTEM_PAGETAB 요소는 ROLE_SYSTEM_PAGETABLIST 요소의 손자가 됩니다).

그 ROLE_SYSTEM_GROUPING 요소는 문맥 탭의 머리글을 나타내고, accName 은 문맥 탭에 대해서 화면상에 표시되는 텍스트입니다. 이 예에서는 MSAA 트리는 다음과 같습니다.

리본 탭 (ROLE_SYSTEM_PAGETABLIST,accValue 는 "Ribbon Tabs List")

  • SmartArt 도구 (ROLE_SYSTEM_GROUPING, 문맥 탭의 머리글)

    • 디자인 (ROLE_SYSTEM_PAGETAB, 문맥 탭)

    • 서식 (ROLE_SYSTEM_PAGETAB, 문맥 탭)

  • 표 도구 (ROLE_SYSTEM_GROUPING, 문맥 탭의 머리글)

    • 디자인 (ROLE_SYSTEM_PAGETAB, 문맥 탭)
  • 서식 (ROLE_SYSTEM_PAGETAB, 문맥 탭)

문맥 탭이 표시되는 경우 판별

문맥 탭이 나타나거나 사라지는 것을 판별하기 위해서, 접근성 지원 애플리케이션은 문맥 탭이 넘겨 주는 MSAA 이벤트에 주의를 기울여야 합니다. 슬로우되는 이러한 2 개의 이벤트는 EVENT_OBJECT_STATECHANGE 이벤트와 EVENT_OBJECT_SELECTION 이벤트입니다.

문맥 탭이 표시되는 경우, 문맥 탭이 선택되었는지 관계없이 EVENT_OBJECT_STATECHANGE 이벤트가 예외로 처리됩니다. 이러한 경우, 다음과 같습니다.

  • ROLE_SYSTEM_PAGETAB에 대해서EVENT_OBJECT_STATECHANGE 이벤트가 슬로우 된다.

  • ROLE_SYSTEM_PAGETAB 의 부모는 화면상에 표시되는 문맥 탭의 카테고리 라벨에 일치하는 accName 을 가지는 ROLE_SYSTEM_GROUPING 요소이다.

  • 그 ROLE_SYSTEM_GROUPING 요소의 부모는 ROLE_SYSTEM_CLIENT 요소로, 그 부모는 "Ribbon Tabs List" 의 로컬라이즈되지 않은 accValue 를 가지는 ROLE_SYSTEM_PAGETABLIST 요소이다.

  • 그 특정의 문맥 탭이 선택되었는지에 따라, ROLE_SYSTEM_PAGETAB 는 STATE_SYSTEM_SELECTED 인 경우와 그렇지 않은 경우가 있다.

문맥 탭이 선택되면 (표시되면 자동적으로 선택되는 경우를 포함), EVENT_OBJECT_SELECTION 이벤트가 예외로 처리됩니다. 이러한 경우, 다음과 같습니다.

  • ROLE_SYSTEM_PAGETAB에 대해서EVENT_OBJECT_SELECTION 이벤트가 슬로우 된다.

  • ROLE_SYSTEM_PAGETAB 는 포커스를 획득할 수 있지만, 포커스 되어 있지 않다 (일반적으로, 문서에는 포커스가 있다).

  • ROLE_SYSTEM_PAGETAB 의 부모는 화면상에 표시되는 문맥 탭의 카테고리 라벨에 일치하는 accName 을 가지는 ROLE_SYSTEM_GROUPING 요소이다.

  • 그 ROLE_SYSTEM_GROUPING 요소의 부모는 "Ribbon Tabs List" 의 로컬라이즈되어 있지 않은 accValue 을 가지는 ROLE_SYSTEM_PAGETABLIST 이다.

Microsoft Office 버튼

[File] 메뉴는 Microsoft Office 버튼이 되어 있습니다. accName 속성은 "Office Button"으로, accRole 속성은 ROLE_SYSTEM_BUTTONDROPDOWNGRID 입니다.

리본 스케일

리본의 사이즈가 변화했을 경우, 접근성 지원 기술 어플리케이션은 그 동작을 변경해야 하는 경우가 있습니다. 리본이 부속된 Office 응용 프로그램 윈도우의 사이즈가 작아졌을 경우, 리본은 모든 기능을 사용할 수 있도록, 리본 자체를 축소합니다. 필요에 따라서, 리본은 컨트롤의 그룹을 accName 속성이 그룹의 이름으로, 역할이 ROLE_SYSTEM_BUTTONDROPDOWNGRID 인, 단일 컨트롤에 접어둡니다. 컨트롤은 키보드에서 액세스 가능하고, 액티브하게 되면 그룹내의 컨트롤을 표시합니다.

그룹이 컨트롤에 축소되면, 컨트롤은 축소된 그룹의 액세스에 사용할 수 있는 Alt 키 시퀀스를 가집니다. 다만, Alt 키 시퀀스의 추가 문자는 축소된 그룹내의 컨트롤에 액세스하기 위한 옵션이 됩니다. 그 결과, 컨트롤의 원래 Alt 키 시퀀스는 사용자에 관계없이 기능하기 때문에, 시각 장애 사용자는 그룹이 축소된 것을 모릅니다.

예를 들어, Word에서는 [Font Type] 박스를 호출하는 Alt 키 시퀀스는 Alt, H, F F 입니다. 사용자가 Office 응용 프로그램 윈도우의 사이즈를 큰폭으로 줄였을 경우, [Font Type] 박스가 포함된 [Font] 그룹은 최종적으로 단일의 컨트롤에 졉어져 그 Alt 키 시퀀스는 Alt, H, Z F 가 됩니다. [Font Type] 박스를 액티브하게하는 경우, 축소된 그룹의 컨트롤이 포함된 Alt 키 시퀀스인 Alt, H, Z F, F F 또는 원래의 Alt 키 시퀀스인 Alt, H, F F 의 한쪽을 사용할 수 있습니다.

리본이 커지는 것을 방지하기 위해, 일부의 접근성 지원 기술 어플리케이션에서는 자동적으로 Office 응용 프로그램 윈도우를 최대화 해야 하는 경우가 있습니다. 다음의 Microsoft Visual Basic for Applications 코드를 사용하면, Office 응용 프로그램 윈도우를 최대화할 수 있습니다.

Application.WindowState = xlMaximized (Excel)
Application.WindowState = wdWindowStateMaximize (Word)
Application.WindowState = ppWindowMaximized (Powerpoint)

리본은 축소된 경우는 스케일을 실시하지 않습니다 (리본 축소의 자세한 내용은 「키보드 사용」의 「리본 축소」를 참조).이 경우, 사용자가 Office 응용 프로그램 윈도우의 사이즈를 작게 했을 경우, 리본에 액세스 하면, 리본은 일반 사이즈로 표시됩니다.

새로운 컨트롤과 변경된 컨트롤

Microsoft Office  2007 출시에서는 일부의 컨트롤은 업데이트 되고 일부는 새로워졌습니다. 이러한 컨트롤은 리본, 상태 막대, 일부의 작업창 및 응용 프로그램의 [Option] 대화상자를 포함한 몇가지 장소에서 사용됩니다.

콤보 상자

다음 정보는 콤보 상자에 관한 MSAA 의 문서에서 인용한 것입니다. 여기에 수록한 것은 기존에서 콤보 상자는 MSAA 의 사양에 따라서 않기 때문에 많은 스크린 리더는 사양에 준거한 콤보 상자의 적절한 읽기로 문제가 생기기 때문입니다.

Note메모 :

콤보 상자 목록이 표시 되지 않은 경우, 그것은 콤보 상자의 MSAA 트리의 일부에서는 없습니다. 콤보 상자 목록이 표시 된 경우에만, MSAA 트리의 일부가 됩니다. 이것은 MSAA 의 사양에서는 대처되지 않습니다. 이것은 콤보 상자와 드롭 다운 컨트롤의 양쪽 모두에 적합합니다.

표 2. Name 속성

콤보 상자의 부분 Name

콤보 상자 윈도우

라벨로 해서 사용되는 정적 텍스트 컨트롤

편집 컨트롤

라벨로 해서 사용되는 정적 텍스트 컨트롤

드롭 다운 화살표

드롭 다운 목록 상태에 따라 "Open" 또는 "Close"

목록 박스

관련된 라벨

목록 항목

목록 항목의 텍스트

표 3. Value 속성

콤보 상자의 부분 Value

콤보 상자 윈도우

현재 선택된 목록 항목의 텍스트

편집 컨트롤

현재 선택된 목록 항목의 텍스트

드롭 다운 화살표

없음

목록 박스

없음

목록 항목

없음

표 4. Role 속성

콤보 상자의 부분 Role

콤보 상자 윈도우

ROLE_SYSTEM_COMBOBOX

편집 컨트롤 (또는 정적 텍스트 컨트롤)

ROLE_SYSTEM_TEXT 또는 ROLE_SYSTEM_STATICTEXT

드롭 다운 화살표

ROLE_SYSTEM_PUSHBUTTON

목록 박스

ROLE_SYSTEM_LIST

목록 항목

ROLE_SYSTEM_LISTITEM

표 5. State 속성

콤보 상자의 부분 가능한 상태

콤보 상자 윈도우

STATE_SYSTEM_INVISIBLE | STATE_SYSTEM_UNAVAILABLE | STATE_SYSTEM_FOCUSED | STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_NORMAL

편집 컨트롤

STATE_SYSTEM_INVISIBLE | STATE_SYSTEM_UNAVAILABLE | STATE_SYSTEM_FOCUSED | STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_NORMAL

드롭 다운 화살표

0 (버튼이 표시되고 있고, 밀리지 않은 것을 의미한다) 또는 STATE_SYSTEM_PRESSED |

STATE_SYSTEM_INVISIBLE | STATE_SYSTEM_NORMAL

목록 박스

STATE_SYSTEM_INVISIBLE | STATE_SYSTEM_UNAVAILABLE | STATE_SYSTEM_FOCUSED | STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_FLOATING | STATE_SYSTEM_NORMAL

목록 항목

STATE_SYSTEM_INVISIBLE | STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_FOCUSED | STATE_SYSTEM_SELECTABLE | STATE_SYSTEM_SELECTED | STATE_SYSTEM_NORMAL

표 6. KBShortcut 속성

콤보 상자의 부분 KeyboardShortcut

콤보 상자 윈도우

관련된 라벨의 액세스 키

편집 컨트롤

없음

드롭 다운 화살표

Alt + ↓

목록 박스

없음

목록 항목

없음

표 7. DefAction 속성

콤보 상자의 부분 DefaultAction

콤보 상자 윈도우

없음

편집 컨트롤

없음

드롭 다운 화살표

드롭 다운 목록 상태에 따라 Open 또는 Close

목록 박스

없음

목록 항목

더블 클릭

SplitButton 컨트롤

2007 Office system 는 이전 버전의 Microsoft Office 보다 자주 SplitButton 컨트롤을 사용합니다. 2007 출시에서는 SplitButton 컨트롤은 메뉴상 및 리본상에 표시 가능합니다.

SplitButton 컨트롤은 2 개의 액션이 가능한 복합 컨트롤입니다. SplitButton 컨트롤에는 포커스를 받을 수 있는 버튼 요소와 포커스를 받을 수 없는 드롭 다운 버튼 요소가 포함되어 있습니다. 버튼 요소는 액티브하게 되면 직접적인 액션을 실행하지만, 드롭 다운 버튼은 액티브하게 되면 보다 많은 옵션이 부속되는 목록을 표시합니다.

버튼 요소는 액티브하게 되면, 항상 같은 기본값의 액션을 실행하는지, 드롭 다운 목록에서 선택된 최신 액션을 실행합니다. 후자의 경우, 실행되는 액션은 선택된 최신의 액션에 따라 변화합니다. 버튼 요소가 다양한 액션을 실행할 수 있는 경우, 버튼상의 아이콘을 업데이트하여 실행할 수 있는 액션을 보여줍니다. Word 2007에서는 [Font Color] 및 [Text Highlight Color] SplitButton 컨트롤은 아이콘이 업데이트하는 SplitButton 의 예로, [Bullets and Numbering] SplitButton 컨트롤은 아이콘이 업데이트하지 않는 SplitButton 의 예입니다.

액티브하게 되면, 드롭 다운 버튼 요소는 보다 많은 옵션이 포함된 목록을 표시합니다. 목록에는 목록 항목, 메뉴 항목, 플라이아웃 메뉴 또는 이것들 3 개의 임의의 편성이 포함된 경우가 있습니다. 메뉴상의 SplitButton 컨트롤의 경우, 드롭 다운 버튼 요소는 플라이아웃 메뉴를 표시하는 수평 화살표 부착의 버튼으로서 표시됩니다.

리본상의 SplitButton 컨트롤의 키보드 동작은 메뉴상의 SplitButton 컨트롤의 키보드 동작과는 다릅니다. 표 8 는 SplitButton 컨트롤의 키보드 동작의 세부 사항을 보여줍니다.

표 8. SplitButton 컨트롤의 키보드 동작

동작 리본의 SplitButton 컨트롤 메뉴의 SplitButton 컨트롤

버튼 요소만이 키보드포커스를 취득

True

True

Space 키

목록 드롭

목록 표시

Enter

목록 드롭

버튼을 누른다

F4

목록 드롭

목록 표시

Alt + ↓

목록 드롭

Office 버튼 메뉴의 SplitButton 컨트롤의 목록 표시/바로 가기 메뉴를 종료

→키 ( 오른쪽에서 왼쪽으로 쓰는 언어 경우는←키)

2 차원 포커스 탐색

목록 표시 (플라이아웃 메뉴를 표시)

SplitButton 컨트롤의 MSAA 아키텍처는 콤보 상자의 MSAA 아키텍처와 비슷합니다. 

SplitButton 컨트롤에는 버튼용의 ROLE_SYSTEM_SPLITBUTTON 요소, 드롭 다운 버튼용의 ROLE_SYSTEM_BUTTONDROPDOWN 요소 및 다른 두 개의 부모가 되는 ROLE_SYSTEM_GROUPING 요소 라는 3 개의 요소가 있습니다.

리본에는 Microsoft Word 의 [Insert] 탭의 Header 컨트롤 등, 목록 드롭하는 컨트롤이 포함됩니다. SplitButton 컨트롤의 드롭 다운 버튼 요소와 같이 목록 드롭하는 컨트롤은 ROLE_SYSTEM_BUTTONDROPDOWN 의 역할을 가집니다.

접근성 지원 기술 어플리케이션은 드롭 다운 요소의 부모를 참조하는 것으로, (단순 컨트롤) Header 컨트롤등의 컨트롤과(복합 컨트롤) SplitButton 컨트롤을 구별할 수 있습니다.

부모가 (ROLE_SYSTEM_TOOLBAR 의 역할과 로컬라이즈되지 않은 "Group" 의 accValue 를 가진다) 그룹명인 경우, 드롭 다운 요소는 단순한 컨트롤로, 그 이외의 경우, 부모는 복합 컨트롤의 컨테이너 요소입니다.

Word 의 SplitButton 컨트롤의 예에는 다음과 같습니다.

  • 리본의 컨트롤로서의 컨트롤.예를 들어, [Home] 탭, [Font Color], [Text Highlight Color], [Bullet] 및 [Numbering] 컨트롤은 SplitButton 입니다.

  • Microsoft Office 버튼의 플라이아웃 메뉴 항목으로서의 컨트롤.[Save As] 및 [Print] 메뉴옵션은 SplitButton 컨트롤입니다.

  • 바로 가기 메뉴의 플라이아웃 메뉴 항목으로서의 컨트롤 (Word 문서의 표면 영역에서 오른쪽 클릭).바로 가기 메뉴상의 [Bullets and Numbering] 옵션은 SplitButton 컨트롤입니다.

SplitButton 컨트롤의 MSAA 설계는 표 9 를 참조해 주세요.  

표 9. SplitButton 컨트롤의 MSAA 설계

이름 속성

accName

컨테이너 : 컨트롤 이름

SplitButton : 컨트롤 이름

DropButton :

  • Open (팝업이 표시 되지 않은 경우)

  • Close (팝업이 표시 된 경우)

Note메모 :
Office 메뉴와 바로 가기 메뉴의 SplitButton 컨트롤에서는 DropButton 를 클릭해도 플라이아웃 메뉴는 닫혀지지 않기 때문에 accName 은 항상 Open 으로 설정됩니다.

accValue

컨테이너 : 없음

SplitButton : 클릭 되었을 때에 적용되는 값. 예를 들어, 색의 생성 기본값 색.

DropButton : 없음

Note메모 :
accValue 는 컨테이너에는 반영되지 않습니다. SplitButton 컨트롤이 accValue 를 가지는 것은 클릭할 때에 SplitButton 컨트롤의 버튼 부분이 실시하는 동작을 나타내기 위해서 아이콘이 업데이트 되는 경우만입니다.

accRole

컨테이너 : ROLE_SYSTEM_GROUPING

SplitButton : ROLE_SYSTEM_SPLITBUTTON

DropButton : ROLE_SYSTEM_BUTTONDROPDOWN 또는 ROLE_SYSTEM_BUTTONDROPDOWNGRID

Note메모 :
사용되고 있는 규칙은 컨트롤이 2 차원 목록을 표시하는 경우, 컨트롤에는 ROLE_SYSTEM_BUTTONDROPDOWNGRID 에 동일한 역할이 있다, 라는 규칙입니다. 컨트롤에 ROLE_SYSTEM_BUTTONDROPDOWN 에 동일한 역할이 있는 경우, 컨트롤은 1 차원의 목록을 표시합니다.

accState

컨테이너 : 일반적

Note메모 :
ROLE_SYSTEM_BUTTONDROPDOWNGRID DropButton에서 드롭되는 목록은 2 차원이기 위해, 시각 장애 사용자는 각 아이템에 포커스를 진행하는 경우, Tab 키를 사용하여  목록을 이동할 필요가 있습니다 (이러한 목록은 Tab 키로 목록 위의 모든 아이템을 이동하도록 설계됩니다).상하의 화살표키를 사용하여  이러한 목록을 이동하면, 포커스를 2 차원적으로 이동시키기 위해, 목록안의 모든 요소를 이동할 수 없습니다. ROLE_SYSTEM_BUTTONDROPDOWN DropButton에서 드롭되는 목록은 1 차원이기 때문에 화살표 키를 사용하여  목록을 이동하면, 포커스는 각 아이템을 이동합니다.

SplitButton :

  • 누른다 (메뉴 컨트롤에서 ON에 스위치 된 경우)

  • ON이다 (메뉴 컨트롤에서 ON에 스위치 된 경우)

  • focusable

  • 포커스 되어 있다 (이미 포커스가 있는 경우)

DropButton : STATE_SYSTEM_HASPOPUP

accDescription

컨테이너 : 드롭 다운 버튼의 Super ToolTip 의 문자열을 포함한다 (존재하는 경우)

SplitButton : SplitButton 요소의 Super ToolTip 의 문자열을 포함한다 (존재하는 경우)

DropButton : 없음

accKBShortcut


컨테이너 :

  • Ribbon SplitButton 컨트롤의 Alt 가속기 키 시퀀스

  • Office 메뉴의 SplitButton 컨트롤에는 없음

  • 바로 가기 메뉴의 SplitButton 컨트롤에는 없음

SplitButton :

  • Ribbon SplitButton 컨트롤에는 없음

  • Office 메뉴의 SplitButton 컨트롤의 Alt 가속기 키 시퀀스

  • 바로 가기 메뉴의 SplitButton 컨트롤에는 Enter

DropButton :

  • Ribbon SplitButton 컨트롤의 Alt 가속기 키 시퀀스

  • Office 메뉴의 SplitButton 컨트롤의 Alt 가속기 키 시퀀스

  • 바로 가기 메뉴의 SplitButton 컨트롤의 문자 가속기 키 시퀀스

accDefaultAction


컨테이너 : 없음

SplitButton :

  • Ribbon 컨트롤을 누른다

  • 메뉴 컨트롤 실행한다

DropButton :

  • Open (팝업이 표시 되지 않은 경우)

  • Close (팝업이 표시 된 경우)

Note메모 :
Office 메뉴와 바로 가기 메뉴의 SplitButton 컨트롤에서는 DropButton 를 클릭해도 플라이아웃 메뉴는 닫혀지지 않기 때문에 accDefaultAction 은 항상 Open 으로 설정 됩니다.

ListView 컨트롤

ListView 컨트롤은 복수의 열에 있는 정보를 보고합니다. 복수열의 ListView 컨트롤의 예로서는 [Word Option] 대화 상자로 이동하여, [Add] 옵션을 선택하는 조작이 있습니다. 이 옵션에는 3 개의 열을 가지는 ListView 컨트롤이 포함됩니다.

새로운 ListView 컨트롤의 MSAA 트리는 다음과 같이 동작합니다.

  • accName 이 항목 전체를 나타내는 ROLE_SYSTEM_LISTITEM 에 의해, ListView 컨트롤의 각 목록 항목이 나타내집니다. ROLE_SYSTEM_LISTITEM 만을 복창하는 스크린 리더는 ListView 컨트롤의 가장 일반적인 종류인 단일열 ListView 컨트롤에 대응합니다.

  • 목록 항목에는 목록 보기의 각 열의 자식이 있습니다. 각각의 자식은 그 행, 열 내용을 나타내는 ROLE_SYSTEM_STATICTEXT 개체 또는 자식이 모여 그 행,  열 내용을 나타내는 ROLE_SYSTEM_GROUPING 요소입니다.

갤러리 컨트롤

2007 Office system 에는 갤러리로 불리는 새로운 종류의 컨트롤이 도입됩니다. 갤러리 컨트롤은 리본 전체로 광범위하게 사용되고 있고, 목록을 표시하는 버튼, 목록을 표시하는 Split Button 컨트롤 또는 복수의 선택사항을 공개하고, 모든 가능한 선택사항을 분명히 하기 위해서 목록을 표시하는 컨테이너 (리본내 갤러리라고도 불린다)로서 나타내집니다. 갤러리 컨트롤에 고유하게 표시되는 목록 내용입니다. 갤러리 목록은 다음 임의의 부분집합을 포함할 수 있습니다.

  • 목록 항목

  • 메뉴 항목

  • 범주 머리글

  • 플라이아웃 하위 메뉴

갤러리의 메뉴 항목과 플라이아웃 메뉴는 표준 메뉴 항목과 플라이아웃 메뉴와 같이 기능합니다. 다만, 갤러리의 목록 항목은 있는 점에 대해 표준 목록 항목과 다릅니다. 즉, 갤러리의 목록 항목은 목록 컨트롤의 직접적인 자식이 아닙니다. 그 대신에 갤러리의 목록 항목은 카테고리에 그룹화 됩니다. 카테고리는 목록 컨트롤의 직접적인 자식인 ROLE_SYSTEM_GROUPING 요소로서 나타내집니다. 목록 항목은 ROLE_SYSTEM_GROUPING 요소의 자식입니다. ROLE_SYSTEM_GROUPING 요소의 accName 은 범주 머리글에 대해서 표시되는 텍스트입니다.

갤러리 컨트롤 안의 목록 항목은 리본내의 다른 컨트롤과 거의 똑같이 기능합니다. 목록 항목, 부모 요소의 accName 을 참조하면, 목록 항목의 범주 머리글을 읽어낼 수 있습니다. 사용자가 갤러리 컨트롤을 통과할 때, 부모 요소의 accName이 변화하면, 사용자는 새로운 카테고리로 이동합니다.

Note메모 :

목록 항목은 모두 같은 카테고리내에 존재한다고 생각하기 때문에 갤러리 컨트롤에는 컨트롤 목록 항목의 범주 머리글이 포함되지 않는 것이 있습니다. Word 의 [Write] 탭의 [Text Highlight Color] Split Button 컨트롤은 이 예입니다. 이것과 같은 경우로, 갤러리 컨트롤의 목록 항목은 부모로서 ROLE_SYSTEM_GROUPING 요소를 가집니다. 다만, 그 ROLE_SYSTEM_GROUPING 요소의 accName 은 비어 있는 경우가 있습니다.

Note메모 :

갤러리 컨트롤은 일 차원의 목록과 이 차원의 목록의 두 가지 종류의 목록을 표시할 수도 있습니다. 이것은 목록의 모든 아이템을 이동하는데 어느 키를 사용할 수 있는지 보여주기 위해, 특히 시각 장애 사용자에서 중요한 구별입니다. 구체적으로는 목록이 1 차원인 경우, Tab 키,↑키 및↓키로 목록 안의 모든 아이템을 이동하지만, 목록이 2 차원인 경우, 목록 안의 모든 아이템을 이동하는 것은 Tab 키만입니다. 화살표 키를 사용하여  2 차원 목록을 이동할 수 있지만, 장소에 따라서는 특정의 아이템을 통과하는데←키와→키가 필요합니다. 화면을 확인할 수 없는 경우, 이 방법으로 이동하는 것이 어려운 경우가 있습니다.

Note메모 :

갤러리가 드롭하는 목록의 종류는 드롭 버튼의 accRole 에 의해 전달됩니다. 역할이 ROLE_SYSTEM_BUTTONDROPDOWN 인 경우, 갤러리 컨트롤은 1 차원의 목록을 표시합니다. 역할이 ROLE_SYSTEM_BUTTONDROPDOWNGRID 인 경우, 갤러리 컨트롤은 2 차원의 목록을 표시합니다.

리본내 갤러리 컨트롤

다른 종류의 컨트롤로서 "리본내" ** 갤러리가 있습니다. 리본내 갤러리 컨트롤의 예에는 Word 의 [Quick Style] 갤러리, Excel 의 [the Chart Quick Layout] 갤러리 및 [Chart Styles] 갤러리 및 Microsoft Office PowerPoint 2007 의 [Shape] 갤러리, [Theme] 갤러리 및 [Transition Scheme] 갤러리가 있습니다.

그림 2. 에 Word 의 [Quick Style] 갤러리의 screen shot를 보여줍니다.

그림 2. Word 2007 의 [Quick Style] 갤러리 컨트롤

Word 2007 의 퀵 스타일 갤러리 컨트롤

리본내 갤러리는 갤러리에서 사용할 수 있는 선택사항의 (모두가 아니다) 일부를 공개하는 컨테이너입니다. 공개된 이러한 선택사항은 마우스로 클릭할 수 있지만, 키보드에서 직접 액세스 할 수 없습니다. 또, 갤러리는 키보드에서 액세스 할 수 있는 모든 가능한 선택사항을 보이는 목록을 표시할 수도 있습니다. 키보드의 포커스는 리본내 갤러리의 드롭 다운 버튼에 직접 이동하기 때문에, 시각 장애 사용자에서 리본내 갤러리는 드롭 다운 목록을 표시하는 그 외의 갤러리와 같게 됩니다.

리본내 갤러리는 다음의 MSAA 구조를 가집니다.

  • 이하를 포함한 ROLE_SYSTEM_GROUPING 요소

    • 모든 사용 가능한 갤러리 옵션을 포함한 ROLE_SYSTEM_LIST 개체

    • 표시되는 윈도우의 아이템을 스크롤하기 위한 1 행 상 ROLE_SYSTEM_PUSHBUTTON

    • 표시되는 윈도우의 아이템을 스크롤하기 위한 1 행 하 ROLE_SYSTEM_PUSHBUTTON

    • 모든 사용 가능한 옵션 부착으로 목록 드롭하는 ROLE_SYSTEM_BUTTONDROPDOWNGRID

그림 3. 에 MSAA 트리의 screen shot를 보여줍니다.

그림 3. Word 의 [Quick Style] 갤러리의 MSAA 트리

Word 로의 퀵 스타일 갤러리의 MSAA 트리

대화 상자 실행 컨트롤

리본의 대화 상자 실행 컨트롤은 ROLE_SYSTEM_PUSHBUTTON 에 동일한 accRole 을 가지고 있습니다. 이 역할에만 기초를 두면, 스크린 리더는 컨트롤이 실제로 대화상자를 실행하는지 판단할 수 없습니다. 다만, accName 의 말미에 생략기호 (...)를 가지는 UI 요소가 대화상자를 실행하는 것이 Microsoft Windows 의 규칙입니다 (구체적으로는 accName 의 말미에 생략기호를 가지는 요소는 불완전한 액션이라고 보여져 일반적으로는 대화상자로 완결합니다).대화 상자의 실행 이외로도, 이 규칙은 메뉴 항목, 목록 항목 및 그 외의 요소에도 적용됩니다.

accName 속성의 일부로서 생략기호는 3 개의 독립한 피리어드 (3 문자) 또는 1 개의 Unicode 문자 (\u2026)를 나타낼 수 있습니다.

스핀 박스 컨트롤

스핀 박스 컨트롤은 다음의 요소에서 구성되는 복합 컨트롤입니다.

  • 값을 보관하는 편집 상자 (ROLE_SYSTEM_TEXT)

  • 스핀의 값을 증감시키는 상하의 버튼 (ROLE_SYSTEM_PUSHBUTTON)

  • 상 버튼과 하 버튼의 컨테이너 요소인, 스핀 박스로 불리기도 하는 상하의 컨트롤 (ROLE_SYSTEM_SPINBUTTON)

  • 리본의 스핀 박스 컨트롤의 경우, ROLE_SYSTEM_GROUPING 요소에는 ROLE_SYSTEM_TEXT 개체와 ROLE_SYSTEM_SPINBUTTON 개체가 포함되어 있습니다.

그룹 상자

리본의 그룹 상자는 상태 막대와 일부 작업창에 있어, 그룹 상자를 나타내는 ROLE_SYSTEM_GROUPING 요소가 항상 그룹 상자의 컨트롤의 부모가 되도록 변경되었습니다. 이전에는 그 OLE_SYSTEM_GROUPING 요소는 직접적으로는 상속 체인 (이것은 유효한 MSAA 이기도 하지만, 조작은 쉽지 않습니다) 내에는 존재하지 않았습니다.

ROLE_SYSTEM_GROUPING 개체는 거기에 포함된 컨트롤의 직접적인 부모가 아닌 경우가 있는 것에 주의해 주세요.   ROLE_SYSTEM_CLIENT 컨테이너 요소는 많은 경우, ROLE_SYSTEM_GROUPING 요소와 그룹 상자내의 컨트롤의 사이에 출현합니다 (다만 많은 접근성 지원 기술 어플리케이션은 MSAA 트리를 이동할 때에 ROLE_SYSTEM_CLIENT 개체를 무시합니다).그룹 상자의 MSAA 트리의 예는 다음과 같습니다.

그룹 상자의 ROLE_SYSTEM_GROUPING 요소 (accName 은 그룹 상자의 라벨에 동일하다)

  • 그룹이 꺾어 접어 가능한지 어떤지에 응한 ROLE_SYSTEM_OUTLINEBUTTON 또는 ROLE_SYSTEM_STATICTEXT 요소 (accName 은 그룹 상자의 머리글 텍스트로 설정되어 있다)

  • ROLE_SYSTEM_CLIENT 요소 (accName 은 그룹 상자의 머리글 텍스트이다)

    • 그룹 상자의 첫번째 컨트롤

    • 그룹 상자의 두 번째 이후의 컨트롤

결과적으로 accName 을 가지는 ROLE_SYSTEM_GROUPING 요소를 찾아 MSAA 트리를 위로 이동하는 것으로, 접근성 지원 기술 어플리케이션은 포커스가 이러한 그룹 상자내의 컨트롤로 이동한 시점을 쉽게 검색 할 수 있습니다.

키보드 사용

작업창 닫기

Microsoft Office 2003에서는 작업창을 닫기 위해서 키보드에서 포커스를 받을 수 있는 컨트롤은 없었습니다. 그 대신에 작업창은 Ctrl + F1 키를 누르면 닫혀졌습니다. 2007 Office system에서는 Ctrl + F1 키를 누르면 리본 닫기와 배포가 교체되어, 시력이 약한 사용자는 작업창을 닫으려다가 잘못하여 리본을 닫거나 여는 경우가 있습니다.

2007 Office system에서는 (예를 들어 F6 키를 사용하는 것으로써) 사용자는 작업창에 포커스를 이동하여, 계속 되어 Ctrl + Space 키를 눌러 [workpane options] 윈도우를 표시할 수 있습니다. 이 윈도우에는 작업창을 이동하여, 그 사이즈를 변경하여, 닫기 위한 커멘드가 포함됩니다.

리본내의 그룹 건너뛰기

많은 리본 탭에는 다수의 컨트롤이 포함됩니다. Word 의 [Home] 탭에는 40 을 넘는 컨트롤이 포함됩니다. 리본 탭은 2 차원이기 위해, 시력이 약한 사용자가 일관된 방법으로 모든 탭을 이동하는 가장 간단한 수단은 Tab 키를 누르는 방법입니다.

사용자가 리본내의 그룹을 빠르게 이동할 수 있도록, Shift + →키 또는 Shift + ←키의 한쪽을 누르는 것으로, 사용자는 있는 그룹에서 다른 그룹에 이동할 수 있습니다. 이와 같이하는 것으로, 포커스는 화살표 방향으로 다음의 그룹의 첫번째 컨트롤로 이동합니다.

Note메모 :

현시점에서, 편집이 가능한 컨트롤 (콤보 상자, 텍스트 박스, 스핀 등) 안에 포커스가 있는 경우, Shift + →키 또는 Shift + ←키를 눌러도 컨트롤에서 멀어지지 않습니다.

이 액션을 그룹명을 복창하는 스크린 리더와 함께 사용했을 경우, 시각 장애 사용자는 간단하게 리본내를 이동할 수 있습니다.

레거시 키보드 모드

2007 system 는 Office 2003 의 Alt 키 시퀀스를 지원합니다. 예를 들어, Word에서 Alt, O, F 를 누르면, [Font] 대화상자가 표시됩니다. 이 하위호환성 때문에 리본 일부 탭의 Alt 키 시퀀스는 별로 직감적이 아닙니다. 그 결과, Alt, I 가 Office 2003 의 [Insert] 메뉴에 예약되어 있기 때문에 리본의 [Insert] 탭은 Alt, N 를 사용합니다.

Alt 와 기존의 키를 모두 누른 다음은 Alt 키 시퀀스를 완료할지 Esc 키를 누를 때까지, 레거시 키보드 모드가 됩니다. 레거시 키보드 모드인 경우는 유효한 기존의 바로 가기와 Esc 키를 제외하고, 모든 키 입력은 무시됩니다.

정확한 Alt 키 시퀀스만이 지원됩니다. ALT, I 를 누르고 나서↓키를 누르면, ↓키는 무시됩니다.

사용자가 레거시 키보드 모드를 액티브하게 하면, 이전에 설명한 메시지 박스에 대해서 EVENT_OBJECT_FOCUS 이벤트가 발생합니다. 메시지 박스의 텍스트는 각 언어 대상으로 로컬라이즈됩니다. 또한 accValue가 (이 시나리오를 유효하게 하기 위해서 로컬라이즈되어 있지 않다) LEGACYKBDIALOG 에 동일한 ROLE_SYSTEM_DIALOG 요소에 대해서EVENT_OBJECT_FOCUS 이벤트를 받는 접근성 지원 기술 어플리케이션은 레거시 키보드 모드가 액티브하게 된 시점을 검색하여, 필요에 따라서 추가의 정보 또는 지원을 제공할 수 있습니다. 사용자는 새롭운 EVENT_OBJECT_FOCUS 이벤트가 발생할 때까지, 레거시 키보드 모드 안에 머뭅니다.

레거시 키보드 모드가 액티브한 것을 시각적으로 보이는 「Office 2003 의 바로 가기 키: <바로 가기 키>.Office 2003 의 메뉴 키 시퀀스의 사용을 계속합니다. 취소하려면 Esc 키를 눌러 주세요.」라고 전달하는 리본 중앙의 메시지 박스입니다. 레거시 키보드 모드는 Office 2003에서 이러한 키 시퀀스를 기억한 사용자만을 대상으로 합니다.

리본 축소

Office 2003에서는 Ctrl + F1 키를 누르면 작업창이 닫혀집니다. 2007 Office system에서는 Ctrl + F1 키를 누르면 리본의 축소와 배포를 바꿉니다 (2007 Office system 로 작업창 닫기 방법의 자세한 내용은 「작업창 닫기」를 참조해 주세요).

사용성의 테스트 중에 시각에 장애가 있는 일부 사용자는 작업창을 닫을 때에 잘못하여 리본을 축소했습니다. 리본이 축소된 경우, Alt 키 시퀀스는 여전히 사용할 수 있어 일반적으로 기능합니다. 사실, 화면을 확인할 수 없는 경우는 리본이 꺾어 접어지고 있을지를 모릅니다. 큰 차이는 Alt 키를 눌러 리본상에 포커스를 두었을 경우,↓키 또는 Tab 키를 눌러 리본내로 이동하여, 내부를 이동할 수 없는 점에 있습니다. 우선 Space 키를 눌러 아래쪽 리본을 표시하면, 그 내부를 이동할 수 있습니다. 그 때문에 모든 Alt 키 시퀀스를 기억하는 시력이 약한 사용자는 모든 것이 가정 대로에 동작하기 때문에 리본이 접어져 있을지를 모릅니다. 다만, 리본으로 특정 기능을 찾으려는 시력이 약한 사용자는 리본이 축소되고, 리본 내부를 이동할 수 있도록 Space 키를 눌러 탭을 표시해야 하는 일을 인식해야 합니다.

리본이 축소된 것을 검색 하기 위해서, 다음과 같이 접근성 지원 기술 어플리케이션은 다양한 일을 실행할 수 있습니다.

  • 리본이 축소된 경우, MSAA 트리아래쪽 리본 개체의 accState 는 STATE_SYSTEM_INVISIBLE 를 포함하기 위해, 사용 불가능하게 됩니다.

  • Ctrl + F1 키를 누르면, 아래쪽 리본 개체에 대해서 EVENT_OBJECT_STATECHANGE 이벤트가 발생합니다. 이 개체는 (로컬라이즈됨) Lower Ribbon 에 동일한 accName, (로컬라이즈되지 않음) Lower Ribbon 에 동일한 accValueROLE_SYSTEM_PANE 에 동일한 accRole 을 가지고 있습니다. 응용 프로그램은 사용할 수 없는 것을 의미하는 invisible설정이 있는지, accState 를 체크하면 됩니다.

  • 리본이 축소된 경우, 탭에는 STATE_SYSTEM_HASPOPUP 상태값이 포함됩니다. 이것은 리본이 배포 된 경우의 탭에는 해당하지 않습니다.

기타 문제

MSAA 를 사용하여  Super ToolTip 내용 취득

접근성 지원 기술 어플리케이션은 Super ToolTip 를 트랩할 필요는 없습니다. 이것은 Super ToolTip 가 연결된 요소의 accDescription 속성으로, 이 정보를 사용하기 위해서 입니다. 이것은 accDescription 속성의 원래 목적입니다. accName 속성은 컨트롤의 간결한 설명을 보관하고, accDescription 속성은 컨트롤보다 광범위하고 세부 사항설명을 보관합니다.

복합 컨트롤의 경우, 컨테이너 요소의 accDescription 속성은 Super ToolTip 의 설명을 보관 합니다. 이것에는 리본의 콤보 상자 및 드롭 다운 컨트롤, 분할 버튼, 갤러리 및 스핀이 포함됩니다.

PowerPoint 2007의 EVENT_OBJECT_FOCUS 이벤트 변화

Microsoft Office PowerPoint 2003에서는 accName 속성 값이 없는 개체에 대해서 EVENT_OBJECT_FOCUS 이벤트가 발생합니다. 그 결과, 스크린 리더는 포커스가 변경된 것을 판단할 수 있었지만, MSAA 트리를 사용하는 것으로 포커스가 어디에 있는지 판단할 수 없었습니다.

이러한 개체는 업데이트 되어 의미가 있는 로컬라이즈된 accName 값을 포함합니다.  이러한 개체는 다음의 특성에 의해 알 수 있습니다.

  • 역할 =ROLE_SYSTEM_CLIENT

  • 윈도우 클래스 =paneClassDC

다음의 표에 이러한 개체 위에서 EVENT_OBJECT_FOCUS 이벤트를 발생시키는 PowerPoint 의 윈도우를 보여줍니다.

표 10. PowerPoint 의 요소

슬라이드

슬라이드 목록

마스터 미리 보기

슬라이드 마스터

제목 마스터

발표자 도구 슬라이드

노트

슬라이드 쇼

발표자 도구 노트

배포 백서 마스터

슬라이드 노트

발표자 도구 미리 보기

노트 마스터

인쇄 미리 보기

   

아웃라인

미리 보기

   

SmartArt 그래픽 작업

2007 Office system에서는 시각 장애 사용자가 SmartArt 그래픽에 액세스 할 수 있습니다. 사용자는 Microsoft Office Word 2007, Microsoft Office Excel 2007, Microsoft Office PowerPoint 2007 및 Microsoft Office Outlook 2007 에 있는 리본의 [Insert] 탭에서 SmartArt 그래픽을 삽입할 수 있습니다.

[Choose a SmartArt Graphic] 대화상자

사용자가 삽입하는 SmartArt 그래픽의 종류를 선택하는 장소는 [Choose a SmartArt Graphic] 대화상자입니다. 이 대화상자는 다음과 같습니다.

  • [All] 카테고리가 선택된 경우 (기본값 설정), 선택할 수 있는 레이아웃은 카테고리에 그룹화 됩니다. 그림 4 의 screen shot에서는 범주 머리글 [List] 이 표시 됩니다. 이러한 범주 머리글은 포커스를 받을 수 없지만, MSAA 트리에서 ROLE_SYSTEM_GROUPING 요소로서 나타내집니다 (구체적으로는 포커스가 있는 요소의 부모는 ROLE_SYSTEM_GROUPING 요소로, 그 ROLE_SYSTEM_GROUPING 요소에 accName이 있는 경우, 그accName이 범주 머리글입니다).이것은 범주 머리글이 다른 갤러리에서 나타내지는 방식과 같습니다.

  • Tab 키를 사용하고, 카테고리 목록에서 개별 레이아웃 목록에  [OK] 및 [Cancel] 버튼으로 이동합니다. 그 결과, 그 외의 갤러리와 달리, Tab 키에서는 목록 안의 개별 레이아웃을 이동하지 않습니다. 그 대신에 현재 행의 마지막에 도달했을 경우,→키 및←키로 다음의 행에 되풀이합니다. 그 때문에→키 및←키를 사용하면, 목록 안의 개별 레이아웃 모두로 이동할 수 있습니다.

  • 각 레이아웃에는 그래픽을 세부 사항에 설명하는 단락이 있습니다. 외관에서는 단락은 대화상자의 우측으로 표시되어 키 포커스를 받을 수 없습니다. 다만, 스크린 리더에 의해서 복창할 수 있도록, 그 설명은 개별 레이아웃의 accDescription 속성으로 사용할 수 있습니다.

그림 4. [Choose a SmartArt Graphic] 대화상자

[SmartArt 그래픽의 선택] 다이아로그복스

SmartArt 의 생성 환경

사용자가 SmartArt 그래픽을 선택한 후, 그래픽은 삽입되어 선택된 상태가 됩니다 (이것은 Excel 로의 그래프의 동작을 닮아 있습니다).이 생성 환경은 좌측의 텍스트윈도우와 우측의 실제의 그래픽에서 구성됩니다 (아라비아어등 오른쪽에서 왼쪽으로 쓰는 언어에서는 좌우 반대로 됩니다).텍스트윈도우는 트리뷰에서  (화살표 키, Enter 키, 또는 Tab 키를 사용하는 것으로) 사용자는 그래픽 아이템을 이동, 승격 또는 격하 및 추가할 수 있습니다. 노드가 트리뷰에 추가하거나 트리뷰에서 삭제되면, 대응하는 도형 또는 조목별로 나누어 쓴 글이 그래픽에 추가되거나 그래픽에서 삭제됩니다.

노드는 특별한 특성을 가질 수도 있습니다. 예를 들어, 노드는 표지되지 않거나 어시스턴트 노드로서 기능하거나 또는 그 양쪽 모두가 가능합니다. 비표시의 노드의 예를 참조하려면, 벤도 형도표를 생성하여, 7 를 넘는 노드를 생성합니다. 7 번째의 노드보다 후의 모든 노드는 비표시 노드가 되어, 옆에 붉은 X 가 붙습니다. 어시스턴트 노드의 예를 참조하려면, 조직도를 생성합니다. 2 번째의 노드가 어시스턴트하여, 고유 아이콘이 있습니다. 비표시 노드의 accName 속성에는 사용자가 입력한 텍스트 포함되어**–hidden이 추가 됩니다. 어시스턴트 노드의 accName 속성에는 사용자가 입력한 텍스트가 포함되어–assistant가 추가 됩니다. 비표시로, 어시스턴트 노드의 기능도 있는 노드에는 사용자가 입력한 텍스트가 포함되어–assistant, hidden**이 추가 됩니다.

사용자는 Ctrl + Shift + F2 키를 누르는 것으로, 텍스트윈도우에서 SmartArt 그래픽의 대응하는 도형에 포커스를 이동시킬 수 있습니다. Ctrl + Shift + F2 키를 눌러 대응하는 장소에 포커스를 두고 나서 입력하는 것으로, 도형 또는 노드에 텍스트를 입력할 수 있습니다. 입력을 완료하면, Ctrl + Shift + F2 키를 다시 누르고, 포커스를 텍스트윈도우에 되돌립니다. 도형 용무의 텍스트도 텍스트윈도우에 입력할 수 있습니다. 다만, 텍스트윈도우는 노드의 내용을 편집 가능한 텍스트로서는 공개하지 않습니다. SmartArt 그래픽을 구성하는 도형은 Office Art 도형이기 위해, 개체 모델을 개입시켜 액세스 해야 합니다. 포커스가 도형으로 이동한 다음은 도형의 모든 특성을 조작할 수 있습니다.

또, 포커스가 텍스트윈도우 안에 있는 경우, Ctrl + Shift + F1 키를 누르면, SmartArt 그래픽의 사용법을 세부 사항에 설명하는 도움말이 표시됩니다.

그림 5. SmartArt 의 생성 환경

SmartArt 생성 환경

그림 6. 비표시 노드가 부속되는 SmartArt 레이아웃

비표시 노드를 수반하는 SmartArt 레이아웃

그림 7. 어시스턴트 노드가 부속되는 SmartArt 레이아웃

어시스턴트 노드를 가지는 SmartArt 레이아웃

Word 2007 의 수식

Word 2007에서는 사용자는 Alt + = 키를 누르는 것으로 수식을 삽입할 수 있습니다. 수식은 OLE 개체 대신 되었기 때문에 접근성 지원 기술의 공급업체는 응용 프로그램을 업데이트 해야 하는 경우가 있습니다.

Word 2007에서는 문서에서 굵은 글씨의 온/오프를 바꿀수 있도록, 수식의 삽입 또는 편집은 모드가 됩니다. 다음의  Visual Basic 구문은 키보드로의 조작중에 수식이 입력되었는지를 체크합니다.

Selection.OMaths.Count

이것은 현재의 선택항목에 수식이 포함되지 않은 경우는 값0을 돌려주어, 현재의 선택항목에 수식이 포함되어 있는 경우는 정의 정수를 돌려줍니다.

Word 2007 개체 모델 변경

Word 2003 개체 모델에게는 선택항목이 커서에 꺾어 접어져 그 개체 모델이 불려 갔을 경우, 개체 모델이 불려 간 시점에서, 커서의 선택항목에 적용되었던 문자 속성이 올바르고 저장 및 복원되지 않는다는 문제가 있습니다. 그 결과, Word 2003 은 개체 모델이 커서의 문자 속성을 부정확하게 보고하는 상태가 될 가능성이 있습니다. 예를 들어, 개체 모델은 실제는 그렇지 않은 경우에 굵은 글씨의 속성이 유효하다고 보고할 가능성이 있습니다.

이 문제에 대해서는 2 개의 해결책이 있습니다. 다음에 보여줍니다.

  • 레지스트리 키 :HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Word\Options\DontResetInsertionPointProperties:DWORD = 1 을 설정합니다. 이것에 의해, 응용 프로그램 세션 사이는 해결책이 유효하게 됩니다.  두가지 방법 가운데, 이 방법은 추천할 수 없습니다.

  • Word 2007 개체 모델을 사용하여, Application.DontResetInsertionPointProperties 를 True 로 설정하고 일시적으로 수정을 유효하게 합니다. 정보 요청이 완료하면, 설정을 False 에 되돌립니다. 이 변경은 반드시 필요한 경우에만 실행해 주세요.  이 설정은 Word 를 닫은 시점에서 저장 되지 않는 것에 주의해 주세요. 속성이 올바르게 무효가 되는 경우는 문제가 아닙니다. 다음  코드에 이 방법을 사용한 매크로를 보여줍니다.

    Sub Macro1()
        ' This sample demonstrates how to toggle the bold/italic/underline
        ' buttons by an irrelevant operation. Move the cursor to some 
        ' white space,click the bold, italic or underline button and execute 
        ' this macro. The buttons revert to the style of the preceding 
        ' character.
        Dim aRange As Range
        Dim aPageSetup As PageSetup
        Dim aUnderline As WdUnderline
    
        ' Set the solution.
        Application.DontResetInsertionPointProperties = True
    
        Set aRange = Selection.Range
        aRange.Collapse (wdCollapseStart)
        Bold = aRange.Bold
        Italic = aRange.Italic
        aUnderline = aRange.Underline
        MsgBox "Bold = " & Bold & " Italic = " & Italic & _
                " Underline = " & aUnderline
        Set aPageSetup = aRange.PageSetup
    
        aRange.Bold = Bold
        aRange.Italic = Italic
        aRange.Underline = aUnderline
    
        ' Reset the solution.
        Application.DontResetInsertionPointProperties 
    

접근성 지원 기술 어플리케이션 용무의 레지스트리 키

2007 Office system 에는 Word 2007 및 Outlook 2007 의 문서 본문에서 기존 버전의 접근성 지원 기술 어플리케이션을 동작할 수 있도록 하는 2 개의 레지스트리 키가 포함되어 있습니다. Word 의 화면의 드로잉 방법의 변경에 의해, 일부의 접근성 지원 기술 어플리케이션은 Word 2007 또는 Outlook 2007에서는 동작하지 않습니다 (Word 2007 을 전자 메일 편집기로서 사용하는 경우 등).다음의 레지스트리 키가 이러한 응용 프로그램의 문제를 수정하는 경우가 있습니다.

전자 메일 레지스트리 키의 커서

전자 메일 메세지를 열었을 경우에 메시지 본문이 포커스를 받아, 커서가 표시되도록 이 레지스트리 키는 Outlook 를 변경합니다. 전자 메일 메세지는 여전히 읽기 전용으로서 설정 됩니다. 다만, 전자 메일의 본문 안에서 삽입 포인트를 이동시켜, 선택을 실행 가능합니다. 모든 표준 키보드 탐색 키는 계속해 동작하여, 전자 메일 메세지는 개체 모델을 개입시켜 액세스 가능합니다. 이것에 의해, 시각 장애 사용자는 메시지가 Word 문서인 것 같이 Outlook 전자 메일 메세지를 조작할 수 있습니다.

또, 이 레지스트리 키는 Word 2007와 Outlook 2007 선택항목의 하이라이트 색을 Office 2003에서 사용되는 선택항목의 하이라이트 색에 바꾸고, ClearType 도 선택 해제합니다. 레지스트리 키 설정은 다음과 같습니다.

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common]

"ScreenReaderPresent"=DWORD:00000001

Word에서 오프 스크린 버퍼링 무효화

Word 2007 은 Office 2003 과는 다른 방법으로 화면을 드로잉 합니다. Word 2007 은 오프 스크린 버퍼를 사용하여, 화면에 직접 드로잉 하지 않습니다. 그 결과, 화면을 "스크랩" ** 하는 특정의 방식을 사용하여  선택항목을 판단하는 접근성 지원 기술 어플리케이션은 올바르게 동작하지 않는 경우가 있습니다. 다음  레지스트리 키를 사용하면, 응용 프로그램은 오프 스크린 버퍼링을 무효로 하고, Word 2007 을 이전의 동작으로 되돌릴 수 있습니다.

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Word\Options]

"WordAlternateDisplayMethodForScreenReaders" = DWORD:00000001

이 레지스트리 키 설정 하나의 부작용으로서는 Word 의 깜빡임이 많아져, 시각 장애가 있는 일부 사용자에는 화면이 보기 어려워지는 경우가 있습니다. 이 레지스트리 키 변경은 추천할 수 없습니다.

Active Accessibility 의 FAQ

Q: 응용 프로그램이 목록 항목 또는 메뉴 항목의 EVENT_OBJECT_FOCUS 이벤트를 받았습니다. 포커스는 갤러리내에 있다고 생각됩니다. 포커스가 있는 목록 항목의 카테고리의 이름을 판별하는 방법은.

A: 갤러리내의 목록 항목은 몇 번이나 카테고리에 그룹화 됩니다. 외관에서는 범주 머리글은 포커스를 취할 수 없는 푸른 기가 산 회색의 그림자가 있는 배경 첨부 라벨과 같이 보입니다. 목록 항목의 EVENT_OBJECT_FOCUS 이벤트를 처리하는 경우에는 그 목록 항목의 부모에게 액세스 합니다. 비이 있지 않은 accName 을 가지는 ROLE_SYSTEM_GROUPING 요소가 부모인 경우, accName 카테고리 이름입니다. ROLE_SYSTEM_GROUPING 요소가 존재하지만, 그 ROLE_SYSTEM_GROUPING 요소의 accName이 비어 있는 경우, 카테고리 라벨은 표시되지 않습니다.

목록의 목록 항목은 복수의 카테고리에 그룹화 된 경우가 있지만, 그 목록 항목의 새로운 ROLE_SYSTEM_GROUPING 요소는 accNames을 가지고 있지 않은 것에 주의해 주세요.  이 경우, 카테고리 라벨은 표시되지 않습니다. 다만, 이름이 없는 카테고리에는 시각상의 분리를 볼 수 있기 때문에 A 카테고리에서 다른 카테고리에 포커스가 건너는 경우, 접근성 지원 기술 도구는 여전히, 사용자가 새로운 카테고리에 들어간 것을 사용자에 통지해야 하는 경우가 있습니다.

Q: Office 2007 의 배색 테마를 변경하는 방법은.

A: [Control Panel] 을 엽니다. [Accessibility Options] 을 클릭하고, [Display] 을 클릭하고, [Use High Contrast] 옵션을 선택합니다. 이것으로 2007 Office system 는 Windows 테마 배색을 사용합니다.

Q: 프로그램으로 ClearType 를 선택 해제하는 방법은.

A: Office 2007 은 ClearType 를 지원합니다. ClearType 가 기본값으로 유효한 Windows Vista 운영 체제에서는 Office 2007 은 운영 체제의 설정을 사용합니다. ClearType 가 기본값으로 무효가 되어 있는 Windows XP 운영 체제에서는 Microsoft Office 는 ClearType 에 관한 운영 체제의 설정을 무시하고 항상 ClearType 를 유효하게 합니다.

Windows XP 상에서 동작하는 2007 Office system 의 ClearType 의 설정은 수동 또는 프로그램으로 변경할 수 있습니다. 수동으로 설정을 무효로 하려면, [Option] 대화 상자의 [Default] 탭을 사용합니다. 프로그램으로 설정을 무효로 하려면, Word 2007에서 Application.Options.AlwaysUseClearType 을 False 로 설정하거나, Excel 2007에서Application.AlwaysUseClearType 을 False 로 설정합니다. 이 설정은 모든 Microsoft Office 응용 프로그램에 영향을 주는 것에 주의해 주세요.   1 개의 응용 프로그램으로 설정을 변경하면, 모든 응용 프로그램에 영향을 줍니다.

Q: 실시간 프리뷰는 어떠한 기능입니까. 또, 프로그램으로 그것을 무효로 하는 방법은.

A: 실시간 프리뷰는 새로운 기능으로, 문서의 영역의 선택항목을 현재 포커스가 있는 서식의 변경을 적용하고 있는 것 같이 표시합니다. 예를 들어, Word 에서 「The quick brown fox」라고 입력하고, 단어 「quick」을 선택합니다. [Font Size] 대화상자의 옵션을 클릭 하면, 선택한 단어가 업데이트 되어 현재 선택한 폰트사이즈를 적용했는지 같이 표시됩니다. 독자적인 응용 프로그램을 개발할 때에 고려해야 할 점에는 다음이 있습니다.

  • 텍스트의 미리 보기할 때에는 텍스트는 선택항목의 하이라이트 색 없이 표시됩니다.

  • 응용 프로그램이 문서의 영역에서 개체를 표시하는 경우, 텍스트의 미리 보기는 표시된 개체의 위치가 올바르지 않은 경우가 있습니다. 프리뷰된 텍스트가 변화할 때에 개체가 동적으로 위치를 업데이트 하지 않는 경우, 이 상황이 발생하는 경우가 있습니다.

  • PowerPoint 2007 및 Word 2007에서는 선택항목의 미리 보기시에는 개체 모델은 업데이트 되지 않습니다. Excel 2007에서는 선택항목 미리보기할때 개체 모델이 업데이트 됩니다.

  • 실시간 프리뷰는 응용 프로그램의 [Option] 대화 상자로 수동으로 무효로 할 수 있습니다.

Office 응용 프로그램의 실행 때에 응용 프로그램은 Windows 의 SPI_GETUIEFFECTS 시스템 설정을 조사합니다. 이 설정이 무효인 경우, 실시간 프리뷰 ( 및 애니메이션)도 무효가 됩니다. 이 설정은 운영 체제 전체가 많은 측면으로 영향을 줄 가능성이 있습니다. 프로그램으로 실시간 프리뷰를 무효로 하는 것보다 정확한 방법으로서는 Word 2007에서Application.Options.EnableLivePreview를 False 로 설정하거나, Excel 2007에서 Application.EnableLivePreview를 False 로 설정합니다.

추가 정보

이 문서에서 설명되고 있는 토픽의 자세한 내용은 다음의 페이지를 참조해 주세요.