다음을 통해 공유


목록 컨트롤 형식

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

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

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

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

일반적인 트리 구조

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

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

목록 컨트롤 형식(예: 목록 컨트롤)을 구현하는 컨트롤의 컨트롤 뷰는 다음으로 구성됩니다.

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

목록 컨트롤 형식(예: 목록 컨트롤)을 구현하는 컨트롤의 콘텐츠 뷰는 다음으로 구성됩니다.

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

목록 컨트롤에는 함께 그룹화되는 것 이외의 계층적 관계가 있는 항목이 없어야 합니다. 항목에 UI 자동화 트리에 자식이 있는 경우 목록 컨테이너는 트리 컨트롤 형식을 기반으로 해야 합니다.

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

관련 속성

다음 표에서는 값 또는 정의가 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 자동화 컨트롤 패턴 개요참조하세요.

컨트롤 패턴/패턴 속성 지원/값 노트
IGridProvider 따라 달라 집니다 항목별로 그리드 탐색을 사용할 수 있어야 하는 경우 Grid 컨트롤 패턴을 구현합니다.
IMultipleViewProvider 따라 달라 집니다 컨트롤이 컨테이너에 있는 항목의 여러 보기를 지원할 수 있는 경우 MultipleView 컨트롤 패턴을 구현합니다.
IScrollProvider 따라 달라 집니다 컨테이너의 항목을 스크롤할 수 있는 경우 Scroll 컨트롤 패턴을 구현합니다.
ISelectionProvider 따라 달라 집니다 컨트롤에서 선택을 지원하는 List 컨트롤 형식을 지원하는 경우 컨트롤에 포함된 항목 간에 선택 상태가 유지되는 경우 컨트롤에서 Selection 컨트롤 패턴을 구현해야 합니다. 컨트롤 내의 항목을 선택할 수 없는 경우 그룹 컨트롤 형식을 사용할 수 있습니다.
CanSelectMultiple 따라 달라 집니다 목록 컨트롤은 단일 또는 다중 선택 컨테이너일 수 있습니다.
IsSelectionRequired 따라 달라 집니다 목록 컨트롤이 항상 항목을 선택해야 하는 것은 아닙니다.
ITableProvider 결코 Table 컨트롤 패턴은 List 컨트롤 형식에 대해 지원되지 않습니다. 컨트롤이 이 컨트롤 패턴을 지원해야 하는 경우 컨트롤은 DataGrid 컨트롤 형식을 기반으로 해야 합니다.

필수 이벤트

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

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

개념

UI 자동화 컨트롤 형식 개요

UI 자동화 개요