다음을 통해 공유


목록 컨트롤 형식

이 항목에서는 목록 컨트롤 형식에 대한 Microsoft UI 자동화 지원에 대한 정보를 제공합니다.

목록 컨트롤 형식은 항목의 플랫 그룹 또는 그룹을 구성하는 방법을 제공하며 사용자가 해당 항목 중 하나 이상을 선택할 수 있도록 합니다. 목록 컨트롤 형식에는 포함할 수 있는 자식 요소의 형식에 대한 느슨한 제한이 있습니다. 따라서 UI 자동화 공급자가 선택 항목 컨테이너에 대해 잘 알려진 요소를 지원할 수 있습니다.

다음 섹션에서는 List 컨트롤 형식에 필요한 UI 자동화 트리 구조, 속성, 컨트롤 패턴 및 이벤트를 정의합니다. UI 자동화 요구 사항은 UI 프레임워크/플랫폼이 컨트롤 형식 및 컨트롤 패턴에 대한 UI 자동화 지원을 통합하는 모든 목록 컨트롤에 적용됩니다.

이 항목에는 다음과 같은 섹션이 포함되어 있습니다.

일반적인 트리 구조

다음 표에서는 목록 컨트롤과 관련된 UI 자동화 트리의 일반적인 컨트롤 및 콘텐츠 뷰를 보여 줍니다. 각 보기에 포함될 수 있는 항목에 대해 설명합니다. UI 자동화 트리에 대한 자세한 내용은 UI 자동화 트리 개요를 참조하세요.

컨트롤 뷰 콘텐츠 뷰
컨트롤에 해당하는 요소를 포함합니다. 보조 기술이 최종 사용자에게 의미 있는 가장 작은 정보 집합과 함께 작동하도록 트리에서 중복 정보를 제거합니다.
  • 목록
    • DataItem(0개 이상)
    • ListItem(0개 이상)
    • Group(0개 이상)
    • ScrollBar(0, 1 또는 2)
  • 목록
    • DataItem(0개 이상)
    • ListItem(0개 이상)
    • Group(0개 이상)

List 컨트롤 형식(예: 목록 컨트롤)을 구현하는 컨트롤의 컨트롤 뷰는 다음과 같이 구성되어 있습니다.

  • 목록 컨트롤 내의 항목이 0개 이상(항목은 ListItem 또는 DataItem 컨트롤 형식을 기반으로 할 수 있음)
  • 목록 컨트롤 내에서 0개 이상의 그룹 컨트롤
  • 0, 1 또는 2개의 스크롤 막대 컨트롤

List 컨트롤 형식(예: 목록 컨트롤)을 구현하는 컨트롤의 콘텐츠 뷰는 다음과 같이 구성되어 있습니다.

  • 목록 컨트롤 내의 항목이 0개 이상(항목은 ListItem 또는 DataItem 컨트롤 형식을 기반으로 할 수 있음)
  • 목록 컨트롤 내에서 0개 이상의 그룹

함께 그룹화된 항목 외에 계층 관계가 있는 항목은 목록 컨트롤 항목에 포함되지 않아야 합니다. 항목에 UI 자동화 트리에 자식이 있는 경우 목록 컨테이너는 트리 컨트롤 형식을 기반으로 해야 합니다.

목록 컨트롤 내에서 선택 가능한 항목은 목록 컨트롤의 UI 자동화 트리에 있는 하위 항목에서 사용할 수 있습니다. 목록 컨트롤 내의 모든 항목은 같은 선택 그룹에 속해야 합니다. 목록에서 선택 가능한 항목은 DataItem 대신 ListItem 컨트롤 형식으로 노출되어야 합니다.

관련 속성

다음 표에서는 값 또는 정의가 List 컨트롤 형식과 특히 관련된 UI 자동화 속성을 나열합니다. UI 자동화 속성에 대한 자세한 내용은 UI 자동화 요소에서 속성 검색을 참조하세요.

UI 자동화 속성 참고
UIA_AutomationIdPropertyId 메모를 참조하세요. 이 속성의 값은 UI 자동화 트리의 원시 뷰에 있는 모든 피어 요소에서 고유해야 합니다.
UIA_BoundingRectanglePropertyId 메모를 참조하세요. 전체 컨트롤이 포함된 가장 바깥쪽 사각형입니다.
UIA_ClickablePointPropertyId 메모를 참조하세요. 목록 컨트롤에 클릭 가능한 점(목록에 포커스를 두도록 클릭할 수 있는 점)이 있는 경우 해당 지점은 이 속성을 통해 노출되어야 합니다. UIA_IsOffscreenPropertyId 속성의 값이 TRUE이면 이 속성을 검색하려고 하면 UIA_E_NOCLICKABLEPOINT 오류가 발생합니다.
UIA_ControlTypePropertyId 목록
UIA_HelpTextPropertyId 메모를 참조하세요. 목록 컨트롤의 도움말 텍스트는 사용자에게 옵션 목록에서 선택하라는 요청이 표시되는 이유를 설명합니다. 예: "이 목록에서 항목을 선택하면 모니터의 디스플레이 해상도가 설정됩니다."
UIA_IsContentElementPropertyId TRUE 목록 컨트롤은 항상 UI 자동화 트리의 콘텐츠 보기에 포함됩니다.
UIA_IsControlElementPropertyId TRUE 목록 컨트롤은 항상 UI 자동화 트리의 컨트롤 보기에 포함됩니다.
UIA_IsKeyboardFocusablePropertyId 메모를 참조하세요. 컨트롤이 키보드 포커스를 받을 수 있으면 해당 컨트롤은 이 속성을 지원해야 합니다.
UIA_LabeledByPropertyId 메모를 참조하세요. 정적 텍스트 레이블이 있는 경우 이 속성은 해당 컨트롤에 대한 참조를 노출해야 합니다.
UIA_LocalizedControlTypePropertyId 메모를 참조하세요. List 컨트롤 형식에 해당하는 지역화된 문자열입니다. 기본값은 en-US 또는 영어(미국)의 경우 "list"입니다.
UIA_NamePropertyId 메모를 참조하세요. 목록 컨트롤의 Name 속성 값은 사용자가 선택하도록 요청하는 옵션 범주를 전달해야 합니다. 이 속성은 일반적으로 정적 텍스트 레이블에서 이름을 가져옵니다. 정적 텍스트 레이블이 없는 경우 애플리케이션 개발자는 Name 속성에 대한 값을 노출해야 합니다.
컨트롤이 다른 컨트롤의 하위 트리 내에 사용되는 경우에만 이 속성이 목록 컨트롤에 필요하지 않습니다.

필수 컨트롤 패턴 및 속성

다음 표에서는 모든 목록 컨트롤에서 지원하는 데 필요한 UI 자동화 컨트롤 패턴을 나열합니다. 컨트롤 패턴에 대한 자세한 내용은 UI Automation Control Patterns Overview를 참조하세요.

컨트롤 패턴/패턴 속성 지원/값 참고
IGridProvider 개체 항목별로 그리드 탐색을 사용할 수 있어야 하는 경우 그리드 컨트롤 패턴을 구현합니다.
IMultipleViewProvider 개체 컨트롤이 컨테이너에 있는 항목의 여러 보기를 지원할 수 있는 경우 MultipleView 컨트롤 패턴을 구현합니다.
IScrollProvider 개체 컨테이너의 항목을 스크롤할 수 있는 경우 스크롤 컨트롤 패턴을 구현합니다.
ISelectionProvider 개체 컨트롤이 선택을 지원하는 List 컨트롤 형식을 지원하는 경우 컨트롤에 포함된 항목 간에 선택 상태가 유지될 때 컨트롤은 선택 컨트롤 패턴을 구현해야 합니다. 컨트롤 내의 항목을 선택할 수 없는 경우 그룹 컨트롤 형식을 사용할 수 있습니다.
CanSelectMultiple 개체 목록 컨트롤은 단일 또는 다중 선택 컨테이너입니다.
IsSelectionRequired 개체 목록 컨트롤에서 항상 항목을 선택할 필요는 없습니다.
ITableProvider 안 함 테이블 컨트롤 패턴은 목록 컨트롤 형식에 대해 지원되지 않습니다. 컨트롤이 이 컨트롤 패턴을 지원해야 하는 경우 컨트롤은 DataGrid 컨트롤 형식을 기반으로 해야 합니다.

필요한 이벤트

다음 표에서는 컨트롤을 지원하는 데 필요한 UI 자동화 이벤트를 나열합니다. 이벤트에 대한 자세한 내용은 UI Automation Events Overview를 참조하세요.

UI 자동화 이벤트 참고
UIA_AutomationFocusChangedEventId
속성 변경 이벤트를 UIA_BoundingRectanglePropertyId.
속성 변경 이벤트를 UIA_IsEnabledPropertyId. 컨트롤이 IsEnabled 속성을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_IsOffscreenPropertyId. 컨트롤이 IsOffscreen 속성을 지원하는 경우 이 이벤트를 지원해야 합니다.
UIA_LayoutInvalidatedEventId 자식 항목의 레이아웃을 변경할 수 있는 경우 컨트롤이이 이벤트를 지원 해야 합니다.
속성 변경 이벤트를 UIA_MultipleViewCurrentViewPropertyId. 컨트롤이 MultipleView 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_ScrollHorizontallyScrollablePropertyId. 컨트롤이 스크롤 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_ScrollHorizontalScrollPercentPropertyId. 컨트롤이 스크롤 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_ScrollHorizontalViewSizePropertyId. 컨트롤이 스크롤 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_ScrollVerticalScrollPercentPropertyId. 컨트롤이 스크롤 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_ScrollVerticallyScrollablePropertyId. 컨트롤이 스크롤 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_ScrollVerticalViewSizePropertyId. 컨트롤이 스크롤 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
UIA_Selection_InvalidatedEventId 컨트롤이 선택 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
UIA_StructureChangedEventId

개념

UI 자동화 컨트롤 형식 개요

UI 자동화 개요