Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga / Notatka
Ta dokumentacja jest przeznaczona dla deweloperów programu .NET Framework, którzy chcą używać zarządzanych klas automatyzacji interfejsu użytkownika zdefiniowanych w przestrzeni nazw System.Windows.Automation. Aby uzyskać najnowsze informacje na temat automatyzacji interfejsu użytkownika, zobacz Windows Automation API: Automatyzacja interfejsu użytkownika.
Microsoft Active Accessibility to wcześniejsze rozwiązanie do udostępniania aplikacji. Microsoft UI Automation to nowy model ułatwień dostępu dla systemu Microsoft Windows i ma na celu zaspokojenie potrzeb produktów technologii pomocniczych i narzędzi do zautomatyzowanego testowania. Automatyzacja interfejsu użytkownika oferuje wiele ulepszeń dotyczących aktywnych ułatwień dostępu.
W tym temacie opisano główne funkcje automatyzacji interfejsu użytkownika i wyjaśniono, jak te funkcje różnią się od aktywnych ułatwień dostępu.
Języki programowania
Aktywne ułatwienia dostępu są oparte na modelu obiektów składników (COM) z obsługą podwójnych interfejsów i dlatego programowalne w języku C/C++, Microsoft Visual Basic 6.0 i językach skryptów. Automatyzacja interfejsu użytkownika (w tym biblioteka dostawcy po stronie klienta dla kontrolek standardowych) jest napisana w kodzie zarządzanym, a aplikacje klienckie automatyzacji interfejsu użytkownika są najłatwiej programowane przy użyciu języka C# lub Visual Basic .NET. Dostawcy automatyzacji interfejsu użytkownika, którzy są implementacjami interfejsu, mogą być pisani w kodzie zarządzanym lub w języku C/C++.
Obsługa w programie Windows Presentation Foundation
Windows Presentation Foundation (WPF) to nowy model tworzenia interfejsów użytkownika. Elementy WPF nie zawierają natywnej obsługi aktywnych ułatwień dostępu; Obsługują one jednak automatyzację interfejsu użytkownika, która obejmuje obsługę mostkowania dla klientów z aktywnymi ułatwieniami dostępu. Tylko klienci napisani specjalnie dla UI Automation mogą w pełni korzystać z funkcji ułatwień dostępu WPF, takich jak bogate wsparcie dla tekstu.
Serwery i klienci
W Aktywnych ułatwieniach dostępu serwery i klienci komunikują się bezpośrednio, głównie za pośrednictwem implementacji serwera IAccessible
.
W usłudze Automatyzacja interfejsu użytkownika podstawowa usługa leży między serwerem (nazywanym dostawcą) a klientem. Podstawowa usługa wykonuje wywołania interfejsów implementowanych przez dostawców i udostępnia dodatkowe usługi, takie jak generowanie unikatowych identyfikatorów środowiska uruchomieniowego dla elementów. Aplikacje klienckie używają funkcji biblioteki do wywoływania usługi automatyzacji interfejsu użytkownika.
Dostawcy automatyzacji interfejsu użytkownika mogą udostępniać informacje klientom z aktywnymi ułatwieniami dostępu, a serwery z aktywnymi ułatwieniami dostępu mogą udostępniać informacje aplikacjom klienckim automatyzacji interfejsu użytkownika. Jednak ze względu na to, że aktywne ułatwienia dostępu nie uwidaczniają tak dużej ilości informacji, jak automatyzacja interfejsu użytkownika, te dwa modele nie są w pełni zgodne.
Elementy interfejsu użytkownika
Aktywna dostępność przedstawia elementy interfejsu użytkownika jako interfejs lub identyfikator elementu podrzędnego IAccessible
. Trudno jest porównać dwa IAccessible
wskaźniki, aby ustalić, czy odwołują się do tego samego elementu.
W automatyzacji interfejsu użytkownika każdy element jest reprezentowany jako AutomationElement obiekt. Porównanie odbywa się przy użyciu operatora równości lub Equals metody, z których oba porównują unikatowe identyfikatory środowiska uruchomieniowego elementów.
Widoki drzewa i nawigacja
Elementy interfejsu użytkownika na ekranie można postrzegać jako strukturę drzewa z pulpitem głównym, oknami aplikacji jako bezpośrednimi elementami podrzędnymi i elementami w aplikacjach jako elementami podrzędnymi.
W obszarze Aktywne ułatwienia dostępu wiele elementów automatyzacji, które są nieistotne dla użytkowników końcowych, są widoczne w drzewie. Aplikacje klienckie muszą przyjrzeć się wszystkim elementom, aby określić, które z nich mają znaczenie.
Aplikacje klienckie automatyzacji interfejsu użytkownika widzą interfejs użytkownika za pośrednictwem filtrowanego widoku. Widok zawiera tylko interesujące elementy: te, które dają informacje użytkownikowi lub umożliwiają interakcję. Wstępnie zdefiniowane widoki tylko dla elementów sterujących i tylko dla elementów zawartości są dostępne; ponadto aplikacje mogą definiować widoki niestandardowe. Automatyzacja interfejsu użytkownika upraszcza zadanie opisywania interfejsu użytkownika dla użytkownika i pomagania użytkownikowi w interakcji z aplikacją.
Nawigacja między elementami w Active Accessibility jest albo przestrzenna (na przykład przejście do elementu znajdującego się po lewej stronie ekranu), logiczna (na przykład przejście do następnego elementu menu lub do następnego elementu w kolejności tabulatora w oknie dialogowym) lub hierarchiczna (na przykład przeniesienie pierwszego elementu potomnego w kontenerze lub z elementu podrzędnego do elementu nadrzędnego). Hierarchiczna nawigacja jest skomplikowana przez fakt, że elementy podrzędne nie zawsze są obiektami, które implementują IAccessible
.
W usłudze Automatyzacja interfejsu użytkownika wszystkie elementy interfejsu użytkownika są AutomationElement obiektami obsługującymi te same podstawowe funkcje. (Z punktu widzenia dostawcy są to obiekty, które implementują interfejs dziedziczony z IRawElementProviderSimple.) Nawigacja jest głównie hierarchiczna: od rodziców do dzieci i od jednego rodzeństwa do następnego. (Nawigacja między węzłami ma logiczny aspekt, ponieważ może odpowiadać kolejności tabulacji). Możesz przechodzić z dowolnego punktu początkowego, korzystając z dowolnego filtrowanego widoku drzewa przy użyciu klasy TreeWalker. Można również przejść do określonych elementów podrzędnych lub elementów potomnych przy użyciu znaczników FindFirst i FindAll. Na przykład, bardzo łatwo jest pobrać wszystkie elementy w oknie dialogowym, które obsługują określony wzorzec kontrolki.
Nawigacja w Automatyzacji UI jest bardziej spójna niż w Active Accessibility. Niektóre elementy, takie jak listy rozwijane i okna podręczne, pojawiają się dwa razy w drzewie Active Accessibility, co może prowadzić do nieoczekiwanych rezultatów podczas nawigacji. W rzeczywistości nie można poprawnie zaimplementować Active Accessibility dla kontrolki rebar. Automatyzacja interfejsu użytkownika umożliwia reparenting i repozycję, dzięki czemu element można umieścić w dowolnym miejscu w drzewie pomimo hierarchii nałożonej przez własność okien.
Role i typy kontrolek
Program Active Accessibility używa właściwości accRole
(IAccessible::get_actRole
), aby uzyskać opis roli elementu w interfejsie użytkownika, na przykład ROLE_SYSTEM_SLIDER lub ROLE_SYSTEM_MENUITEM. Rola elementu jest główną wskazówką dla jego dostępnych funkcji. Interakcja z kontrolką jest osiągana przy użyciu stałych metod, takich jak IAccessible::accSelect
i IAccessible::accDoDefaultAction
. Interakcja między aplikacją kliencka a interfejsem użytkownika jest ograniczona do tego, co można zrobić za pośrednictwem usługi IAccessible
.
Natomiast automatyzacja interfejsu użytkownika w dużej mierze rozdziela typ kontrolki elementu (określony przez właściwość ControlType) od jego oczekiwanej funkcjonalności. Funkcjonalność jest określana przez wzorce sterowania obsługiwane przez dostawcę za pośrednictwem implementacji wyspecjalizowanych interfejsów. Wzorce sterowania można połączyć w celu opisania pełnego zestawu funkcji obsługiwanych przez określony element interfejsu użytkownika. Niektórzy dostawcy muszą obsługiwać określony wzorzec kontrolnego; na przykład dostawca pola wyboru musi obsługiwać wzorzec kontrolki typu Przełączanie. Inni dostawcy są zobowiązani do obsługi co najmniej jednego zestawu wzorców kontroli; na przykład przycisk musi obsługiwać przełącznik lub wywołanie. Nadal inni nie obsługują żadnych wzorców kontroli w ogóle; na przykład okienko, którego nie można przenosić, zmieniać rozmiaru ani zadokować, nie ma żadnych wzorców sterujących.
Automatyzacja interfejsu użytkownika obsługuje kontrolki niestandardowe, które są identyfikowane przez właściwość Custom i można je opisać za pomocą właściwości LocalizedControlTypeProperty.
W poniższej tabeli przedstawiono odpowiadanie ról Active Accessibility do typów kontrolek automatyzacji interfejsu użytkownika.
Aktywna rola ułatwień dostępu | Typ kontrolki automatyzacji interfejsu użytkownika |
---|---|
Przycisk systemowy | Przycisk |
ROLA_SYSTEM_KLIENT | Kalendarz |
ELEMENT_KONTROLI_BOX_ZAZNACZENIA_SYSTEMOWEGO | Pole wyboru |
ROLA_SYSTEMOWA_KOMBOBOX | Pole kombi |
ROLA_SYSTEMU_KLIENT | Na zamówienie |
ROLA_SYSTEMOWA_LISTA | Siatka danych |
ROLE_SYSTEM_LISTITEM | Element danych |
ROLA_SYSTEMU_DOKUMENTU | Dokument |
ROLE_SYSTEM_TEXT | Edytuj |
ROLA_SYSTEMOWA_GRUPOWANIE | Grupa |
ROLA_SYSTEMU_LISTA | Nagłówek |
ROL_SYSTEMOWY_HEADER_KOLUMN | Element nagłówka |
ROLA_SYSTEMOWEGO_ODNOŚNIKA | Hiperłącze |
ROLA_SYSTEMOWA_GRAFICZNA | Obraz |
LISTA_SYSTEMOWA_ROLI | Lista |
Element listy systemu | Element listy |
ROLE_SYSTEM_MENUPOPUP | Menu |
ROLE_SYSTEM_MENUBAR | Pasek menu |
ROLE_SYSTEM_MENUITEM | Pozycja menu |
ROLE_SYSTEM_PANE | Panel |
Pasek postępu systemu | Pasek postępu |
ROLA_SYSTEM_PRZYCISK_RADIOWY | Przycisk radiowy |
ROLE_SYSTEM_SCROLLBAR | Pasek przewijania |
ROLA_SYSTEMOWA_SEPARATOR | Rozdzielacz |
ROLA_SYSTEMU_SUWAK | Suwak |
ROLA_SYSTEM_PRZYCISK_OBROTOWY | Okrągły wskaźnik przetwarzania |
PRZYCISK_ROZWIEDLACZ_SYSTEMOWY | Przycisk Podziel |
ROLE_SYSTEM_STATUSBAR | Pasek stanu |
ROLA_SYSTEMOWA_LISTAZAKŁADEKSTRONY | Zakładka |
ROLA_SYSTEMOWA_ZAKŁADKA | Zakładka |
ROLA_SYSTEM_TABELA | Tabela |
ROLAD_SYSTEM_TEXTSTATYCZNY | Tekst |
INFORMATOR_SYSTEMOWY | Kciuk |
ROLA_SYSTEMOWY_PASEK_TYTUŁOWY | Pasek tytułowy |
PASEK NARZĘDZI SYSTEMU | Pasek narzędzi |
ROLA_SYSTEMOWEGO_BALONIKA | Podpowiedź |
Rola systemu: zarys | Drzewo |
ROLA_SYSTEMOWA_ZARYS_ELEMENT | Element drzewa |
ROLA_SYSTEM_OKNO | Okno |
Aby uzyskać więcej informacji na temat różnych typów kontrolek, zobacz Typy kontrolek automatyzacji interfejsu użytkownika.
Stany i właściwości
W obszarze Aktywne ułatwienia dostępu elementy obsługują wspólny zestaw właściwości, a niektóre właściwości (takie jak accState
) muszą opisywać bardzo różne elementy, w zależności od roli elementu. Serwery muszą implementować wszystkie metody IAccessible
, które zwracają właściwość, nawet te, które nie są istotne dla elementu.
Automatyzacja interfejsu użytkownika definiuje wiele innych właściwości, z których niektóre odpowiadają stanom w obszarze Aktywne ułatwienia dostępu. Niektóre są wspólne dla wszystkich elementów, ale inne są specyficzne dla typów kontrolek i wzorców kontrolek. Właściwości są rozróżniane przez unikatowe identyfikatory, a większość właściwości można pobrać przy użyciu jednej metody GetCurrentPropertyValue lub GetCachedPropertyValue. Wiele właściwości można również łatwo pobrać za pomocą dostępu do właściwości Current i Cached.
Dostawca automatyzacji interfejsu użytkownika nie musi implementować nieistotnych właściwości, ale może po prostu zwrócić null
wartość dla dowolnych właściwości, które nie obsługuje. Ponadto usługa podstawowa automatyzacji interfejsu użytkownika może uzyskać niektóre właściwości od domyślnego dostawcy okien i są one połączone z właściwościami jawnie zaimplementowanymi przez dostawcę.
Oprócz obsługi wielu innych właściwości usługa Automatyzacja interfejsu użytkownika zapewnia lepszą wydajność, umożliwiając pobieranie wielu właściwości za pomocą pojedynczego wywołania między procesami.
W poniższej tabeli przedstawiono korespondencję między właściwościami w dwóch modelach.
Dostęp do właściwości Aktywne ułatwienia dostępu | Identyfikator właściwości automatyzacji interfejsu użytkownika | Uwagi |
---|---|---|
get_accKeyboardShortcut |
AccessKeyProperty lub AcceleratorKeyProperty |
AccessKeyProperty ma pierwszeństwo, jeśli oba są obecne. |
get_accName |
NameProperty | |
get_accRole |
ControlTypeProperty | Zobacz poprzednią tabelę, aby uzyskać mapowanie ról na typy kontrolek. |
get_accValue |
ValuePattern.ValueProperty RangeValuePattern.ValueProperty |
Prawidłowe tylko dla typów kontrolek, które obsługują ValuePattern lub RangeValuePattern. Wartości RangeValue są znormalizowane do 0–100, aby były zgodne z działaniem technologii MSAA. Elementy wartości używają ciągu. |
get_accHelp |
HelpTextProperty | |
accLocation |
BoundingRectangleProperty | |
get_accDescription |
Nie jest obsługiwane w automatyzacji komponentów interfejsu użytkownika |
accDescription nie miała wyraźnej specyfikacji w MSAA, co spowodowało, że dostawcy umieszczali różne informacje w tym polu. |
get_accHelpTopic |
Automatyzacja interfejsu użytkownika nie jest obsługiwana |
W poniższej tabeli przedstawiono, które właściwości automatyzacji interfejsu użytkownika odpowiadają stałym stanom stanu aktywnej dostępności.
Stan aktywnej ułatwień dostępu | Właściwość automatyzacji interfejsu użytkownika | Wyzwala zmiany stanu? |
---|---|---|
STATE_SYSTEM_CHECKED | Pole wyboru, ToggleStateProperty Dla przycisku radiowego, IsSelectedProperty |
Y |
AWARIA_SYSTEMU_ZAPAŚĆ | ExpandCollapseState = Collapsed | Y |
STAN_SYSTEMU_ROZSZERZONY | ExpandCollapseState = Expanded lub PartiallyExpanded | Y |
Stan_systemu_ogniskowalny | IsKeyboardFocusableProperty | N |
STAN_SYSTEMU_SKUPIONY | HasKeyboardFocusProperty | N |
STAN_SYSTEMU_MA_WYSKAKUJĄCE_OKNO | ExpandCollapsePattern dla elementów menu | N |
STAN_SYSTEMU_NIEWIDOCZNY | IsOffscreenProperty = True i GetClickablePoint powoduje NoClickablePointException | N |
SYSTEM_PAŃSTWOWY_POŁĄCZONY | ControlTypeProperty = Hyperlink |
N |
STAN_SYSTEMU_MIESZANY | ToggleState = Indeterminate | N |
STATE_SYSTEM_PRZESUWALNY | CanMoveProperty | N |
STATE_SYSTEM_MULTISELECTABLE | CanSelectMultipleProperty | N |
Stan systemu poza ekranem | IsOffscreenProperty = Prawda | N |
STAN_SYSTEMU_OCHRONIONY | IsPasswordProperty | N |
SYSTEM_TYLKO_DO_ODCZYTU | RangeValuePattern.IsReadOnlyProperty i ValuePattern.IsReadOnlyProperty | N |
STATE_SYSTEM_SELECTABLE | SelectionItemPattern jest obsługiwane | N |
STAN_SYSTEMU_WYBRANY | IsSelectedProperty | N |
STAN_SYSTEMOWY_ROZMIAROWY | CanResize | N |
STAN_SYSTEMU_NIEDOSTĘPNY | IsEnabledProperty | Y |
Następujące stany nie zostały zaimplementowane przez większość aktywnych serwerów kontroli ułatwień dostępu lub nie mają odpowiednika w automatyzacji interfejsu użytkownika.
Stan aktywnej ułatwień dostępu | Uwagi |
---|---|
STATE_SYSTEM_BUSY | Niedostępne w automatyzacji UI |
DOMYŚLNE_USTAWIENIE_SYSTEMU | Niedostępne w automatyzacji UI |
STAN_SYSTEMU_ANIMOWANY | Niedostępne w automatyzacji UI |
STATE_SYSTEM_EXTSELECTABLE | Nie jest szeroko zaimplementowane przez serwery Aktywnej dostępności. |
Stan_systemu_marquee | Rzadko implementowane przez serwery Active Accessibility |
stan samoprzemawiania systemu | Nie jest szeroko stosowane przez serwery Active Accessibility |
PRZEBYTOSYSTEM_STAN | Niedostępne w automatyzacji UI. |
STATE_SYSTEM_ALERT_HIGH | Jest słabo wdrożone przez serwery Active Accessibility. |
STATE_SYSTEM_ALERT_MEDIUM | Niezbyt szeroko zaimplementowane przez serwery Active Accessibility |
STAN_SYSTEMU_ALERT_NISKI | Nie jest szeroko zaimplementowane przez serwery Active Accessibility |
STAN_SYSTEMU_PŁYWAJĄCY | Nie jest powszechnie implementowane przez serwery Active Accessibility |
STATE_SYSTEM_HOTTRACKED | Niedostępne w automatyzacji UI |
STAN_SYSTEMU_WCIŚNIĘTY | Niedostępne w automatyzacji UI |
Aby uzyskać pełną listę identyfikatorów właściwości automatyzacji interfejsu użytkownika, zobacz Omówienie właściwości automatyzacji interfejsu użytkownika.
Zdarzenia
Mechanizm zdarzeń w automatyzacji interfejsu użytkownika, w przeciwieństwie do tego w obszarze Aktywne ułatwienia dostępu, nie polega na routingu zdarzeń systemu Windows (który jest ściśle powiązany z uchwytami okien) i nie wymaga, aby aplikacja kliencka skonfigurowała punkty zaczepienia. Subskrypcje zdarzeń można dostosować nie tylko do konkretnych zdarzeń, ale także do określonych elementów drzewa. Dostawcy mogą również dostroić ich zbieranie zdarzeń, śledząc, jakie zdarzenia są nasłuchiwane.
Klientom łatwiej jest również odebrać elementy, które zgłaszają zdarzenia, ponieważ są one przekazywane bezpośrednio do wywołania zwrotnego zdarzenia. Właściwości elementu są automatycznie wczytywane z wyprzedzeniem, jeśli żądanie cache'u było aktywne w momencie, gdy klient zarejestrował się na wydarzenie.
W poniższej tabeli przedstawiono połączenie zdarzeń Aktywnego Ułatwienia Dostępu WinEvents i zdarzeń Automatyzacji Interfejsu Użytkownika.
WinEvent | Identyfikator zdarzenia automatyzacji interfejsu użytkownika |
---|---|
ZDARZENIE_OBIEKT_ZMIANA_PRZYSPIESZENIE | AcceleratorKeyProperty zmiana właściwości |
ZDARZENIE_OBIEKT_TREŚĆ_PRZESUNIĘTA | zmiana właściwości VerticalScrollPercentProperty lub HorizontalScrollPercentProperty na skojarzonych paskach przewijania |
Zdarzenie_Obiekt_Tworzenie | StructureChangedEvent |
EVENT_OBJECT_DEFACTIONCHANGE | Brak odpowiednika |
ZMIANA_OPISU_OBIEKTU_WYDARZENIA | Nie ma dokładnego odpowiednika; być może HelpTextProperty lub LocalizedControlTypeProperty zmiana właściwości |
ZDARZENIE_OBIEKT_USUNIĘCIE | StructureChangedEvent |
ZDARZENIE_OBIEKT_FOKUS | AutomationFocusChangedEvent |
ZMIANA_OBIEKTU_POMOCY_EVENT | HelpTextProperty zmieniać |
ZDARZENIE_OBIEKT_UKRYJ | StructureChangedEvent |
ZMIANA_LOKALIZACJI_OBIEKTU wydarzenia | BoundingRectangleProperty zmiana właściwości |
EVENT_OBJECT_NAMECHANGE (Zmiana nazwy obiektu zdarzenia) | NameProperty zmiana właściwości |
ZMIANA_OBIEKTU_NADRZĘDNEGO | StructureChangedEvent |
ZDARZENIE_OBIEKTU_PRZESORTOWANIE | Nie jest spójnie używany w Active Accessibility. W usłudze Automatyzacja interfejsu użytkownika nie zdefiniowano żadnego bezpośrednio odpowiadającego zdarzenia. |
WYDARZENIE_OBIEKT_WYBORU | ElementSelectedEvent |
Zdarzenie_OBJECT_SELECTIONADD | ElementAddedToSelectionEvent |
ZDARZENIE_OBIEKT_USUNIĘCIE Z WYBORU | ElementRemovedFromSelectionEvent |
Obiekt_ZaznaczenieWewnątrz | Brak odpowiednika |
Pokaz obiektu zdarzenia | StructureChangedEvent |
ZMIANA_STANU_OBIEKTU_EVENT | Różne zdarzenia zmiany właściwości |
Zdarzenie_Zmiana_Wartości_Obiektu | RangeValuePattern.ValueProperty i ValuePattern.ValueProperty zmienione |
EVENT_SYSTEM_ALERT | Brak odpowiednika |
Zdarzenie_Zakończenie_Przewu_Systemowego (EVENT_SYSTEM_CAPTUREEND) | Brak odpowiednika |
ZADARZENIE_SYSTEMU_ROZPOCZĘCIE_PRZECHWYTYWANIA | Brak odpowiednika |
ZAKOŃCZENIE_POMOCY_KONTEKSTOWEJ_SYSTEMU | Brak odpowiednika |
EVENT_SYSTEM_CONTEXTHELPSTART | Brak odpowiednika |
EVENT_SYSTEM_DIALOGEND | WindowClosedEvent |
ZDARZENIE_ROZPOCZĘCIE_DIALOGU_SYSTEMU | WindowOpenedEvent |
Zdarzenie_System_ZakończeniePrzeciąganiaUpuszczania | Brak odpowiednika |
ZDARZENIE_SYSTEM_PRZENIESIENIE_ROZPOCZĘCIE | Brak odpowiednika |
EVENT_SYSTEM_FOREGROUND | AutomationFocusChangedEvent |
ZAKOŃCZENIE_MENU_SYSTEMU_EVENT | MenuClosedEvent |
ZAKOŃCZENIE_WYŚWIETLANIA_MENU_SYSTEMU | MenuClosedEvent |
EVENT_SYSTEM_MENUPOPUPSTART | MenuOpenedEvent |
EVENT_SYSTEM_MENUSTART | MenuOpenedEvent |
EVENT_SYSTEM_MINIMIZEEND | WindowVisualStateProperty zmiana właściwości |
EVENT_SYSTEM_MINIMIZESTART | WindowVisualStateProperty zmiana właściwości |
EVENT_SYSTEM_MOVESIZEEND | BoundingRectangleProperty zmiana właściwości |
EVENT_SYSTEM_MOVESIZESTART | BoundingRectangleProperty zmiana właściwości |
EVENT_SYSTEM_SCROLLINGEND | VerticalScrollPercentProperty lub HorizontalScrollPercentProperty zmiana właściwości |
ZDARZENIE_SYSTEMU_POCZĄTEK_PRZEWIJANIA | VerticalScrollPercentProperty lub HorizontalScrollPercentProperty zmiana właściwości |
ZDARZENIE_SYSTEMU_DŹWIĘK | Brak odpowiednika |
EVENT_SYSTEM_SWITCHEND | Brak odpowiednika, ale AutomationFocusChangedEvent to zdarzenie sygnalizuje, że nowa aplikacja otrzymała uwagę |
EVENT_SYSTEM_ROZPOCZĘCIEPRZEŁĄCZANIA | Brak odpowiednika |
Brak odpowiednika | CurrentViewProperty zmiana właściwości |
Brak odpowiednika | HorizontallyScrollableProperty zmiana właściwości |
Brak odpowiednika | VerticallyScrollableProperty zmiana właściwości |
Brak odpowiednika | HorizontalScrollPercentProperty zmiana właściwości |
Brak odpowiednika | VerticalScrollPercentProperty zmiana właściwości |
Brak odpowiednika | HorizontalViewSizeProperty zmiana właściwości |
Brak odpowiednika | VerticalViewSizeProperty zmiana właściwości |
Brak odpowiednika | ToggleStateProperty zmiana właściwości |
Brak odpowiednika | WindowVisualStateProperty zmiana właściwości |
Brak odpowiednika | zdarzenie AsyncContentLoadedEvent |
Brak odpowiednika | ToolTipOpenedEvent |
Bezpieczeństwo
Niektóre IAccessible
scenariusze dostosowywania wymagają zawijania obiektu bazowego IAccessible
i wywoływania jej. Ma to wpływ na bezpieczeństwo, ponieważ częściowo zaufany składnik nie powinien być pośrednikiem w ścieżce kodu.
Model automatyzacji interfejsu użytkownika eliminuje potrzebę wywoływania kodu innego dostawcy przez dostawców. Podstawowa usługa automatyzacji interfejsu użytkownika wykonuje wszystkie niezbędne agregacje.