Delen via


Aangepaste eigenschappen, gebeurtenissen en besturingspatronen ontwerpen

Het ontwerp van een aangepast eigenschaps-, gebeurtenis- of controlepatroon moet nuttig zijn in een groot aantal implementaties van besturingselementen. Besturings- of toepassingsspecifieke ontwerpen die alleen nuttig zijn in beperkte scenario's, moeten worden vermeden. Het ontwerp moet het voorbeeld volgen van de bestaande eigenschappen, gebeurtenissen en besturingspatronen van Microsoft UI Automation, die zorgvuldig zijn opgegeven om te voldoen aan de behoeften van een groot aantal toegankelijkheids- en geautomatiseerde testtoepassingen.

Het implementeren van de specificatie voor een aangepast eigenschaps-, gebeurtenis- of controlepatroon omvat de samenwerking en overeenkomst van partijen aan zowel de client- als providerzijde, en vereist dat beide partijen de specificatie consistent implementeren. Bedrijven worden aangemoedigd om samen te werken met brancheorganisaties zoals de Accessibility Interoperability Alliance (AIA) om de specificatie voor de aangepaste eigenschap, gebeurtenis of controlepatroon te ontwerpen en te publiceren. Op deze manier kan consensus worden bereikt en kan de interoperabiliteit met de breedste verscheidenheid aan toepassingen worden gegarandeerd.

Dit onderwerp bevat de volgende secties:

Wanneer aangepaste eigenschappen en gebeurtenissen gebruiken

Voordat u een aangepast eigenschaps-, gebeurtenis- of besturingspatroon maakt, moet u ervoor zorgen dat UI Automation geen bestaande oplossing biedt. Het maken van een aangepast besturingselement 'Klikken' is bijvoorbeeld niet nodig omdat de Het besturingselementpatroon aanroepen al die functionaliteit beschrijft.

Als u besluit dat een aangepaste eigenschap, gebeurtenis of besturingspatroon nodig is, moet u ervoor zorgen dat deze niet te vaag of algemeen is. Een besturingselementpatroon met de naam 'Weergeven' is bijvoorbeeld niet handig omdat de zichtbaarheid van een besturingselement kan worden aangegeven door een beschikbaarheidseigenschap op het element, zoals UIA_IsExpandCollapsePatternAvailablePropertyId of UIA_IsScrollItemPatternAvailablePropertyId.

Voordat u een aangepaste oplossing implementeert, controleert u zorgvuldig of deze nodig is en ontwerpt u vervolgens de functionaliteit volledig.

Aangepaste eigenschappen ontwerpen

UI Automation bevat twee basistypen eigenschappen: eigenschappen van automatiseringselementen en eigenschappen van besturingspatronen. De eigenschappen van het automatiseringselement bestaan uit een algemene set eigenschappen, zoals Name, AcceleratorKey en ClassName, die worden weergegeven door alle ELEMENTEN van de UI Automation, ongeacht het type besturingselement. Eigenschappen van besturingspatronen worden weergegeven door een besturingselement via een bepaald besturingspatroon. Elk besturingselementpatroon heeft een bijbehorende set eigenschappen van het besturingselementpatroon die het besturingselement moet weergeven. Een besturingselement dat ondersteuning biedt voor het Raster besturingspatroon maakt bijvoorbeeld de eigenschappen ColumnCount en RowCount beschikbaar.

Een aangepaste eigenschap van het automatiseringselement of de eigenschap van het controlepatroon moet voldoen aan de volgende ontwerprichtlijnen:

  • Een aangepaste eigenschap moet een van de volgende gegevenstypen hebben die zijn opgegeven door de UIAutomationType opsomming. Er worden geen andere gegevenstypen ondersteund voor aangepaste eigenschappen.
    • UIAutomationType_Bool
    • UIAutomationType_Double
    • UIAutomationType_Element
    • UIAutomationType_Int
    • UIAutomationType_Point
    • UIAutomationType_String
  • Als de aangepaste eigenschap tekenreeksgegevens (BSTR-) bevat, moet de specificatie aangeven of de eigenschap kan worden gelokaliseerd (dat wil gezegd, of de tekenreeks kan worden vertaald in verschillende ui-talen).
  • De aangepaste eigenschap mag niet overlappen met de functies of functionaliteit van bestaande eigenschappen.

Aangepaste gebeurtenissen ontwerpen

Toepassingen gebruiken UI Automation-gebeurtenismeldingen om te reageren op wijzigingen en acties met betrekking tot UI-items. De meeste eigenschappen hebben gebeurtenissen gekoppeld die zijn gewijzigd door eigenschappen die door UI Automation worden gegenereerd wanneer de waarde van de eigenschap wordt gewijzigd. Als u een aangepaste eigenschap introduceert, moet u overwegen om eventuele bijbehorende aangepaste gebeurtenissen te introduceren die mogelijk ook nodig zijn.

Een aangepaste gebeurtenis moet voldoen aan de volgende ontwerprichtlijnen:

  • De aangepaste gebeurtenis moet staatloos zijn. Deze kan niet worden gekoppeld aan een specifieke eigenschap of waarde.
  • De aangepaste gebeurtenis mag niet overlappen met de definitie of rol van een bestaande gebeurtenis.

Aangepaste UI Automation-gebeurtenissen en WinEvents

WinEvents zijn een nuttig communicatie- en gebeurtenismechanisme tussen processen in het Microsoft Windows-platform. Het introduceren van een nieuwe WinEvent-id is echter riskant omdat dit conflicten kan veroorzaken met andere toepassingen of het besturingssysteem, waardoor het systeem instabiel wordt. Om conflicten te voorkomen, heeft Microsoft verschillende categorieën WinEvents gedefinieerd en voor elke categorie een of meer waardenbereiken gedefinieerd voor gebruik als WinEvent-id's. Zie Toewijzing van WinEvent-id'svoor meer informatie.

Aangepaste UI Automation-gebeurtenissen voorkomen conflicten door de gebeurtenis-id intern toe te wijzen in het UI Automation-framework.

Aangepaste besturingspatronen ontwerpen

Een besturingspatroon is een interface met eigenschappen, methoden en gebeurtenissen die een discrete functionaliteit definiëren die beschikbaar is vanuit een automatiseringselement. Met beheerpatroonmethoden kunnen UI Automation-clients een bepaald aspect van het besturingselement bewerken. De eigenschappen en gebeurtenissen van het besturingspatroon bieden informatie over een bepaald aspect van het besturingselement en bieden informatie over de status van het automatiseringselement waarmee het besturingspatroon wordt geïmplementeerd.

Een aangepast controlepatroon moet voldoen aan de volgende ontwerprichtlijnen:

  • Een aangepast besturingspatroon moet betrekking hebben op een bepaald scenario. De ItemContainer besturingspatroon is bijvoorbeeld bedoeld voor het uitvoeren van query's op een ingesloten object, ongeacht de virtualisatiestatus, maar de ingesloten objecten worden niet opgesomd of geteld.
  • Een aangepast besturingselementpatroon mag niet overlappen met de functies van bestaande besturingspatronen. De aanroepen en ExpandCollapse--besturingspatronen mogen bijvoorbeeld niet worden gecombineerd en weergegeven als een nieuw besturingspatroon. Gebruik bestaande besturingspatronen opnieuw of definieer unieke scenario's met nieuwe besturingspatronen.
  • Meerdere aangepaste besturingspatronen kunnen samen worden ontworpen ter ondersteuning van complexe scenario's. De Selectie en SelectionItem besturingspatronen werken bijvoorbeeld samen om algemene objectselectiescenario's te ondersteunen.

Aangepaste typen besturingselementen

Hoewel dit onderwerp is gericht op het registreren van aangepaste UI Automation-eigenschappen, gebeurtenissen en besturingspatronen, is het ook mogelijk om nieuwe typen besturingselementen te introduceren. In tegenstelling tot aangepaste eigenschappen, gebeurtenissen en besturingspatronen, kan een aangepast besturingselementtype niet programmatisch worden geregistreerd tijdens runtime, omdat dit eigenlijk alleen een mogelijke waarde is van de eigenschap UI Automation ControlType. Een aangepaste type-id voor besturingselementen kan echter worden gedefinieerd, gepubliceerd en beschikbaar worden gesteld voor andere clients en providers die moeten worden gebruikt. Zie Overzicht van ui Automation-besturingstypenvoor meer informatie over besturingstypen.

conceptuele

Aangepaste eigenschappen, gebeurtenissen en besturingspatronen registreren

Overzicht van UI Automation-eigenschappen

Overzicht van UI Automation-gebeurtenissen

Overzicht van UI Automation-besturingspatronen