Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Inti Microsoft UI Automation dapat mengambil semua properti Aksesibilitas Aktif Microsoft untuk objek yang dapat diakses yang diekspos oleh server melalui antarmukaIAccessible. Saat menerapkan IAccessibleEx, Anda hanya harus mengekspos aspek fungsionalitas UI yang tidak dapat diekspos melalui properti Aksesibilitas Aktif Microsoft yang ada. Topik ini mengidentifikasi properti Automation UI dan pola kontrol yang mewakili fungsionalitas UI yang tidak memiliki mitra dalam Aksesibilitas Aktif Microsoft—mereka adalah properti dan pola kontrol yang dapat Anda ekspos dalam implementasi IAccessibleEx.
Topik ini berisi bagian berikut:
Properti
Properti Automasi UI berikut ini tidak tumpang tindih dengan fungsionalitas Aksesibilitas Aktif Microsoft. Mereka dapat digunakan dalam implementasiIAccessibleEx:
- AriaProperties
- AriaRole
- AutomationId
- ClassName
- ClickablePoint
- PengontrolUntuk
- Budaya
- DescribedBy
- FlowsTo
- FrameworkId
- IsContentElement
- IsControlElement
- IsDataValidForForm
- IsRequiredForForm
- ItemStatus
- ItemType
- LabeledBy
- LocalizedControlType
- Orientasi
Meskipun properti Automasi UI AcceleratorKey dan AccessKey tumpang tindih dengan properti AccKeyboardShortcut Microsoft Active Accessibility, Anda masih dapat menggunakannya dalam implementasiIAccessibleExuntuk kontrol yang memiliki kunci akses dan akselerator. Demikian pula, properti ControlType UI Automation tumpang tindih dengan properti Microsoft Active Accessibility accRole, tetapi Anda masih dapat menggunakannya dalam implementasi IAccessibleEx untuk menentukan peran yang lebih spesifik untuk kontrol.
Karena properti elemen Automation UI berikut sudah dicakup oleh properti Aksesibilitas Aktif Microsoft, tidak perlu menggunakannya dalam implementasiIAccessibleEx.
| Properti Automasi UI | Microsoft Active Accessibility Equivalent |
|---|---|
| BoundingRectangle | accLocation |
| HasKeyboardFocus | accState, STATE_SYSTEM_FOCUSED |
| IsEnabled | accState, STATE_SYSTEM_UNAVAILABLE |
| IsKeyboardFocusable | accState, STATE_SYSTEM_FOCUSABLE |
| IsPassword | accState, STATE_SYSTEM_PROTECTED |
| Teks Bantuan | accHelp |
| Nama | accName |
| NativeWindowHandle | WindowFromAccessibleObject |
| IsOffscreen | accState, STATE_SYSTEM_INVISIBLE/STATE_SYSTEM_OFFSCREEN |
| ProcessId | Disediakan oleh inti Automation UI |
Untuk properti Automasi UI yang tidak didukung, implementasi metode IRawElementProviderSimple::GetPropertyValue harus mengatur parameter pRetVal ke VT_EMPTY, dan mengembalikan S_OK. Mengembalikan UIA_E_NOTSUPPORTED dapat menyebabkan Proksi MSAA-ke-UIA menghapus pemetaan default untuk properti yang sesuai.
Pola Kontrol
Pola kontrol Automation UI berikut tidak tumpang tindih dengan fungsionalitas Aksesibilitas Aktif Microsoft. Mereka dapat digunakan dalam implementasiIAccessibleEx:
- Dok
- ExpandCollapse
- Grid
- GridItem
- MultipleView
- RangeValue
- Gulir
- ScrollItem
- SynchronizedInput
- Meja
- TableItem
- Mengubah
Untuk pola kontrol RangeValue dan Transformasi, beberapa metode tumpang tindih antara pola kontrol Automation UI dan metode Aksesibilitas Aktif Microsoft. Dalam kasus ini, keduanya harus diimplementasikan. Misalnya, metode IAccessible::get_accValue dan IAccessible::p ut_accValue harus diimplementasikan, sebagaimana mestinya Automation UIIRangeValueProvider::Value dan metode IRangeValueProvider::SetValue. Secara internal, implementasi dapat berbagi kode untuk ini. Persyaratan untuk mengimplementasikan kedua set ini menghindari implementasi parsial antarmuka pola sambil menjaga antarmuka IAccessible dapat digunakan oleh klien Aksesibilitas Aktif Microsoft yang ada.
Pola kontrol Automation UI berikut tidak diperlukan ketika kontrol memiliki salah satu peran yang diuraikan di bawah ini; jika tidak, mereka harus didukung secara eksplisit jika relevan.
| Pola Kontrol Automasi UI | Peran Aksesibilitas Aktif Microsoft |
|---|---|
| InvokePattern | ROLE_SYSTEM_PUSHBUTTON, ROLE_SYSTEM_MENUITEM, ROLE_SYSTEM_BUTTONDROPDOWN, ROLE_SYSTEM_SPLITBUTTON, dan peran lain di mana nilai properti accDefaultAction tidak NULL. |
| SelectionItemPattern | ROLE_SYSTEM_LISTITEM, ROLE_SYSTEM_RADIOBUTTON |
| SelectionPattern | ROLE_SYSTEM_LIST |
| TogglePattern | ROLE_SYSTEM_CHECKBUTTON |
| ValuePattern | ROLE_SYSTEM_TEXT (ketika bukan baca-saja), ROLE_SYSTEM_PROGRESSBAR, ROLE_SYSTEM_COMBOBOX, dan peran lain ketika nilai properti accValue tidak NULL. |
| WindowPattern | Didukung secara otomatis pada Microsoft Win32HWND tingkat atas. |
WinEvents untuk Properti Automasi UI Mengubah Peristiwa
Selain peristiwa yang ditentukan untukIAccessible, pengidentifikasi peristiwa berikut juga didefinisikan dan dapat digunakan dengan implementasiIAccessibleExkarena properti mengubah peristiwa untuk properti Automation UI yang sesuai. Ini menggunakan mekanisme yang sama dengan peristiwa yang ditentukan untuk IAccessible. Untuk informasi selengkapnya, lihat WinEvents.
| ID WinEvent untuk Implementasi IAccessibleEx | Id WinEvent terkait dari Aksesibilitas Aktif Microsoft |
|---|---|
| UIA_AriaPropertiesPropertyId | Tidak |
| UIA_AriaRolePropertyId | Tidak |
| UIA_ControllerForPropertyId | Tidak |
| UIA_DescribedByPropertyId | Tidak |
| UIA_ExpandCollapseExpandCollapseStatePropertyId | EVENT_OBJECT_STATECHANGE |
| UIA_FlowsToPropertyId | Tidak |
| UIA_InputDiscardedEventId | Tidak |
| UIA_InputReachedOtherElementEventId | Tidak |
| UIA_InputReachedTargetEventId | Tidak |
| UIA_IsDataValidForFormPropertyId | Tidak |
| UIA_IsEnabledPropertyId | EVENT_OBJECT_STATECHANGE |
| UIA_ItemStatusPropertyId | Tidak |
| UIA_MultipleViewCurrentViewPropertyId | Tidak |
| UIA_ScrollHorizontallyScrollablePropertyId | Tidak |
| UIA_ScrollHorizontalScrollPercentPropertyId | EVENT_OBJECT_CONTENTSCROLLED |
| UIA_ScrollHorizontalViewSizePropertyId | Tidak |
| UIA_ScrollVerticallyScrollablePropertyId | Tidak |
| UIA_ScrollVerticalScrollPercentPropertyId | EVENT_OBJECT_CONTENTSCROLLED |
| UIA_ScrollVerticalViewSizePropertyId | Tidak |
| UIA_ToggleToggleStatePropertyId | EVENT_OBJECT_STATECHANGE |
Untuk peristiwa di atas yang memiliki nilai EVENT_OBJECT_ yang tercantum setelahnya, dan implementasiIAccessibleExharus mengaktifkan peristiwa ini selain peristiwa yang diubah yang tercantum. Ini memungkinkan IAccessibleEx kode klien yang ada untuk terus bekerja, sambil menyampaikan informasi peristiwa yang lebih terperinci kepada klien yang tertarik.
Topik terkait