Intelligente Geleide Tests

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

De analyze tool kan Deque's Geautomatiseerde Intelligente Geleide Tests (IGTs) uitvoeren tegen de pagina die het scant, in dezelfde oproep, direct na de Axe-scan. Geef de optionele igtTools array door waarin aangegeven wordt welke IGTs uitgevoerd moeten worden:

Waarde IGT Wat het controleert
"keyboard" Toetsenbord Tab-volgorde, elementen die onbereikbaar zijn via het toetsenbord, focustrappen, ontbrekende of zwakke focusindicatoren, en elementen die formulieren indienen bij focus
"interactive-elements" Interactieve Elementen Of knoppen, links en aangepaste controles de juiste toegankelijke naam, rol en status hebben. Zie Interactieve Elementen IGT.
"modal" Modaal Dialoogvenster Of de focus binnen een modaal blijft, de semantiek van het modale dialoogvenster en (bij aanwezigheid van een trigger) of het kan worden gesloten en waar de focus daarna heen gaat. Zie Modaal Dialoogvenster IGT.
{
  "url": "http://localhost:3000",
  "igtTools": ["keyboard"]
}

Stuur uw AI-agent aan in natuurlijke taal — de agent vertaalt uw intentie naar de tool-oproep:

Scan http://localhost:3000 for accessibility issues and run the keyboard IGT on it

Elke aangevraagde IGT wordt in volgorde na de Axe-scan uitgevoerd, in de volgorde waarin u ze vermeldt, tegen dezelfde pagina, in dezelfde browser, bij dezelfde viewportbreedte. Alles wat de pagina voorbereidt wordt eenmaal uitgevoerd en geldt voor de scan en elke IGT: before acties, cookie-injectie, en de viewport parameters.

{
  "url": "http://localhost:3000",
  "igtTools": ["keyboard"],
  "before": [
    {
      "action": "fill",
      "selector": "#username",
      "value": "<resolved-from-.env.local>"
    },
    { "action": "click", "selector": "button[type=submit]" },
    { "action": "waitFor", "selector": "#main-content" }
  ]
}

Reactievorm

Het instellen van igtTools verandert de vorm van data. Zonder het, is data de Axe-problemenreeks. Met het, heeft data twee sleutels op hetzelfde niveau, axe en igt, met één igt vermelding per aangevraagde IGT:

{
  "pageUrl": "http://localhost:3000",
  "data": {
    "axe": [],
    "igt": {
      "keyboard": {
        "status": "complete",
        "issues": [],
        "igtElements": [],
        "terminatedReason": "keyboard-trap"
      },
      "modal": {
        "status": "complete",
        "issues": [],
        "igtElements": []
      }
    }
  }
}
  • status"complete" of "error". Controleer het voordat u iets anders leest: issues en igtElements zijn alleen aanwezig op "complete", en error alleen op "error". Gefaseerde selectie voegt drie extra statussen toe voor de Interactieve Elementen IGT.
  • issues — de toegankelijkheidsproblemen die de IGT vond. Het aantal problemen is de lengte van deze reeks.
  • igtElementselke element dat de IGT heeft verwerkt, niet alleen die met problemen. Vermeldingen met analysisFailed: true konden niet door AI worden geanalyseerd en moeten handmatig worden beoordeeld. Elke vermelding is beperkt tot alleen de identificerende velden: vnodeId, selector, tagName, role, accessibleName, states, en analysisFailed, elk alleen aanwezig wanneer het element deze heeft.
  • terminatedReason — aanwezig alleen wanneer het uitvoeren eindigde voordat elke stap voltooid was, zodat de resultaten mogelijk gedeeltelijk zijn. Het is geen fout. Zie Beëindigingsredenen.
note

Een oproep zonder igtTools is ongewijzigd. data blijft de Axe-problemenreeks precies zoals voorheen, zodat bestaande prompts, agentinstructies en integraties zonder wijziging blijven werken.

Beëindigingsredenen

terminatedReason IGT Betekenis
insufficient-credits Elke Het account had geen AI-credits meer tijdens het uitvoeren.
subscription-missing Elke Het account heeft niet het Axe DevTools voor Web-abonnement dat de IGT vereist.
keyboard-trap Toetsenbord De test liep tegen een focustrapping die het niet kon ontsnappen.
dismissibility-unavailable Modaal Er was geen trigger (een modalSelector-alleen of before-alleen uitvoering), dus de test kon niet controleren of het modaal kan worden gesloten. Verwacht wanneer die modi het modaal succesvol beoordelen, geen falen.
focus-restoration-unavailable Modaal Er was geen trigger voor de focus om naar terug te keren, dus de test kon niet controleren waar de focus naartoe gaat nadat het modaal sluit. Verwacht voor niet-trigger modi, geen falen.
modal-not-detected Modaal Er werd geen modaal gevonden om te beoordelen.
modal-dismiss-failed Modaal Het modaal kon niet worden gesloten tijdens de beoordeling.
trigger-not-resolved Modaal modalTriggerSelector kwam niet overeen met een element op de pagina, dus er werd geen modaal geopend.
modal-selector-not-resolved Modaal modalSelector kwam niet overeen met een element op de pagina.
modal-selector-not-visible Modaal modalSelector kwam overeen met een element dat niet zichtbaar is. Als het modaal opent via een interactie, open het dan met before.
modal-fallback-not-resolved Modaal De fallback modalSelector (meegegeven met een trigger) kwam niet overeen met een element op de pagina.
modal-fallback-not-visible Modaal De fallback modalSelector (meegegeven met een trigger) kwam overeen met een element dat niet zichtbaar is.

De Interactieve Elementen IGT heeft geen eigen redenen voor beëindiging. Een pagina zonder interactieve elementen geeft een "complete" resultaat terug met lege arrays.

Storingen worden geïsoleerd

Een IGT die faalt, faalt niet de oproep niet en heeft nooit invloed op de Axe-resultaten of de andere IGT's. De storing wordt gemeld als de eigen status: "error" van die IGT met een bericht. De Axe-resultaten en elke andere IGT's resultaten komen normaal terug. Dit geldt ook wanneer de machine learning-instelling van uw organisatie is uitgeschakeld, in welk geval bij elke IGT wordt uitgelegd dat machine learning vereist is.

Kredietgebruik

IGT's worden aangedreven door AI en maken deel uit van de AI Kredietbeheersysteem. Elke uitvoering verbruikt AI-kredieten van de maandelijkse toewijzing van uw organisatie; de Axe-scan zelf niet. Vraag IGT's doelgericht aan in plaats van ze aan elke scan toe te voegen. Voor de Interactieve Elementen IGT afbakening of elementen kiezen vermindert het aantal geanalyseerde elementen, en daarmee de verbruikte kredieten.

tip

Als uw aangepaste agentinstructies de agent opdrachten geven om de standalone igt tool aan te roepen, update ze dan om analyze met igtTools in plaats daarvan te gebruiken — één oproep dekt zowel de scan als de IGT, en de standalone tool is verouderd.

Interactieve Elementen IGT

De Interactieve Elementen IGT vindt de knoppen, links en aangepaste besturingselementen op de pagina en gebruikt AI om de toegankelijke naam, rol en status van elk te controleren. Standaard analyseert het elke interactief element dat het in één oproep vindt:

{
  "url": "http://localhost:3000",
  "igtTools": ["interactive-elements"]
}
Analyze http://localhost:3000 and run the interactive elements guided test

Elk geanalyseerd element verbruikt AI-kredieten, dus op een grote pagina — een dataraster, een lang navigatiemenu, een productoverzicht — kan de standaarduitvoering veel gebruiken. Twee opties beperken wat er geanalyseerd wordt.

Afgebakend met includeSelectors

Geef includeSelectors, een reeks CSS-selectors, door om alleen de elementen te analyseren die ermee overeenkomen. Elementen buiten de selectors worden niet geanalyseerd:

{
  "url": "http://localhost:3000",
  "igtTools": ["interactive-elements"],
  "includeSelectors": ["#main", "nav.primary"]
}
Analyze http://localhost:3000 and run the interactive elements guided test,
but only on the elements inside #main and nav.primary

includeSelectors is anders dan het selector van analyze. selector beperkt welk deel van de pagina de Axe-scan dekt, terwijl includeSelectors beperkt welke elementen de Interactieve Elementen IGT analyseert. U kunt een van beide gebruiken, of beide. includeSelectors vereist "interactive-elements" in igtTools.

Kiezen welke elementen te testen

Wanneer u van tevoren niet weet welke elementen van belang zijn, gebruik gefaseerde selectie. Het splitst de test op in twee oproepen van de tool, met een pauze ertussen zodat u kunt kiezen wat er geanalyseerd wordt:

  1. Eerste oproep — elementen vinden. De agent roept analyze aan met interactive: true. De Axe-scan wordt zoals gebruikelijk uitgevoerd, en de IGT vindt de interactieve elementen van de pagina, maar voert geen AI-analyse op hen uit. De uitvoering pauzeert en retourneert de lijst met elementen die het heeft gevonden, plus een sessionID.
  2. U kiest. De agent toont u de lijst — de rol, toegankelijke naam en status van elk element, gegroepeerd per component of rol waar mogelijk — en u geeft aan welke getest moeten worden.
  3. Tweede oproep — analyseren. De agent roept analyze opnieuw aan met de sessionID en de door u gekozen selectedIDs. De gepauzeerde uitvoering gaat verder in dezelfde browsersessie, zonder de pagina opnieuw te laden of elementen opnieuw te vinden, en retourneert een normaal "complete"-resultaat alleen voor de geselecteerde elementen.

Een prompt die erom vraagt:

Analyze http://localhost:3000 and run the interactive elements guided test.
Show me the interactive elements it finds first and let me choose which
ones to test.

De eerste oproep:

{
  "url": "http://localhost:3000",
  "igtTools": ["interactive-elements"],
  "interactive": true
}

retourneert de Axe-resultaten en de kandidaten:

{
  "pageUrl": "http://localhost:3000",
  "data": {
    "axe": [],
    "igt": {
      "interactive-elements": {
        "status": "needs_selection",
        "sessionID": "3f9c…",
        "candidates": [
          { "vnodeId": 12, "role": "button", "name": "Add to cart" },
          { "vnodeId": 31, "role": "link", "name": "Checkout" }
        ],
        "componentGroups": { "intelligent": [], "role": [] }
      }
    }
  }
}

De tweede oproep noemt de gekozen kandidaten bij vnodeId:

{
  "url": "http://localhost:3000",
  "igtTools": ["interactive-elements"],
  "sessionID": "3f9c…",
  "selectedIDs": [12]
}

Houd rekening met het volgende bij het gebruik van gefaseerde selectie:

  • Het voert alleen de Interactieve Elementen IGT uit. igtTools moeten precies ["interactive-elements"] zijn bij beide oproepen. Om de Keyboard of Modal IGT's ook uit te voeren, voert u ze in een aparte oproep uit.
  • De tweede oproep laat data.axe weg. De Axe-resultaten kwamen terug bij de eerste oproep. Bij de tweede oproep worden alle opzetparameters (viewportWidth, viewportHeight, cookies, before, selector, advancedRules, screenshot, chromePath) genegeerd, omdat de gepauzeerde browsersessie ongewijzigd wordt hergebruikt. url is nog steeds vereist.
  • includeSelectors is nog steeds van toepassing. Geef het door bij de eerste oproep om te beperken welke elementen in de lijst verschijnen.
  • selectedIDs moet van de lijst komen. Als een ID niet in de kandidaten stond, retourneert de oproep status: "invalid_selection" met de onbekende IDs in unknownIDs. De uitvoering blijft gepauzeerd, zodat de agent het kan opnieuw proberen met geldige IDs.
  • Gepauzeerde uitvoeringen verlopen. Een uitvoering die niet binnen 3 minuten wordt voortgezet, wordt afgesloten en retourneert status: "session_expired". Er kunnen maximaal 3 gepauzeerde uitvoeringen tegelijk open zijn. Beide limieten zijn configureerbaar met SELECTION_SESSION_TTL_MS en MAX_SELECTION_SESSIONS. Na een verloopdatum begint u opnieuw met een nieuwe interactive: true-oproep.
tip

Gefaseerde selectie is de meest krediet-efficiënte manier om een grote pagina te testen. De eerste oproep voert geen AI-analyse uit op interactieve elementen, en de tweede oproep analyseert alleen de door u gekozen elementen.

De Modalvenster IGT controleert een enkel modaal venster op de pagina. Het controleert of de toetsenbordfocus binnen het modaalvenster blijft terwijl het geopend is en of het modaal de juiste dialoogsemantiek heeft (aria-modal en de rol van de modaalcontainer). Wanneer de test het element heeft dat het modaalvenster opent, controleert het ook of het modaal kan worden afgesloten en of de focus keert terug naar een redelijke plaats daarna.

De test moet weten welk modaalvenster gecontroleerd moet worden. Er zijn drie manieren om dit aan te geven:

Targetmodus Hoe Wat wordt beoordeeld
Trigger (aanbevolen) modalTriggerSelector — het element dat het modaal opent Focusbehoud, dialoogsemantiek, sluiten en focus terugkeer
Modaal element modalSelector — het modale element zelf Alleen focusbehoud en dialoogsemantiek
before stappen alleen Geen selector — uw before acties openen het modaalvenster Alleen focusbehoud en dialoogsemantiek

Gebruik modalTriggerSelector wanneer het modaal een trigger heeft — het is de enige modus die alles controleert. De test klikt zelf op de trigger:

{
  "url": "http://localhost:3000",
  "igtTools": ["modal"],
  "modalTriggerSelector": "#open-dialog"
}
Analyze http://localhost:3000 and run the modal guided test on the dialog
opened by #open-dialog

Gebruik modalSelector wanneer er geen trigger is om op te klikken, zoals bij een modaalvenster dat wordt geopend wanneer de pagina laadt. Als het modaal alleen verschijnt na enige interactie, gebruik dan before om het eerst te openen:

{
  "url": "http://localhost:3000",
  "igtTools": ["modal"],
  "modalSelector": "#newsletter-dialog"
}

Zonder selector controleert de test welk modaal geopend is zodra de before stappen voltooid zijn. Gebruik dit voor modalen die niet door een enkel element worden geopend, zoals een die verschijnt na een reeks toetsaanslagen of een sessie-time-out:

{
  "url": "http://localhost:3000",
  "igtTools": ["modal"],
  "before": [
    { "action": "click", "selector": "#settings" },
    { "action": "click", "selector": "#delete-account" }
  ]
}

Beide selectors accepteren een CSS-string voor een element in het bovenste kader, of een array van selectors om een element binnen een iframe te bereiken (bijvoorbeeld, ["iframe#app", "#open-dialog"]), hetzelfde formaat als selector.

important

Zonder een trigger betekent een lege issues lijst niet dat het modaal gesloten kan worden. Wanneer een modalSelector-alleen of before-alleen run het modaal vindt en beoordeelt, eindigt het met terminatedReason: "dismissibility-unavailable". Dit is zoals verwacht en betekent dat sluiten en focusterugkeer niet beoordeeld waren — niet dat ze geslaagd zijn. Als het modaal niet gevonden kan worden, eindigt de run met een andere reden, zoals modal-not-detected of modal-selector-not-resolved; zie Beëindigingsredenen.

Een reserve modaalselector bieden

Als je zowel de trigger als het modale element kent, geef dan beide door. De test begint nog steeds vanaf de trigger en controleert nog steeds alles. De modalSelector wordt alleen gebruikt als de test het modaal niet kan identificeren na op de trigger te klikken — meestal omdat het modaal niet-standaard markup gebruikt:

{
  "url": "http://localhost:3000",
  "igtTools": ["modal"],
  "modalTriggerSelector": "#open-dialog",
  "modalSelector": "#custom-dialog"
}

Het resultaat zegt niet of de reserve gebruikt is. Een run die het nodig had, controleerde een element dat de test niet kon herkennen als een modaal, dus beschouw een lege issues lijst van een run met beide selectors als zwakker bewijs dan een van een trigger-alleen run.

Open het modaal niet zelf

Wanneer je modalTriggerSelector doorgeeft, klikt de test op de trigger om het modaal te openen. Als het modaal al open is, sluit die klik het meestal weer. Dus:

  • Klik niet op de trigger in before. Een before klik op dezelfde selector als modalTriggerSelector wordt met een fout afgewezen. Gebruik before om de paginastatus te bereiken waar de trigger zich in bevindt, zoals inloggen of naar een specifieke weergave gaan.
  • Geef geen trigger door voor een modaal dat al open is, hetzij bij het laden van de pagina of vanuit een before stap. Gebruik modalSelector op zichzelf in plaats daarvan.

modalTriggerSelector en modalSelector hebben allebei "modal" nodig in igtTools.

Alles in één keer uitvoeren

Elke IGT heeft zijn eigen opties, zodat één analyze oproep de Axe-scan, Geavanceerde regels, en elke IGT op dezelfde pagina kan uitvoeren. De pagina wordt één keer geladen en voorbereid, en elk resultaat komt terug onder zijn eigen sleutel.

Analyze http://localhost:3000 for accessibility issues with thorough
advanced rules. Also run the keyboard, interactive elements, and modal
guided tests (test the modal triggered by button#open-dialog).

De agent lost de prompt op en roept het analyze gereedschap aan met een laadmiddel gelijkend op:

{
  "url": "http://localhost:3000",
  "advancedRules": "thorough",
  "igtTools": ["keyboard", "interactive-elements", "modal"],
  "modalTriggerSelector": "button#open-dialog"
}

en ontvangt de Axe-resultaten (inclusief bevindingen van Geavanceerde Regels) onder data.axe en één invoer per IGT onder data.igt:

{
  "pageUrl": "http://localhost:3000",
  "advancedRules": { "value": "thorough", "source": "tool_arg" },
  "data": {
    "axe": [],
    "igt": {
      "keyboard": { "status": "complete", "issues": [], "igtElements": [] },
      "interactive-elements": {
        "status": "complete",
        "issues": [],
        "igtElements": []
      },
      "modal": { "status": "complete", "issues": [], "igtElements": [] }
    }
  }
}

De IGT's worden na elkaar uitgevoerd, in de volgorde vermeld in igtTools, en elk rapporteert afzonderlijk — een toetsenbordval of een modaal dat niet gevonden kan worden stopt de anderen niet. Dit werkt ook met elke andere analyze optie: before stappen en cookies voor een pagina achter een login, viewportWidth voor een mobiele breekpunt, selector om de Axe-scan te reiken, en screenshot.

note

Gefaseerde selectie kan niet gecombineerd worden met andere IGT's. Om de interactieve elementen IGT te beperken in een multi-IGT-oproep, gebruik includeSelectors.

Het igtgereedschap

caution

Het igt gereedschap is verouderd. Gebruik in plaats daarvan de analyze parameter van het igtTools gereedschap — deze voert dezelfde Intelligente Geleide Tests uit tegen dezelfde pagina in een enkele oproep, naast de Axe-scan.

igt blijft volledig functioneel en levert dezelfde resultaten als voorheen, dus niets breekt vandaag. Het zal worden verwijderd in een toekomstige release. Als je aangepaste agentinstructies de naam van het igt gereedschap, werk deze dan bij om analyze met igtTools op te roepen.

Het igt gereedschap voert Deque's Geautomatiseerde Intelligente Geleide Tests uit tegen een webpagina als een op zichzelf staande oproep. Alles wat het doet, doet analyze nu in dezelfde oproep als de toegankelijkheidsscan — zie de rest van deze pagina voor gebruik en kredietverbruik, die hetzelfde zijn voor beide.

Het resultaatobject per test is ook hetzelfde voor beide — status, issues, igtElements, en een optionele terminatedReason, zoals beschreven in Reactievorm. Alleen de envelop verschilt: igt retourneert de resultaten direct onder data, gesorteerd op testnaam (data.keyboard), terwijl analyze deze nestelt onder data.igt naast data.axe.