@webability/core 1.16.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -382,7 +382,7 @@ See: https://github.com/dequelabs/axe-core/blob/master/doc/context.md`));}functi
382
382
  `).join(`
383
383
  `);return ce}}},incompleteFallbackMessage:"axe couldn't tell the reason. Time to break out the element inspector!"},rules:[{id:"accesskeys",impact:"serious",selector:"[accesskey]",excludeHidden:false,tags:["cat.keyboard","best-practice"],all:[],any:[],none:["accesskeys"]},{id:"area-alt",impact:"critical",selector:"map area[href]",excludeHidden:false,tags:["cat.text-alternatives","wcag2a","wcag244","wcag412","section508","section508.22.a","TTv5","TT6.a","EN-301-549","EN-9.2.4.4","EN-9.4.1.2","ACT","RGAAv4","RGAA-1.1.2"],actIds:["c487ae"],all:[],any:[{options:{attribute:"alt"},id:"non-empty-alt"},"aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:[]},{id:"aria-allowed-attr",impact:"critical",matches:"aria-allowed-attr-matches",tags:["cat.aria","wcag2a","wcag412","EN-301-549","EN-9.4.1.2","RGAAv4","RGAA-7.1.1"],actIds:["5c01ea"],all:[{options:{validTreeRowAttrs:["aria-posinset","aria-setsize","aria-expanded","aria-level"]},id:"aria-allowed-attr"},"aria-allowed-attr-elm"],any:[],none:["aria-unsupported-attr"]},{id:"aria-allowed-role",impact:"minor",excludeHidden:false,selector:"[role]",matches:"aria-allowed-role-matches",tags:["cat.aria","best-practice"],all:[],any:[{options:{allowImplicit:true,ignoredTags:[]},id:"aria-allowed-role"}],none:[]},{id:"aria-braille-equivalent",reviewOnFail:true,impact:"serious",selector:"[aria-brailleroledescription], [aria-braillelabel]",tags:["cat.aria","wcag2a","wcag412","EN-301-549","EN-9.4.1.2"],all:["braille-roledescription-equivalent","braille-label-equivalent"],any:[],none:[]},{id:"aria-command-name",impact:"serious",selector:'[role="link"], [role="button"], [role="menuitem"]',matches:"no-naming-method-matches",tags:["cat.aria","wcag2a","wcag412","TTv5","TT6.a","EN-301-549","EN-9.4.1.2","ACT","RGAAv4","RGAA-11.9.1"],actIds:["97a4e1"],all:[],any:["has-visible-text","aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:[]},{id:"aria-conditional-attr",impact:"serious",matches:"aria-allowed-attr-matches",tags:["cat.aria","wcag2a","wcag412","EN-301-549","EN-9.4.1.2","RGAAv4","RGAA-7.1.1"],actIds:["5c01ea"],all:[{options:{invalidTableRowAttrs:["aria-posinset","aria-setsize","aria-expanded","aria-level"]},id:"aria-conditional-attr"}],any:[],none:[]},{id:"aria-deprecated-role",impact:"minor",selector:"[role]",matches:"no-empty-role-matches",tags:["cat.aria","wcag2a","wcag412","EN-301-549","EN-9.4.1.2","RGAAv4","RGAA-7.1.1"],actIds:["674b10"],all:[],any:[],none:["deprecatedrole"]},{id:"aria-dialog-name",impact:"serious",selector:'[role="dialog"], [role="alertdialog"]',matches:"no-naming-method-matches",tags:["cat.aria","best-practice"],all:[],any:["aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:[]},{id:"aria-hidden-body",impact:"critical",selector:"body",excludeHidden:false,matches:"is-initiator-matches",tags:["cat.aria","wcag2a","wcag131","wcag412","EN-301-549","EN-9.1.3.1","EN-9.4.1.2","RGAAv4","RGAA-10.8.1"],all:[],any:["aria-hidden-body"],none:[]},{id:"aria-hidden-focus",impact:"serious",selector:'[aria-hidden="true"]',matches:"aria-hidden-focus-matches",excludeHidden:false,tags:["cat.name-role-value","wcag2a","wcag412","TTv5","TT6.a","EN-301-549","EN-9.4.1.2","RGAAv4","RGAA-10.8.1"],actIds:["6cfa84"],all:["focusable-modal-open","focusable-disabled","focusable-not-tabbable"],any:[],none:[]},{id:"aria-input-field-name",impact:"serious",selector:'[role="combobox"], [role="listbox"], [role="searchbox"], [role="slider"], [role="spinbutton"], [role="textbox"]',matches:"no-naming-method-matches",tags:["cat.aria","wcag2a","wcag412","TTv5","TT5.c","EN-301-549","EN-9.4.1.2","ACT","RGAAv4","RGAA-11.1.1"],actIds:["e086e5"],all:[],any:["aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:["no-implicit-explicit-label"]},{id:"aria-meter-name",impact:"serious",selector:'[role="meter"]',matches:"no-naming-method-matches",tags:["cat.aria","wcag2a","wcag111","EN-301-549","EN-9.1.1.1","RGAAv4","RGAA-11.1.1"],all:[],any:["aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:[]},{id:"aria-progressbar-name",impact:"serious",selector:'[role="progressbar"]',matches:"no-naming-method-matches",tags:["cat.aria","wcag2a","wcag111","EN-301-549","EN-9.1.1.1","RGAAv4","RGAA-11.1.1"],all:[],any:["aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:[]},{id:"aria-prohibited-attr",impact:"serious",matches:"aria-allowed-attr-matches",tags:["cat.aria","wcag2a","wcag412","EN-301-549","EN-9.4.1.2","RGAAv4","RGAA-7.1.1"],actIds:["5c01ea"],all:[],any:[],none:[{options:{elementsAllowedAriaLabel:["applet","input"]},id:"aria-prohibited-attr"}]},{id:"aria-required-attr",impact:"critical",selector:"[role]",tags:["cat.aria","wcag2a","wcag412","EN-301-549","EN-9.4.1.2","RGAAv4","RGAA-7.1.1"],actIds:["4e8ab6"],all:[],any:["aria-required-attr"],none:[]},{id:"aria-required-children",impact:"critical",selector:"[role]",matches:"aria-required-children-matches",tags:["cat.aria","wcag2a","wcag131","EN-301-549","EN-9.1.3.1","RGAAv4","RGAA-9.3.1"],actIds:["bc4a75","ff89c9"],all:[],any:[{options:{reviewEmpty:["doc-bibliography","doc-endnotes","grid","list","listbox","menu","menubar","table","tablist","tree","treegrid","rowgroup"]},id:"aria-required-children"}],none:[]},{id:"aria-required-parent",impact:"critical",selector:"[role]",matches:"aria-required-parent-matches",tags:["cat.aria","wcag2a","wcag131","EN-301-549","EN-9.1.3.1","RGAAv4","RGAA-9.3.1"],actIds:["ff89c9"],all:[],any:[{options:{ownGroupRoles:["listitem","treeitem"]},id:"aria-required-parent"}],none:[]},{id:"aria-roledescription",impact:"serious",selector:"[aria-roledescription]",tags:["cat.aria","wcag2a","wcag412","EN-301-549","EN-9.4.1.2","deprecated"],enabled:false,all:[],any:[{options:{supportedRoles:["button","img","checkbox","radio","combobox","menuitemcheckbox","menuitemradio"]},id:"aria-roledescription"}],none:[]},{id:"aria-roles",impact:"critical",selector:"[role]",matches:"no-empty-role-matches",tags:["cat.aria","wcag2a","wcag412","EN-301-549","EN-9.4.1.2","RGAAv4","RGAA-7.1.1"],actIds:["674b10"],all:[],any:[],none:["invalidrole","abstractrole","unsupportedrole"]},{id:"aria-text",impact:"serious",selector:"[role=text]",tags:["cat.aria","best-practice"],all:[],any:["no-focusable-content"],none:[]},{id:"aria-toggle-field-name",impact:"serious",selector:'[role="checkbox"], [role="menuitemcheckbox"], [role="menuitemradio"], [role="radio"], [role="switch"], [role="option"]',matches:"no-naming-method-matches",tags:["cat.aria","wcag2a","wcag412","TTv5","TT5.c","EN-301-549","EN-9.4.1.2","ACT","RGAAv4","RGAA-7.1.1"],actIds:["e086e5"],all:[],any:["has-visible-text","aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:["no-implicit-explicit-label"]},{id:"aria-tooltip-name",impact:"serious",selector:'[role="tooltip"]',matches:"no-naming-method-matches",tags:["cat.aria","wcag2a","wcag412","EN-301-549","EN-9.4.1.2"],all:[],any:["has-visible-text","aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:[]},{id:"aria-treeitem-name",impact:"serious",selector:'[role="treeitem"]',matches:"no-naming-method-matches",tags:["cat.aria","best-practice"],all:[],any:["has-visible-text","aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:[]},{id:"aria-valid-attr-value",impact:"critical",matches:"aria-has-attr-matches",tags:["cat.aria","wcag2a","wcag412","EN-301-549","EN-9.4.1.2","RGAAv4","RGAA-7.1.1"],actIds:["6a7281"],all:[{options:[],id:"aria-valid-attr-value"},"aria-errormessage","aria-level"],any:[],none:[]},{id:"aria-valid-attr",impact:"critical",matches:"aria-has-attr-matches",tags:["cat.aria","wcag2a","wcag412","EN-301-549","EN-9.4.1.2","RGAAv4","RGAA-7.1.1"],actIds:["5f99a7"],all:[],any:[{options:[],id:"aria-valid-attr"}],none:[]},{id:"audio-caption",impact:"critical",selector:"audio",enabled:false,excludeHidden:false,tags:["cat.time-and-media","wcag2a","wcag121","EN-301-549","EN-9.1.2.1","section508","section508.22.a","deprecated"],actIds:["2eb176","afb423"],all:[],any:[],none:["caption"]},{id:"autocomplete-valid",impact:"serious",matches:"autocomplete-matches",tags:["cat.forms","wcag21aa","wcag135","EN-301-549","EN-9.1.3.5","ACT","RGAAv4","RGAA-11.13.1"],actIds:["73f2c2"],all:[{options:{stateTerms:["none","false","true","disabled","enabled","undefined","null","xoff","xon"],ignoredValues:["text","pronouns","gender","message","content"]},id:"autocomplete-valid"}],any:[],none:[]},{id:"avoid-inline-spacing",impact:"serious",selector:"[style]",matches:"is-visible-on-screen-matches",tags:["cat.structure","wcag21aa","wcag1412","EN-301-549","EN-9.1.4.12","ACT"],actIds:["24afc2","9e45ec","78fd32"],all:[{options:{cssProperty:"letter-spacing",minValue:.12},id:"important-letter-spacing"},{options:{cssProperty:"word-spacing",minValue:.16},id:"important-word-spacing"},{options:{multiLineOnly:true,cssProperty:"line-height",minValue:1.5,normalValue:1},id:"important-line-height"}],any:[],none:[]},{id:"blink",impact:"serious",selector:"blink",excludeHidden:false,tags:["cat.time-and-media","wcag2a","wcag222","section508","section508.22.j","TTv5","TT2.b","EN-301-549","EN-9.2.2.2","RGAAv4","RGAA-13.8.1"],all:[],any:[],none:["is-on-screen"]},{id:"button-name",impact:"critical",selector:"button",matches:"no-explicit-name-required-matches",tags:["cat.name-role-value","wcag2a","wcag412","section508","section508.22.a","TTv5","TT6.a","EN-301-549","EN-9.4.1.2","ACT","RGAAv4","RGAA-11.9.1"],actIds:["97a4e1","m6b1q3"],all:[],any:["button-has-visible-text","aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"},"implicit-label","explicit-label","presentational-role"],none:[]},{id:"bypass",impact:"serious",selector:"html:not(html *)",pageLevel:true,matches:"bypass-matches",reviewOnFail:true,tags:["cat.keyboard","wcag2a","wcag241","section508","section508.22.o","TTv5","TT9.a","EN-301-549","EN-9.2.4.1","RGAAv4","RGAA-12.7.1"],actIds:["cf77f2","047fe0","b40fd1","3e12e1","ye5d6e"],all:[],any:["internal-link-present",{options:{selector:":is(h1, h2, h3, h4, h5, h6):not([role]), [role=heading]"},id:"header-present"},{options:{selector:"main, [role=main]"},id:"landmark"}],none:[]},{id:"color-contrast-enhanced",impact:"serious",matches:"color-contrast-matches",excludeHidden:false,enabled:false,tags:["cat.color","wcag2aaa","wcag146","ACT"],actIds:["09o5cg"],all:[],any:[{options:{ignoreUnicode:true,ignoreLength:false,ignorePseudo:false,boldValue:700,boldTextPt:14,largeTextPt:18,contrastRatio:{normal:{expected:7,minThreshold:4.5},large:{expected:4.5,minThreshold:3}},pseudoSizeThreshold:.25,shadowOutlineEmMax:.1,textStrokeEmMin:.03},id:"color-contrast-enhanced"}],none:[]},{id:"color-contrast",impact:"serious",matches:"color-contrast-matches",excludeHidden:false,tags:["cat.color","wcag2aa","wcag143","TTv5","TT13.c","EN-301-549","EN-9.1.4.3","ACT","RGAAv4","RGAA-3.2.1"],actIds:["afw4f7","09o5cg"],all:[],any:[{options:{ignoreUnicode:true,ignoreLength:false,ignorePseudo:false,boldValue:700,boldTextPt:14,largeTextPt:18,contrastRatio:{normal:{expected:4.5},large:{expected:3}},pseudoSizeThreshold:.25,shadowOutlineEmMax:.2,textStrokeEmMin:.03},id:"color-contrast"}],none:[]},{id:"css-orientation-lock",impact:"serious",selector:"html:not(html *)",tags:["cat.structure","wcag134","wcag21aa","EN-301-549","EN-9.1.3.4","RGAAv4","RGAA-13.9.1","experimental"],actIds:["b33eff"],all:[{options:{degreeThreshold:2},id:"css-orientation-lock"}],any:[],none:[],preload:true},{id:"definition-list",impact:"serious",selector:"dl",matches:"no-role-matches",tags:["cat.structure","wcag2a","wcag131","EN-301-549","EN-9.1.3.1","RGAAv4","RGAA-9.3.3"],all:[],any:[],none:["structured-dlitems",{options:{validRoles:["definition","term","listitem"],validNodeNames:["dt","dd"],divGroups:true},id:"only-dlitems"}]},{id:"dlitem",impact:"serious",selector:"dd, dt",matches:"no-role-matches",tags:["cat.structure","wcag2a","wcag131","EN-301-549","EN-9.1.3.1","RGAAv4","RGAA-9.3.3"],all:[],any:["dlitem"],none:[]},{id:"document-title",impact:"serious",selector:"html:not(html *)",matches:"is-initiator-matches",tags:["cat.text-alternatives","wcag2a","wcag242","TTv5","TT12.a","EN-301-549","EN-9.2.4.2","ACT","RGAAv4","RGAA-8.5.1"],actIds:["2779a5"],all:[],any:["doc-has-title"],none:[]},{id:"duplicate-id-active",impact:"serious",selector:"[id]",matches:"duplicate-id-active-matches",excludeHidden:false,tags:["cat.parsing","wcag2a-obsolete","wcag411","deprecated"],enabled:false,actIds:["3ea0c8"],all:[],any:["duplicate-id-active"],none:[]},{id:"duplicate-id-aria",impact:"critical",selector:"[id]",matches:"duplicate-id-aria-matches",excludeHidden:false,tags:["cat.parsing","wcag2a","wcag412","EN-301-549","EN-9.4.1.2","RGAAv4","RGAA-8.2.1"],reviewOnFail:true,actIds:["3ea0c8"],all:[],any:["duplicate-id-aria"],none:[]},{id:"duplicate-id",impact:"minor",selector:"[id]",matches:"duplicate-id-misc-matches",excludeHidden:false,tags:["cat.parsing","wcag2a-obsolete","wcag411","deprecated"],enabled:false,actIds:["3ea0c8"],all:[],any:["duplicate-id"],none:[]},{id:"empty-heading",impact:"minor",selector:'h1, h2, h3, h4, h5, h6, [role="heading"]',matches:"heading-matches",tags:["cat.name-role-value","best-practice"],actIds:["ffd0e9"],all:[],any:["has-visible-text","aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:[]},{id:"empty-table-header",impact:"minor",selector:'th:not([role]), [role="rowheader"], [role="columnheader"]',tags:["cat.name-role-value","best-practice"],all:[],any:["has-visible-text"],none:[]},{id:"focus-order-semantics",impact:"minor",selector:"div, h1, h2, h3, h4, h5, h6, [role=heading], p, span",matches:"inserted-into-focus-order-matches",tags:["cat.keyboard","best-practice","RGAAv4","RGAA-12.8.1","experimental"],all:[],any:[{options:[],id:"has-widget-role"},{options:{roles:["tooltip"]},id:"valid-scrollable-semantics"}],none:[]},{id:"form-field-multiple-labels",impact:"moderate",selector:"input, select, textarea",matches:"label-matches",tags:["cat.forms","wcag2a","wcag332","TTv5","TT5.c","EN-301-549","EN-9.3.3.2","RGAAv4","RGAA-11.2.1"],all:[],any:[],none:["multiple-label"]},{id:"frame-focusable-content",impact:"serious",selector:"html:not(html *)",matches:"frame-focusable-content-matches",tags:["cat.keyboard","wcag2a","wcag211","TTv5","TT4.a","EN-301-549","EN-9.2.1.1","RGAAv4","RGAA-7.3.2"],actIds:["akn7bn"],all:[],any:["frame-focusable-content"],none:[]},{id:"frame-tested",impact:"critical",selector:"html:not(html *), frame, iframe",tags:["cat.structure","best-practice","review-item"],all:[{options:{isViolation:false},id:"frame-tested"}],any:[],none:[]},{id:"frame-title-unique",impact:"serious",selector:"frame[title], iframe[title]",matches:"frame-title-has-text-matches",tags:["cat.text-alternatives","wcag2a","wcag412","TTv5","TT12.d","EN-301-549","EN-9.4.1.2","RGAAv4","RGAA-2.2.1"],actIds:["4b1c6c"],all:[],any:[],none:["unique-frame-title"],reviewOnFail:true},{id:"frame-title",impact:"serious",selector:"frame, iframe",matches:"no-negative-tabindex-matches",tags:["cat.text-alternatives","wcag2a","wcag412","section508","section508.22.i","TTv5","TT12.d","EN-301-549","EN-9.4.1.2","RGAAv4","RGAA-2.1.1"],actIds:["cae760"],all:[],any:[{options:{attribute:"title"},id:"non-empty-title"},"aria-label","aria-labelledby","presentational-role"],none:[]},{id:"heading-order",impact:"moderate",selector:"h1, h2, h3, h4, h5, h6, [role=heading]",matches:"heading-matches",tags:["cat.semantics","best-practice"],all:[],any:["heading-order"],none:[]},{id:"hidden-content",impact:"minor",selector:"*",excludeHidden:false,tags:["cat.structure","best-practice","experimental","review-item"],all:[],any:["hidden-content"],none:[]},{id:"html-has-lang",impact:"serious",selector:"html:not(html *)",matches:"is-initiator-matches",tags:["cat.language","wcag2a","wcag311","TTv5","TT11.a","EN-301-549","EN-9.3.1.1","ACT","RGAAv4","RGAA-8.3.1"],actIds:["b5c3f8"],all:[],any:[{options:{attributes:["lang","xml:lang"]},id:"has-lang"}],none:[]},{id:"html-lang-valid",impact:"serious",selector:'html[lang]:not([lang=""]):not(html *), html[xml\\:lang]:not([xml\\:lang=""]):not(html *)',tags:["cat.language","wcag2a","wcag311","TTv5","TT11.a","EN-301-549","EN-9.3.1.1","ACT","RGAAv4","RGAA-8.4.1"],actIds:["bf051a"],all:[],any:[],none:[{options:{attributes:["lang","xml:lang"]},id:"valid-lang"}]},{id:"html-xml-lang-mismatch",impact:"moderate",selector:"html[lang][xml\\:lang]:not(html *)",matches:"xml-lang-mismatch-matches",tags:["cat.language","wcag2a","wcag311","EN-301-549","EN-9.3.1.1","ACT","RGAAv4","RGAA-8.3.1"],actIds:["5b7ae0"],all:["xml-lang-mismatch"],any:[],none:[]},{id:"identical-links-same-purpose",impact:"minor",selector:'a[href], area[href], [role="link"]',excludeHidden:false,enabled:false,matches:"identical-links-same-purpose-matches",tags:["cat.semantics","wcag2aaa","wcag249"],actIds:["b20e66"],all:["identical-links-same-purpose"],any:[],none:[]},{id:"image-alt",impact:"critical",selector:"img",matches:"no-explicit-name-required-matches",tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a","TTv5","TT7.a","TT7.b","EN-301-549","EN-9.1.1.1","ACT","RGAAv4","RGAA-1.1.1"],actIds:["23a2a8"],all:[],any:["has-alt","aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"},"presentational-role"],none:["alt-space-value"]},{id:"image-redundant-alt",impact:"minor",selector:"img",tags:["cat.text-alternatives","best-practice"],all:[],any:[],none:[{options:{parentSelector:"button, [role=button], a[href], p, li, td, th"},id:"duplicate-img-label"}]},{id:"input-button-name",impact:"critical",selector:'input[type="button"], input[type="submit"], input[type="reset"]',matches:"no-explicit-name-required-matches",tags:["cat.name-role-value","wcag2a","wcag412","section508","section508.22.a","TTv5","TT5.c","EN-301-549","EN-9.4.1.2","ACT","RGAAv4","RGAA-11.9.1"],actIds:["97a4e1"],all:[],any:["non-empty-if-present",{options:{attribute:"value"},id:"non-empty-value"},"aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"},"implicit-label","explicit-label","presentational-role"],none:[]},{id:"input-image-alt",impact:"critical",selector:'input[type="image"]',matches:"no-explicit-name-required-matches",tags:["cat.text-alternatives","wcag2a","wcag111","wcag412","section508","section508.22.a","TTv5","TT7.a","EN-301-549","EN-9.1.1.1","EN-9.4.1.2","ACT","RGAAv4","RGAA-1.1.3"],actIds:["59796f"],all:[],any:[{options:{attribute:"alt"},id:"non-empty-alt"},"aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"},"implicit-label","explicit-label"],none:[]},{id:"label-content-name-mismatch",impact:"serious",matches:"label-content-name-mismatch-matches",tags:["cat.semantics","wcag21a","wcag253","EN-301-549","EN-9.2.5.3","RGAAv4","RGAA-6.1.5","experimental"],actIds:["2ee8b8"],all:[],any:[{options:{pixelThreshold:.1,occurrenceThreshold:3},id:"label-content-name-mismatch"}],none:[]},{id:"label-title-only",impact:"serious",selector:"input, select, textarea",matches:"label-matches",tags:["cat.forms","best-practice"],all:[],any:[],none:["title-only"]},{id:"label",impact:"critical",selector:"input, textarea",matches:"label-matches",tags:["cat.forms","wcag2a","wcag412","section508","section508.22.n","TTv5","TT5.c","EN-301-549","EN-9.4.1.2","ACT","RGAAv4","RGAA-11.1.1"],actIds:["e086e5"],all:[],any:["implicit-label","explicit-label","aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"},{options:{attribute:"placeholder"},id:"non-empty-placeholder"},"presentational-role"],none:["hidden-explicit-label"]},{id:"landmark-banner-is-top-level",impact:"moderate",selector:"header:not([role]), [role=banner]",matches:"landmark-has-body-context-matches",tags:["cat.semantics","best-practice"],all:[],any:["landmark-is-top-level"],none:[]},{id:"landmark-complementary-is-top-level",impact:"moderate",selector:"aside:not([role]), [role=complementary]",tags:["cat.semantics","best-practice"],all:[],any:["landmark-is-top-level"],none:[]},{id:"landmark-contentinfo-is-top-level",impact:"moderate",selector:"footer:not([role]), [role=contentinfo]",matches:"landmark-has-body-context-matches",tags:["cat.semantics","best-practice"],all:[],any:["landmark-is-top-level"],none:[]},{id:"landmark-main-is-top-level",impact:"moderate",selector:"main:not([role]), [role=main]",tags:["cat.semantics","best-practice"],all:[],any:["landmark-is-top-level"],none:[]},{id:"landmark-no-duplicate-banner",impact:"moderate",selector:"header:not([role]), [role=banner]",tags:["cat.semantics","best-practice"],all:[],any:[{options:{selector:"header:not([role]), [role=banner]",role:"banner"},id:"page-no-duplicate-banner"}],none:[]},{id:"landmark-no-duplicate-contentinfo",impact:"moderate",selector:"footer:not([role]), [role=contentinfo]",tags:["cat.semantics","best-practice"],all:[],any:[{options:{selector:"footer:not([role]), [role=contentinfo]",role:"contentinfo"},id:"page-no-duplicate-contentinfo"}],none:[]},{id:"landmark-no-duplicate-main",impact:"moderate",selector:"main:not([role]), [role=main]",tags:["cat.semantics","best-practice"],all:[],any:[{options:{selector:"main:not([role]), [role='main']"},id:"page-no-duplicate-main"}],none:[]},{id:"landmark-one-main",impact:"moderate",selector:"html:not(html *)",tags:["cat.semantics","best-practice"],all:[{options:{selector:"main:not([role]), [role='main']",passForModal:true},id:"page-has-main"}],any:[],none:[]},{id:"landmark-unique",impact:"moderate",selector:"[role=banner], [role=complementary], [role=contentinfo], [role=main], [role=navigation], [role=region], [role=search], [role=form], form, footer, header, aside, main, nav, section",tags:["cat.semantics","best-practice"],matches:"landmark-unique-matches",all:[],any:["landmark-is-unique"],none:[]},{id:"link-in-text-block",impact:"serious",selector:"a[href], [role=link]",matches:"link-in-text-block-matches",excludeHidden:false,tags:["cat.color","wcag2a","wcag141","TTv5","TT13.a","EN-301-549","EN-9.1.4.1","RGAAv4","RGAA-10.6.1"],all:[],any:[{options:{requiredContrastRatio:3,allowSameColor:true},id:"link-in-text-block"},"link-in-text-block-style"],none:[]},{id:"link-name",impact:"serious",selector:"a[href]",tags:["cat.name-role-value","wcag2a","wcag244","wcag412","section508","section508.22.a","TTv5","TT6.a","EN-301-549","EN-9.2.4.4","EN-9.4.1.2","ACT","RGAAv4","RGAA-6.2.1"],actIds:["c487ae"],all:[],any:["has-visible-text","aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:["focusable-no-name"]},{id:"list",impact:"serious",selector:"ul, ol",matches:"no-role-matches",tags:["cat.structure","wcag2a","wcag131","EN-301-549","EN-9.1.3.1","RGAAv4","RGAA-9.3.1"],all:[],any:[],none:[{options:{validRoles:["listitem"],validNodeNames:["li"]},id:"only-listitems"}]},{id:"listitem",impact:"serious",selector:"li",matches:"no-role-matches",tags:["cat.structure","wcag2a","wcag131","EN-301-549","EN-9.1.3.1","RGAAv4","RGAA-9.3.1"],all:[],any:["listitem"],none:[]},{id:"marquee",impact:"serious",selector:"marquee",excludeHidden:false,tags:["cat.parsing","wcag2a","wcag222","TTv5","TT2.b","EN-301-549","EN-9.2.2.2","RGAAv4","RGAA-13.8.1"],all:[],any:[],none:["is-on-screen"]},{id:"meta-refresh-no-exceptions",impact:"minor",selector:'meta[http-equiv="refresh"][content]',excludeHidden:false,enabled:false,tags:["cat.time-and-media","wcag2aaa","wcag224","wcag325"],actIds:["bisz58"],all:[],any:[{options:{minDelay:72e3,maxDelay:false},id:"meta-refresh-no-exceptions"}],none:[]},{id:"meta-refresh",impact:"critical",selector:'meta[http-equiv="refresh"][content]',excludeHidden:false,tags:["cat.time-and-media","wcag2a","wcag221","TTv5","TT8.a","EN-301-549","EN-9.2.2.1","RGAAv4","RGAA-13.1.2"],actIds:["bc659a","bisz58"],all:[],any:[{options:{minDelay:0,maxDelay:72e3},id:"meta-refresh"}],none:[]},{id:"meta-viewport-large",impact:"minor",selector:'meta[name="viewport"]',matches:"is-initiator-matches",excludeHidden:false,tags:["cat.sensory-and-visual-cues","best-practice"],all:[],any:[{options:{scaleMinimum:5,lowerBound:2},id:"meta-viewport-large"}],none:[]},{id:"meta-viewport",impact:"moderate",selector:'meta[name="viewport"]',matches:"is-initiator-matches",excludeHidden:false,tags:["cat.sensory-and-visual-cues","wcag2aa","wcag144","EN-301-549","EN-9.1.4.4","ACT","RGAAv4","RGAA-10.4.2"],actIds:["b4f0c3"],all:[],any:[{options:{scaleMinimum:2},id:"meta-viewport"}],none:[]},{id:"nested-interactive",impact:"serious",matches:"nested-interactive-matches",tags:["cat.keyboard","wcag2a","wcag412","TTv5","TT6.a","EN-301-549","EN-9.4.1.2","RGAAv4","RGAA-7.1.1"],actIds:["307n5z"],all:[],any:["no-focusable-content"],none:[]},{id:"no-autoplay-audio",impact:"moderate",excludeHidden:false,selector:"audio[autoplay], video[autoplay]",matches:"no-autoplay-audio-matches",reviewOnFail:true,tags:["cat.time-and-media","wcag2a","wcag142","TTv5","TT2.a","EN-301-549","EN-9.1.4.2","ACT","RGAAv4","RGAA-4.10.1"],actIds:["80f0bf"],preload:true,all:[{options:{allowedDuration:3},id:"no-autoplay-audio"}],any:[],none:[]},{id:"object-alt",impact:"serious",selector:"object[data]",matches:"object-is-loaded-matches",tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a","EN-301-549","EN-9.1.1.1","RGAAv4","RGAA-1.1.6"],actIds:["8fc3b6"],all:[],any:["aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"},"presentational-role"],none:[]},{id:"p-as-heading",impact:"serious",selector:"p",matches:"p-as-heading-matches",tags:["cat.semantics","wcag2a","wcag131","EN-301-549","EN-9.1.3.1","RGAAv4","RGAA-9.1.3","experimental"],all:[{options:{margins:[{weight:150,italic:true},{weight:150,size:1.15},{italic:true,size:1.15},{size:1.4}],passLength:1,failLength:.5},id:"p-as-heading"}],any:[],none:[]},{id:"page-has-heading-one",impact:"moderate",selector:"html:not(html *)",tags:["cat.semantics","best-practice"],all:[{options:{selector:"h1:not([role], [aria-level]), :is(h1, h2, h3, h4, h5, h6):not([role])[aria-level=1], [role=heading][aria-level=1]",passForModal:true},id:"page-has-heading-one"}],any:[],none:[]},{id:"presentation-role-conflict",impact:"minor",selector:`img[alt=''], [role="none"], [role="presentation"]`,matches:"has-implicit-chromium-role-matches",tags:["cat.aria","best-practice","ACT"],actIds:["46ca7f"],all:[],any:[],none:["is-element-focusable","has-global-aria-attribute"]},{id:"region",impact:"moderate",selector:"body *",tags:["cat.keyboard","best-practice","RGAAv4","RGAA-9.2.1"],all:[],any:[{options:{regionMatcher:"dialog, [role=dialog], [role=alertdialog], svg"},id:"region"}],none:[]},{id:"role-img-alt",impact:"serious",selector:"[role='img']:not(img, area, input, object)",matches:"html-namespace-matches",tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a","TTv5","TT7.a","EN-301-549","EN-9.1.1.1","ACT","RGAAv4","RGAA-1.1.1"],actIds:["23a2a8"],all:[],any:["aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:[]},{id:"scope-attr-valid",impact:"moderate",selector:"td[scope], th[scope]",tags:["cat.tables","best-practice"],all:["html5-scope",{options:{values:["row","col","rowgroup","colgroup"]},id:"scope-value"}],any:[],none:[]},{id:"scrollable-region-focusable",impact:"serious",selector:"*:not(select,textarea)",matches:"scrollable-region-focusable-matches",tags:["cat.keyboard","wcag2a","wcag211","wcag213","TTv5","TT4.a","EN-301-549","EN-9.2.1.1","EN-9.2.1.3","RGAAv4","RGAA-7.3.2"],actIds:["0ssw9k"],all:[],any:["focusable-content","focusable-element"],none:[]},{id:"select-name",impact:"critical",selector:"select",tags:["cat.forms","wcag2a","wcag412","section508","section508.22.n","TTv5","TT5.c","EN-301-549","EN-9.4.1.2","ACT","RGAAv4","RGAA-11.1.1"],actIds:["e086e5"],all:[],any:["implicit-label","explicit-label","aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"},"presentational-role"],none:["hidden-explicit-label"]},{id:"server-side-image-map",impact:"minor",selector:"img[ismap]",tags:["cat.text-alternatives","wcag2a","wcag211","section508","section508.22.f","TTv5","TT4.a","EN-301-549","EN-9.2.1.1","RGAAv4","RGAA-1.1.4"],all:[],any:[],none:["exists"]},{id:"skip-link",impact:"moderate",selector:'a[href^="#"], a[href^="/#"]',matches:"skip-link-matches",tags:["cat.keyboard","best-practice","RGAAv4","RGAA-12.7.1"],all:[],any:["skip-link"],none:[]},{id:"summary-name",impact:"serious",selector:"summary",matches:"summary-interactive-matches",tags:["cat.name-role-value","wcag2a","wcag412","section508","section508.22.a","TTv5","TT6.a","EN-301-549","EN-9.4.1.2"],all:[],any:["has-visible-text","aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:[]},{id:"svg-img-alt",impact:"serious",selector:'[role="img"], [role="graphics-symbol"], svg[role="graphics-document"]',matches:"svg-namespace-matches",tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a","TTv5","TT7.a","EN-301-549","EN-9.1.1.1","ACT","RGAAv4","RGAA-1.1.5"],actIds:["7d6734"],all:[],any:["svg-non-empty-title","aria-label","aria-labelledby",{options:{attribute:"title"},id:"non-empty-title"}],none:[]},{id:"tabindex",impact:"serious",selector:"[tabindex]",tags:["cat.keyboard","best-practice"],all:[],any:["tabindex"],none:[]},{id:"table-duplicate-name",impact:"minor",selector:"table",tags:["cat.tables","best-practice","RGAAv4","RGAA-5.2.1"],all:[],any:[],none:["same-caption-summary"]},{id:"table-fake-caption",impact:"serious",selector:"table",matches:"data-table-matches",tags:["cat.tables","experimental","wcag2a","wcag131","section508","section508.22.g","EN-301-549","EN-9.1.3.1","RGAAv4","RGAA-5.4.1"],all:["caption-faked"],any:[],none:[]},{id:"target-size",impact:"serious",selector:"*",enabled:false,matches:"widget-not-inline-matches",tags:["cat.sensory-and-visual-cues","wcag22aa","wcag258"],all:[],any:[{options:{minSize:24},id:"target-size"},{options:{minOffset:24},id:"target-offset"}],none:[]},{id:"td-has-header",impact:"critical",selector:"table",matches:"data-table-large-matches",tags:["cat.tables","experimental","wcag2a","wcag131","section508","section508.22.g","TTv5","TT14.b","EN-301-549","EN-9.1.3.1","RGAAv4","RGAA-5.7.4"],all:["td-has-header"],any:[],none:[]},{id:"td-headers-attr",impact:"serious",selector:"table",matches:"table-or-grid-role-matches",tags:["cat.tables","wcag2a","wcag131","section508","section508.22.g","TTv5","TT14.b","EN-301-549","EN-9.1.3.1","RGAAv4","RGAA-5.7.4"],actIds:["a25f45"],all:["td-headers-attr"],any:[],none:[]},{id:"th-has-data-cells",impact:"serious",selector:"table",matches:"data-table-matches",tags:["cat.tables","wcag2a","wcag131","section508","section508.22.g","TTv5","TT14.b","EN-301-549","EN-9.1.3.1","RGAAv4","RGAA-5.7.1"],actIds:["d0f69e"],all:["th-has-data-cells"],any:[],none:[]},{id:"valid-lang",impact:"serious",selector:"[lang]:not(html), [xml\\:lang]:not(html)",tags:["cat.language","wcag2aa","wcag312","TTv5","TT11.b","EN-301-549","EN-9.3.1.2","ACT","RGAAv4","RGAA-8.8.1"],actIds:["de46e4"],all:[],any:[],none:[{options:{attributes:["lang","xml:lang"]},id:"valid-lang"}]},{id:"video-caption",impact:"critical",selector:"video",tags:["cat.text-alternatives","wcag2a","wcag122","section508","section508.22.a","TTv5","TT17.a","EN-301-549","EN-9.1.2.2","RGAAv4","RGAA-4.3.1"],actIds:["eac66b"],all:[],any:[],none:["caption"]}],checks:[{id:"abstractrole",evaluate:"abstractrole-evaluate"},{id:"aria-allowed-attr-elm",evaluate:"aria-allowed-attr-elm-evaluate"},{id:"aria-allowed-attr",evaluate:"aria-allowed-attr-evaluate",options:{validTreeRowAttrs:["aria-posinset","aria-setsize","aria-expanded","aria-level"]}},{id:"aria-allowed-role",evaluate:"aria-allowed-role-evaluate",options:{allowImplicit:true,ignoredTags:[]}},{id:"aria-busy",evaluate:"aria-busy-evaluate",deprecated:true},{id:"aria-conditional-attr",evaluate:"aria-conditional-attr-evaluate",options:{invalidTableRowAttrs:["aria-posinset","aria-setsize","aria-expanded","aria-level"]}},{id:"aria-errormessage",evaluate:"aria-errormessage-evaluate"},{id:"aria-hidden-body",evaluate:"aria-hidden-body-evaluate"},{id:"aria-level",evaluate:"aria-level-evaluate"},{id:"aria-prohibited-attr",evaluate:"aria-prohibited-attr-evaluate",options:{elementsAllowedAriaLabel:["applet","input"]}},{id:"aria-required-attr",evaluate:"aria-required-attr-evaluate"},{id:"aria-required-children",evaluate:"aria-required-children-evaluate",options:{reviewEmpty:["doc-bibliography","doc-endnotes","grid","list","listbox","menu","menubar","table","tablist","tree","treegrid","rowgroup"]}},{id:"aria-required-parent",evaluate:"aria-required-parent-evaluate",options:{ownGroupRoles:["listitem","treeitem"]}},{id:"aria-roledescription",evaluate:"aria-roledescription-evaluate",options:{supportedRoles:["button","img","checkbox","radio","combobox","menuitemcheckbox","menuitemradio"]}},{id:"aria-unsupported-attr",evaluate:"aria-unsupported-attr-evaluate"},{id:"aria-valid-attr-value",evaluate:"aria-valid-attr-value-evaluate",options:[]},{id:"aria-valid-attr",evaluate:"aria-valid-attr-evaluate",options:[]},{id:"braille-label-equivalent",evaluate:"braille-label-equivalent-evaluate"},{id:"braille-roledescription-equivalent",evaluate:"braille-roledescription-equivalent-evaluate"},{id:"deprecatedrole",evaluate:"deprecatedrole-evaluate"},{id:"fallbackrole",evaluate:"fallbackrole-evaluate"},{id:"has-global-aria-attribute",evaluate:"has-global-aria-attribute-evaluate"},{id:"has-widget-role",evaluate:"has-widget-role-evaluate",options:[]},{id:"invalidrole",evaluate:"invalidrole-evaluate"},{id:"is-element-focusable",evaluate:"is-element-focusable-evaluate"},{id:"no-implicit-explicit-label",evaluate:"no-implicit-explicit-label-evaluate"},{id:"unsupportedrole",evaluate:"unsupportedrole-evaluate"},{id:"valid-scrollable-semantics",evaluate:"valid-scrollable-semantics-evaluate",options:{roles:["tooltip"]}},{id:"color-contrast-enhanced",evaluate:"color-contrast-evaluate",options:{ignoreUnicode:true,ignoreLength:false,ignorePseudo:false,boldValue:700,boldTextPt:14,largeTextPt:18,contrastRatio:{normal:{expected:7,minThreshold:4.5},large:{expected:4.5,minThreshold:3}},pseudoSizeThreshold:.25,shadowOutlineEmMax:.1,textStrokeEmMin:.03}},{id:"color-contrast",evaluate:"color-contrast-evaluate",options:{ignoreUnicode:true,ignoreLength:false,ignorePseudo:false,boldValue:700,boldTextPt:14,largeTextPt:18,contrastRatio:{normal:{expected:4.5},large:{expected:3}},pseudoSizeThreshold:.25,shadowOutlineEmMax:.2,textStrokeEmMin:.03}},{id:"link-in-text-block-style",evaluate:"link-in-text-block-style-evaluate"},{id:"link-in-text-block",evaluate:"link-in-text-block-evaluate",options:{requiredContrastRatio:3,allowSameColor:true}},{id:"autocomplete-appropriate",evaluate:"autocomplete-appropriate-evaluate",deprecated:true},{id:"autocomplete-valid",evaluate:"autocomplete-valid-evaluate",options:{stateTerms:["none","false","true","disabled","enabled","undefined","null","xoff","xon"],ignoredValues:["text","pronouns","gender","message","content"]}},{id:"accesskeys",evaluate:"accesskeys-evaluate",after:"accesskeys-after"},{id:"focusable-content",evaluate:"focusable-content-evaluate"},{id:"focusable-disabled",evaluate:"focusable-disabled-evaluate"},{id:"focusable-element",evaluate:"focusable-element-evaluate"},{id:"focusable-modal-open",evaluate:"focusable-modal-open-evaluate"},{id:"focusable-no-name",evaluate:"focusable-no-name-evaluate"},{id:"focusable-not-tabbable",evaluate:"focusable-not-tabbable-evaluate"},{id:"frame-focusable-content",evaluate:"frame-focusable-content-evaluate"},{id:"landmark-is-top-level",evaluate:"landmark-is-top-level-evaluate"},{id:"no-focusable-content",evaluate:"no-focusable-content-evaluate"},{id:"page-has-heading-one",evaluate:"has-descendant-evaluate",after:"has-descendant-after",options:{selector:"h1:not([role], [aria-level]), :is(h1, h2, h3, h4, h5, h6):not([role])[aria-level=1], [role=heading][aria-level=1]",passForModal:true}},{id:"page-has-main",evaluate:"has-descendant-evaluate",after:"has-descendant-after",options:{selector:"main:not([role]), [role='main']",passForModal:true}},{id:"page-no-duplicate-banner",evaluate:"page-no-duplicate-evaluate",after:"page-no-duplicate-after",options:{selector:"header:not([role]), [role=banner]",role:"banner"}},{id:"page-no-duplicate-contentinfo",evaluate:"page-no-duplicate-evaluate",after:"page-no-duplicate-after",options:{selector:"footer:not([role]), [role=contentinfo]",role:"contentinfo"}},{id:"page-no-duplicate-main",evaluate:"page-no-duplicate-evaluate",after:"page-no-duplicate-after",options:{selector:"main:not([role]), [role='main']"}},{id:"tabindex",evaluate:"tabindex-evaluate"},{id:"alt-space-value",evaluate:"alt-space-value-evaluate"},{id:"duplicate-img-label",evaluate:"duplicate-img-label-evaluate",options:{parentSelector:"button, [role=button], a[href], p, li, td, th"}},{id:"explicit-label",evaluate:"explicit-evaluate"},{id:"help-same-as-label",evaluate:"help-same-as-label-evaluate"},{id:"hidden-explicit-label",evaluate:"hidden-explicit-label-evaluate"},{id:"implicit-label",evaluate:"implicit-evaluate"},{id:"label-content-name-mismatch",evaluate:"label-content-name-mismatch-evaluate",options:{pixelThreshold:.1,occurrenceThreshold:3}},{id:"multiple-label",evaluate:"multiple-label-evaluate"},{id:"title-only",evaluate:"title-only-evaluate"},{id:"landmark-is-unique",evaluate:"landmark-is-unique-evaluate",after:"landmark-is-unique-after"},{id:"has-lang",evaluate:"has-lang-evaluate",options:{attributes:["lang","xml:lang"]}},{id:"valid-lang",evaluate:"valid-lang-evaluate",options:{attributes:["lang","xml:lang"]}},{id:"xml-lang-mismatch",evaluate:"xml-lang-mismatch-evaluate"},{id:"dlitem",evaluate:"dlitem-evaluate"},{id:"listitem",evaluate:"listitem-evaluate"},{id:"only-dlitems",evaluate:"invalid-children-evaluate",options:{validRoles:["definition","term","listitem"],validNodeNames:["dt","dd"],divGroups:true}},{id:"only-listitems",evaluate:"invalid-children-evaluate",options:{validRoles:["listitem"],validNodeNames:["li"]}},{id:"structured-dlitems",evaluate:"structured-dlitems-evaluate"},{id:"caption",evaluate:"caption-evaluate"},{id:"frame-tested",evaluate:"frame-tested-evaluate",after:"frame-tested-after",options:{isViolation:false}},{id:"no-autoplay-audio",evaluate:"no-autoplay-audio-evaluate",options:{allowedDuration:3}},{id:"css-orientation-lock",evaluate:"css-orientation-lock-evaluate",options:{degreeThreshold:2}},{id:"meta-viewport-large",evaluate:"meta-viewport-scale-evaluate",options:{scaleMinimum:5,lowerBound:2}},{id:"meta-viewport",evaluate:"meta-viewport-scale-evaluate",options:{scaleMinimum:2}},{id:"target-offset",evaluate:"target-offset-evaluate",options:{minOffset:24}},{id:"target-size",evaluate:"target-size-evaluate",options:{minSize:24}},{id:"header-present",evaluate:"has-descendant-evaluate",after:"has-descendant-after",options:{selector:":is(h1, h2, h3, h4, h5, h6):not([role]), [role=heading]"}},{id:"heading-order",evaluate:"heading-order-evaluate",after:"heading-order-after"},{id:"identical-links-same-purpose",evaluate:"identical-links-same-purpose-evaluate",after:"identical-links-same-purpose-after"},{id:"internal-link-present",evaluate:"internal-link-present-evaluate"},{id:"landmark",evaluate:"has-descendant-evaluate",options:{selector:"main, [role=main]"}},{id:"meta-refresh-no-exceptions",evaluate:"meta-refresh-evaluate",options:{minDelay:72e3,maxDelay:false}},{id:"meta-refresh",evaluate:"meta-refresh-evaluate",options:{minDelay:0,maxDelay:72e3}},{id:"p-as-heading",evaluate:"p-as-heading-evaluate",options:{margins:[{weight:150,italic:true},{weight:150,size:1.15},{italic:true,size:1.15},{size:1.4}],passLength:1,failLength:.5}},{id:"region",evaluate:"region-evaluate",after:"region-after",options:{regionMatcher:"dialog, [role=dialog], [role=alertdialog], svg"}},{id:"skip-link",evaluate:"skip-link-evaluate"},{id:"unique-frame-title",evaluate:"unique-frame-title-evaluate",after:"unique-frame-title-after"},{id:"duplicate-id-active",evaluate:"duplicate-id-evaluate",after:"duplicate-id-after"},{id:"duplicate-id-aria",evaluate:"duplicate-id-evaluate",after:"duplicate-id-after"},{id:"duplicate-id",evaluate:"duplicate-id-evaluate",after:"duplicate-id-after"},{id:"aria-label",evaluate:"aria-label-evaluate"},{id:"aria-labelledby",evaluate:"aria-labelledby-evaluate"},{id:"avoid-inline-spacing",evaluate:"avoid-inline-spacing-evaluate",options:{cssProperties:["line-height","letter-spacing","word-spacing"]}},{id:"button-has-visible-text",evaluate:"has-text-content-evaluate"},{id:"doc-has-title",evaluate:"doc-has-title-evaluate"},{id:"error-occurred",evaluate:"exists-evaluate"},{id:"exists",evaluate:"exists-evaluate"},{id:"has-alt",evaluate:"has-alt-evaluate"},{id:"has-visible-text",evaluate:"has-text-content-evaluate"},{id:"important-letter-spacing",evaluate:"inline-style-property-evaluate",options:{cssProperty:"letter-spacing",minValue:.12}},{id:"important-line-height",evaluate:"inline-style-property-evaluate",options:{multiLineOnly:true,cssProperty:"line-height",minValue:1.5,normalValue:1}},{id:"important-word-spacing",evaluate:"inline-style-property-evaluate",options:{cssProperty:"word-spacing",minValue:.16}},{id:"is-on-screen",evaluate:"is-on-screen-evaluate"},{id:"non-empty-alt",evaluate:"attr-non-space-content-evaluate",options:{attribute:"alt"}},{id:"non-empty-if-present",evaluate:"non-empty-if-present-evaluate"},{id:"non-empty-placeholder",evaluate:"attr-non-space-content-evaluate",options:{attribute:"placeholder"}},{id:"non-empty-title",evaluate:"attr-non-space-content-evaluate",options:{attribute:"title"}},{id:"non-empty-value",evaluate:"attr-non-space-content-evaluate",options:{attribute:"value"}},{id:"presentational-role",evaluate:"presentational-role-evaluate"},{id:"role-none",evaluate:"matches-definition-evaluate",deprecated:true,options:{matcher:{attributes:{role:"none"}}}},{id:"role-presentation",evaluate:"matches-definition-evaluate",deprecated:true,options:{matcher:{attributes:{role:"presentation"}}}},{id:"svg-non-empty-title",evaluate:"svg-non-empty-title-evaluate"},{id:"caption-faked",evaluate:"caption-faked-evaluate"},{id:"html5-scope",evaluate:"html5-scope-evaluate"},{id:"same-caption-summary",evaluate:"same-caption-summary-evaluate"},{id:"scope-value",evaluate:"scope-value-evaluate",options:{values:["row","col","rowgroup","colgroup"]}},{id:"td-has-header",evaluate:"td-has-header-evaluate"},{id:"td-headers-attr",evaluate:"td-headers-attr-evaluate"},{id:"th-has-data-cells",evaluate:"th-has-data-cells-evaluate"},{id:"hidden-content",evaluate:"hidden-content-evaluate"}]});})(typeof window=="object"?window:Wg);});var Dv={};Tr(Dv,{dismissModals:()=>xv});async function xv(d){await d.evaluate(f=>{for(let h of f){let m=document.querySelectorAll(h);for(let p of m)if(p.offsetParent!==null){p.click();return}}},HL),await new Promise(f=>setTimeout(f,500));}var HL,sc=kr(()=>{HL=['[class*="cookie"] button[class*="accept"]','[class*="cookie"] button[class*="agree"]','[class*="consent"] button[class*="accept"]','[class*="consent"] button[class*="agree"]','[id*="cookie"] button','[id*="consent"] button',".cc-dismiss",".cc-allow",".cc-btn",'[class*="gdpr"] button[class*="accept"]','[aria-label*="cookie" i] button','[aria-label*="consent" i] button','button[class*="close-banner"]','[class*="popup"] [class*="close"]','[class*="overlay"] [class*="close"]','[class*="modal"] [class*="close"]','[class*="notification"] [class*="close"]','button[aria-label="Close"]','button[aria-label="Dismiss"]'];});var ts={};Tr(ts,{pruneHiddenIframeIssues:()=>zL,pruneInvisibleContrast:()=>jL,waitForRenderSettle:()=>VL});async function VL(d,f=4e3){let h=Date.now()+f;try{await d.waitForLoadState?.("load",{timeout:Math.min(f/2,2e3)});}catch{}let m="";for(;Date.now()<h;){let p;try{p=await d.evaluate(()=>{let b=typeof document.getAnimations=="function"?document.getAnimations():[],A=0;for(let D of b){if(D.playState!=="running")continue;let w;try{w=D.effect?.getComputedTiming?.().iterations;}catch{w=void 0;}w!==1/0&&A++;}let x="",T=document.body?document.body.querySelectorAll('[style*="opacity"]'):[],k=Math.min(T.length,50);for(let D=0;D<k;D++)x+=getComputedStyle(T[D]).opacity+",";return A+"|"+x});}catch{return}if(p.indexOf("0|")===0&&p===m)return;m=p,await new Promise(b=>setTimeout(b,150));}}function Av(d){return $L.has(d.wcag)||/contrast/i.test(d.type||"")}async function jL(d,f){let h=Array.from(new Set(f.filter(A=>Av(A)&&A.selector).map(A=>A.selector))).slice(0,100);if(h.length===0)return f;let m;try{m=await d.evaluate(A=>{let x=[],T={},k=Math.max(document.documentElement.scrollWidth,window.innerWidth),D=Math.max(document.documentElement.scrollHeight,window.innerHeight),w=C=>{let E=C.match(/rgba?\(([^)]+)\)/);if(!E)return !1;let L=E[1].split(/[ ,/]+/).filter(Boolean);return L.length<4||parseFloat(L[3])>=.95};for(let C of A){let E=null;try{E=document.querySelector(C);}catch{continue}if(!E)continue;let L=getComputedStyle(E),I=E.getBoundingClientRect(),N=L.clipPath&&L.clipPath!=="none"&&/inset\(\s*(?:50|100)%/.test(L.clipPath)||/rect\(\s*0(?:px)?\s*,?\s*0(?:px)?\s*,?\s*0(?:px)?\s*,?\s*0(?:px)?\s*\)/.test(L.clip||""),q=I.width<=1||I.height<=1,H=window.scrollX,$=window.scrollY,U=I.right+H<=0||I.bottom+$<=0||I.left+H>=k||I.top+$>=D,K=!1;if(U)for(let z=E.parentElement;z&&z!==document.body&&z!==document.documentElement;z=z.parentElement){let X=getComputedStyle(z);if(X.overflowX!=="visible"||X.overflowY!=="visible"||X.transform&&X.transform!=="none"){K=!0;break}}if(N||q||I.right+H<=0||I.bottom+$<=0||U&&!K){x.push(C);continue}let R=E,v=!1;for(;R&&R!==document.documentElement;){if(parseFloat(getComputedStyle(R).opacity)===0){v=!0;break}R=R.parentElement;}if(v){T[C]="text is inside an opacity:0 element (hidden slide or pre-animation state) \u2014 check contrast in the state where it is shown";continue}let _=I.left+I.width/2,F=I.top+I.height/2,P=E,B=!1;for(let z=0;P&&P!==document.body&&z<8;z++){let X=getComputedStyle(P);if(w(X.backgroundColor)||X.backgroundImage&&X.backgroundImage!=="none")break;let te=P.querySelectorAll("video, canvas, img, picture");for(let ee=0;ee<te.length;ee++){let Z=te[ee];if(Z.contains(E)||E.contains(Z))continue;let ie=Z.getBoundingClientRect();if(ie.width>0&&ie.height>0&&_>=ie.left&&_<=ie.right&&F>=ie.top&&F<=ie.bottom){B=!0;break}}if(B)break;P=P.parentElement;}B&&(T[C]="text sits over a video or image \u2014 the background behind the glyphs cannot be measured from CSS");}return {hidden:x,review:T}},h);}catch{return f}let p=new Set(m.hidden),b=[];for(let A of f){if(!Av(A)){b.push(A);continue}if(p.has(A.selector))continue;let x=m.review[A.selector];b.push(x&&A.confidence!=="needs_review"?{...A,confidence:"needs_review",reviewReason:x,...A.fix?{fix:{...A.fix,needsManualReview:true}}:{}}:A);}return b}async function zL(d,f){let h=Array.from(new Set(f.filter(b=>b.selector).map(b=>b.selector))).slice(0,200);if(h.length===0)return f;let m;try{m=await d.evaluate(b=>{let A=[];for(let x of b){let T=null;try{T=document.querySelector(x);}catch{continue}if(!T||T.tagName!=="IFRAME")continue;let k=getComputedStyle(T),D=T.getClientRects().length===0||k.visibility==="hidden"||k.visibility==="collapse",w=(T.getAttribute("src")||"").trim().toLowerCase().indexOf("javascript:")===0;(D||w)&&A.push(x);}return A},h);}catch{return f}if(m.length===0)return f;let p=new Set(m);return f.filter(b=>!p.has(b.selector))}var $L,rs=kr(()=>{$L=new Set(["1.4.3","1.4.6","1.4.11"]);});var ns={};Tr(ns,{focusOnlyObscuredIndexes:()=>JL,resetInteractionState:()=>GL,restoreInteractionState:()=>WL,snapshotInteractionState:()=>UL});async function GL(d){try{await d.evaluate(()=>{try{document.activeElement?.blur?.();}catch{}try{window.scrollTo({left:0,top:0,behavior:"instant"});}catch{}});}catch{}}async function UL(d){try{await d.evaluate(()=>{let f=window;f.__waCallerState={el:document.activeElement,x:window.scrollX,y:window.scrollY};});}catch{}}async function WL(d){try{await d.evaluate(()=>{let f=window,h=f.__waCallerState;if(delete f.__waCallerState,!h)return;let m=h.el;if(m&&m!==document.body&&m!==document.documentElement&&m.isConnected)try{m.focus({preventScroll:!0});}catch{}try{window.scrollTo({left:h.x,top:h.y,behavior:"instant"});}catch{}});}catch{}}function XL(d){if(typeof d=="string")return d;if(!Array.isArray(d))return null;let f=d.flat(1/0).filter(h=>typeof h=="string");return f.length===1?f[0]:null}async function JL(d,f){let h=f.map(A=>{let T=[...A.any??[],...A.none??[]].flatMap(D=>D.relatedNodes??[]);if(!T.length)return null;let k=T.map(D=>XL(D.target));return k.every(D=>!!D)?k:null}),m=Array.from(new Set(h.flatMap(A=>A??[])));if(!m.length)return new Set;let p={};try{p=await d.evaluate(({sels:A,own:x})=>{let T=D=>{let w=D.getBoundingClientRect(),C=getComputedStyle(D);return !!((w.width<=1||w.height<=1)&&(C.overflow==="hidden"||C.position==="absolute"||C.position==="fixed")||/^rect\(\s*0(px)?[\s,]+0(px)?[\s,]+0(px)?[\s,]+0(px)?\s*\)$/.test(C.clip||"")||/inset\(\s*50%/.test(C.clipPath||""))},k={};for(let D of A){let w=null;try{w=document.querySelector(D);}catch{w=null;}if(!w){k[D]=!1;continue}let C=w.closest(x);if(C&&C!==document.body&&C!==document.documentElement){k[D]=!0;continue}if(w===document.activeElement){try{w.blur();}catch{}k[D]=T(w);continue}k[D]=T(w);}return k},{sels:m,own:Yo});}catch{return new Set}let b=new Set;return h.forEach((A,x)=>{A&&A.length&&A.every(T=>p[T]===true)&&b.add(x);}),b}var as=kr(()=>{Vr();});var ua={};Tr(ua,{dedupeByElementIdentity:()=>eP,deduplicateIssues:()=>YL});function YL(d){let f=new Map,h=[...d].sort((m,p)=>{let b={webability:0,"axe-core":1,"deep-analysis":2},A=b[m.source]??3,x=b[p.source]??3;return A-x});for(let m of h){let p=KL(m);f.has(p)?!f.get(p).fix?.suggestedValue&&m.fix?.suggestedValue&&f.set(p,m):f.set(p,m);}return Array.from(f.values())}function KL(d){let f=d.selector.replace(/:focus-visible$/,"").replace(/:focus$/,"").replace(/\[data-[^\]]+\]/g,"").trim(),h=d.wcag||"";return f&&h?`${f}::${h}`:`${d.type}::${f||d.id}`}async function eP(d,f){if(f.length<2)return f;let h=Array.from(new Set(f.map(D=>D.selector).filter(Boolean))),m;try{m=await d.evaluate(D=>{let w=Array.from(document.querySelectorAll("*")),C=new Map;w.forEach((L,I)=>C.set(L,I));let E={};for(let L of D){let I=null;try{I=document.querySelector(L);}catch{}if(!I){let N=L.replace(/:(?:focus-visible|focus-within|focus|hover|active)$/,"");if(N!==L)try{I=document.querySelector(N);}catch{}}if(I){let N=I.closest("table");E[L]={el:C.get(I),table:N?C.get(N):-1,doc:I===document.documentElement||I===document.body};}}return E},h);}catch{return f}let p={webability:0,"axe-core":1,"deep-analysis":2},b=D=>{let w=m[D.selector];if(!w)return null;let C=D.wcag||D.type;return w.doc?{key:QL.has(D.wcag||"")?`doc::${C}`:`doc::${C}::${D.type}`,owner:true}:w.table>=0&&ZL.test(D.type)?{key:`${w.table}::${C}::table-headers`,owner:w.el===w.table}:{key:`${w.el}::${C}`,owner:true}},A=[...f].sort((D,w)=>{let C=b(D),E=b(w),L=C?.owner?0:1,I=E?.owner?0:1;return L-I||(p[D.source]??3)-(p[w.source]??3)}),x=new Map,T=[];for(let D of A){let w=b(D);if(!w){T.push(D);continue}let C=x.get(w.key);C?!C.fix?.suggestedValue&&D.fix?.suggestedValue&&(b(C)?.owner??true)===w.owner&&x.set(w.key,D):x.set(w.key,D);}let k=new Set([...x.values(),...T]);return f.filter(D=>k.has(D))}var ZL,QL,ca=kr(()=>{ZL=/^missing_table_header$|^td-has-header$|^th-has-data-cells$|^h43|^h63/,QL=new Set(["2.4.1","3.1.1","2.4.2"]);});var Cv={};Tr(Cv,{parseGif:()=>_v,playsOverFiveSeconds:()=>Ev,verifyAnimatedGifs:()=>tP});function _v(d){if(String.fromCharCode(d[0]??0,d[1]??0,d[2]??0)!=="GIF")return null;let h=13,m=d[10]??0;m&128&&(h+=3*(1<<(m&7)+1));let p=0,b=0,A=0,x=null,T=()=>{for(;h<d.length;){let k=d[h++];if(k===0)return;h+=k;}};for(;h<d.length;){let k=d[h++];if(k===59)break;if(k===33){let D=d[h++];if(D===249)A=(d[h+2]??0)|(d[h+3]??0)<<8,h+=1+(d[h]??4),T();else if(D===255){let w=d[h]??0,C=String.fromCharCode(...Array.from(d.subarray(h+1,h+1+w)));h+=1+w,(C==="NETSCAPE2.0"||C==="ANIMEXTS1.0")&&d[h]===3&&d[h+1]===1&&(x=(d[h+2]??0)|(d[h+3]??0)<<8),T();}else T();}else if(k===44){let D=d[h+8]??0;h+=9,D&128&&(h+=3*(1<<(D&7)+1)),h+=1,T(),p++,b+=A<2?10:A,A=0;}else break}return {frames:p,seconds:b/100,loops:x}}function Ev(d){if(d.frames<2)return false;if(d.loops===0)return true;let f=d.loops===null?1:d.loops+1;return d.seconds*f>5}async function tP(d,f){let h=f.filter(b=>b.type==="animated_gif_no_pause");if(!h.length)return f;let m=Array.from(new Set(h.map(b=>b.selector))),p={};try{p=await d.evaluate(async({sels:b,parserSrc:A})=>{let x=new Function("var __name = function (f) { return f }; return ("+A+")")(),T={};return await Promise.all(b.map(async k=>{T[k]=null;try{let D=document.querySelector(k),w=D&&(D.currentSrc||D.src);if(!w)return;let C=new AbortController,E=setTimeout(()=>C.abort(),5e3);try{let L=await fetch(w,{signal:C.signal,credentials:"same-origin"});if(!L.ok||Number(L.headers.get("content-length")||"0")>2e7)return;T[k]=x(new Uint8Array(await L.arrayBuffer()));}finally{clearTimeout(E);}}catch{}})),T},{sels:m,parserSrc:_v.toString()});}catch{p={};}return f.flatMap(b=>{if(b.type!=="animated_gif_no_pause")return [b];let A=p[b.selector];if(!A)return [{...b,message:`${b.message} \u2014 the GIF file could not be read from the page (cross-origin or blocked), so its frame count and duration were not measured`}];if(!Ev(A))return [];let x=A.loops===0?"loops forever":`plays for ${(A.seconds*(A.loops===null?1:A.loops+1)).toFixed(1)}s`;return [{...b,message:`animated GIF (${A.frames} frames, ${x}) starts automatically with no pause control \u2014 replace it with a video that has controls or a static image, or add a pause button (WCAG 2.2.2)`}]})}var Sv=kr(()=>{});var lc={};Tr(lc,{scopeIssuesToRoot:()=>rP});async function rP(d,f,h){let m=Array.from(new Set(f.map(b=>b.selector).filter(Boolean))),p;try{p=await d.evaluate(({rootSel:b,sels:A})=>{let x=D=>{try{let C=document.querySelector(D);if(C)return C}catch{}let w=D.replace(/:(?:focus-visible|focus-within|focus|hover|active)$/,"");if(w!==D)try{return document.querySelector(w)}catch{return null}return null},T=null;try{T=document.querySelector(b);}catch{return {invalid:!0,matched:!1,within:{}}}if(!T)return {invalid:!1,matched:!1,within:{}};let k={};for(let D of A){let w=x(D);k[D]=w?w===T||T.contains(w):!0;}return {invalid:!1,matched:!0,within:k}},{rootSel:h,sels:m});}catch{return {issues:f,warning:`scope:evaluate-failed (${h}) \u2014 results unfiltered`}}return p.invalid?{issues:f,warning:`scope:invalid-selector (${h}) \u2014 results unfiltered`}:p.matched?{issues:f.filter(b=>b.selector?p.within[b.selector]===true:true)}:{issues:[],warning:`scope:root-miss (${h} matched nothing \u2014 empty result)`}}var uc=kr(()=>{});var Ou=new Set(["adjacent_redundant_link","missing_button_type","decorative_image_with_title","nested_landmark"]),si={weak_link_name:"2.4.4",weak_heading:"2.4.6",weak_iframe_title:"4.1.2",weak_page_title:"2.4.2",weak_svg_name:"1.1.1",missing_button_role:"4.1.2",missing_semantic_role:"4.1.2",missing_document_language:"3.1.1",svg_missing_name:"1.1.1",aria_hidden_focusable:"4.1.2",contrast_insufficient:"1.4.3",non_text_contrast_insufficient:"1.4.11",focus_not_visible:"2.4.7",empty_link:"2.4.4",unlabeled_button:"4.1.2",missing_label:"1.3.1",skip_link:"2.4.1",aria_live:"4.1.3",missing_alt:"1.1.1",identify_input_purpose:"1.3.5",redundant_role:"4.1.2",new_window_link:"3.2.5",missing_fieldset_legend:"1.3.1",missing_table_header:"1.3.1",missing_table_caption:"1.3.1",missing_table_scope:"1.3.1",external_link_warning:"3.2.5",download_link_warning:"3.2.5",form_missing_submit:"3.2.2",placeholder_link:"2.4.4",missing_autocomplete:"1.3.5",missing_media_controls:"2.2.2",unsafe_autoplay:"1.4.2",zoom_restriction:"1.4.4",resize_text_clipped:"1.4.4",link_consistency:"3.2.4",keyboard_trap:"2.1.1",keyboard_trap_self_focus:"2.1.2",focus_order_disruption:"2.4.3",missing_captions:"1.2.2",color_only_link:"1.4.1",label_in_name:"2.5.3",onfocus_context_change:"3.2.1",focus_obscured_by_sticky:"2.4.11",text_spacing_blocked:"1.4.12",motion_uncontrollable:"2.2.2",auto_refresh:"2.2.1",motion_without_reduced_motion:"2.3.3",flashing_content:"2.3.1",animated_gif_no_pause:"2.2.2",carousel_autoplay_no_pause:"2.2.2",missing_required_indicator:"3.3.2",background_image_unlabeled:"1.1.1",broken_aria_reference:"4.1.2",main_content_hidden:"4.1.2",meaningful_sequence:"1.3.2",sensory_characteristic:"1.3.3",image_of_text:"1.4.5",reflow_overflow:"1.4.10",missing_audio_description:"1.2.5",missing_transcript:"1.2.1",character_key_shortcut:"2.1.4",on_input_change:"3.2.2",pointer_gesture:"2.5.1",pointer_cancellation:"2.5.2",motion_actuation:"2.5.4",error_prevention_missing:"3.3.4",inconsistent_navigation:"3.2.3",adjacent_redundant_link:"2.4.4",missing_button_type:"3.2.2",decorative_image_with_title:"1.1.1",nested_landmark:"1.3.1"},li={mobile:{width:375,height:667},tablet:{width:768,height:1024},desktop:{width:1280,height:720}};function Lh(d,f){let h=d??"";if(h.trimStart().startsWith("{"))try{let m=JSON.parse(h);if(m&&typeof m=="object"&&!Array.isArray(m))return JSON.stringify({...m,platform:f})}catch{}return (h?h+" | ":"")+"platform: "+f}var RI=()=>{let d="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye]",h=[],m=new Set;function p(x){let T=(x.textContent||"").trim().replace(/\s+/g,""),k=x.querySelector("img, svg, picture")!==null,D=x.querySelector("i[class], span[class]")!==null;if(T.length>0&&!k&&!D)return false;if(k){let w=x.querySelectorAll("img"),C="";w.forEach(I=>{C+=(I.getAttribute("alt")||"").trim();});let E=T.replace(/\s+/g,""),L=C.replace(/\s+/g,"");return E===""||E===L}return false}function b(x){let T=x.nextElementSibling;for(;T;){if(isVisible(T))return T;T=T.nextElementSibling;}return null}return document.querySelectorAll("a[href]").forEach(x=>{if(h.length>=50||x.closest(d)||!isVisible(x)||m.has(x))return;let T=x.getAttribute("href");if(!T||T==="#")return;let k=b(x);if(!k||k.tagName!=="A"||k.getAttribute("href")!==T||m.has(k)||x.getAttribute("aria-hidden")==="true"||k.getAttribute("aria-hidden")==="true")return;let w=p(x),C=p(k);if(!w&&!C)return;let E=w?x:k,L=w?k:x;m.add(E),m.add(L);let I=uniqueSel(E),N=E.outerHTML.slice(0,300),q=(L.textContent||"").trim().slice(0,80);h.push({selector:I,attribute:"aria-hidden",currentValue:"",issueType:"adjacent_redundant_link",wcag:"2.4.4",context:JSON.stringify({href:T,imageLink:true,adjacentLinkText:q,suggestion:'Add aria-hidden="true" and tabindex="-1" to the image-only link'}),needsAI:false,fixValue:"true",outerHtml:N}),h.push({selector:I,attribute:"tabindex",currentValue:"",issueType:"adjacent_redundant_link",wcag:"2.4.4",context:JSON.stringify({supplementary:"Remove from tab order alongside aria-hidden",href:T}),needsAI:false,fixValue:"-1",outerHtml:N});}),h},Ph={name:"adjacentLinks",cap:50,async detect(d){return d.evaluate(RI)}};var FI=()=>{let d="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye],[class*=ae-exclude],[id*=ae_app],[id*=ae_],[class*=EquallyAI]",f='.slick-cloned,.slick-clone,.swiper-slide-duplicate,.owl-item.cloned,[data-slick-index^="-"],[data-swiper-slide-index]:not([data-swiper-slide-index=""])',h=["[aria-expanded]",'[class*="dropdown" i]','[class*="submenu" i]','[class*="sub-menu" i]','[class*="collapse" i]','[class*="accordion" i]','[class*="megamenu" i]','[class*="mega-menu" i]','[class*="flyout" i]','[class*="fsNav" i]','[role="menu"]','[role="menubar"]','[role="tablist"]','[role="tab"]',"nav"].join(","),m=new Set(["A","BUTTON","INPUT","SELECT","TEXTAREA"]),p=50,b=[],A=new Set;function x(D){let w=D,C=0;for(;w&&w.nodeType===1&&w!==document.body&&C<20;){try{let E=getComputedStyle(w);if(E.display==="none"||E.visibility==="hidden"||E.visibility==="collapse")return !0}catch{}w=w.parentElement,C++;}return false}function T(D){let w=D.tagName,C=D.getAttribute("tabindex");if(C!==null){let E=parseInt(C,10);if(!isNaN(E)&&E>=0)return true;if(!isNaN(E)&&E<0)return false}return m.has(w)?!(w==="A"&&!D.hasAttribute("href")||D.hasAttribute("disabled")):false}return document.querySelectorAll('[aria-hidden="true"]').forEach(D=>{if(b.length>=p||D.closest(d)||D.closest(f)||D.closest(h)||D.matches(h))return;let w=[];if(T(D)&&w.push(D),D.querySelectorAll("a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]").forEach(E=>{T(E)&&w.push(E);}),w.length!==0)for(let E of w){if(b.length>=p)return;let L=uniqueSel(E),I=L+"\0tabindex";if(A.has(I))continue;A.add(I);let N=x(E),q=!N;b.push({selector:L,attribute:"tabindex",currentValue:E.getAttribute("tabindex")||"",issueType:"aria_hidden_focusable",wcag:"4.1.2",context:JSON.stringify({tag:E.tagName.toLowerCase(),parentHidden:D.tagName.toLowerCase(),collapsed:N,suggestion:N?"Focusable control inside an aria-hidden region that is currently display:none/visibility:hidden \u2014 likely a closed modal/dialog/dropdown. Confirm the control is permanently hidden before removing it from the tab order.":'This control is rendered and operable inside an aria-hidden region. Remove aria-hidden from the region if the control is meant to be used, or hide the region (display:none / hidden / inert) when it is not. Do not set tabindex="-1" on a visible control: keyboard users lose it.'}),needsAI:false,fixValue:"-1",...N?{needsReview:true,reviewReason:'this focusable control is inside an aria-hidden region that is currently hidden by layout (display:none/visibility:hidden) \u2014 the signature of a closed modal/dialog/dropdown/tab-panel whose controls are meant to become focusable when it opens. A static tabindex="-1" would permanently remove it from the tab order and create a keyboard trap once the widget is shown. Confirm the control is permanently hidden before applying.'}:{},...q?{manualFix:true,reviewReason:'the control is rendered inside an aria-hidden region: tabindex="-1" would leave a visible, clickable control unreachable by keyboard (2.1.1). The right fix is on the region (remove aria-hidden, or hide it for everyone), which needs a person.'}:{},outerHtml:(E.outerHTML||"").slice(0,300)});}}),b},Oh={name:"ariaHiddenFocusable",cap:50,async detect(d){return d.evaluate(FI)}};var II=()=>{let d="[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye], [class*=EquallyAI]",h=[],m=new Set,p=[/\btoast\b/i,/\bsnackbar\b/i,/error[-_]message|error[-_]msg|form[-_]error|validation[-_]error/i,/success[-_]message|success[-_]msg/i,/alert[-_]message|alert[-_]banner/i,/flash[-_]message|flash[-_]notice/i,/cart[-_]count|cart[-_]badge|cart[-_]quantity/i,/loading[-_]spinner|loading[-_]indicator/i,/search[-_]results?[-_]count/i,/\blive[-_]region\b/i,/notification[-_](bar|area|container|popup|wrapper)/i,/status[-_]message/i];function b(A){if((A.textContent||"").trim())return false;if(typeof A.checkVisibility=="function")return A.checkVisibility({visibilityProperty:true});for(let x=A;x&&x.nodeType===1;x=x.parentElement)if(getComputedStyle(x).display==="none")return false;return getComputedStyle(A).visibility!=="hidden"}for(let A of p){if(h.length>=50)break;let x=document.querySelectorAll("*");for(let T of x){if(h.length>=50)break;if(m.has(T)||T.closest(d))continue;let k=T.className&&typeof T.className=="string"?T.className:"",D=T.getAttribute("id")||"";if(!A.test(k)&&!A.test(D)||T.getAttribute("aria-live"))continue;let w=T.getAttribute("role")||"";if(["alert","status","log","timer","marquee"].includes(w)||!b(T))continue;m.add(T);let C=uniqueSel(T),E=A.test(k)?"class":"id",L=E==="class"?k.slice(0,60):D;h.push({selector:C,attribute:"aria-live",currentValue:"",issueType:"aria_live",wcag:"4.1.3",context:E+": "+L+" | pattern: "+A.source,needsAI:false,fixValue:"polite"});}}return h},Nh={name:"ariaLive",cap:50,async detect(d){return d.evaluate(II)}};var MI=()=>{let d="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye],[class*=ae-exclude],[id*=ae_app],[id*=ae_],[class*=EquallyAI]",h=[],m=new Set,p=["aria-labelledby","aria-describedby"];return document.querySelectorAll("[aria-labelledby],[aria-describedby]").forEach(x=>{if(!(h.length>=50)&&!x.closest(d)&&isVisible(x)&&!isHiddenFromAT(x)&&!x.getAttribute("aria-live")&&!x.closest("[aria-live]")&&!x.closest("template"))for(let T of p){let k=x.getAttribute(T);if(!k||!k.trim())continue;let D=k.trim().split(/\s+/).filter($=>$.length>0);if(D.length===0||!D.every($=>!document.getElementById($)))continue;let C=x.getAttribute("aria-label");if(C&&C.trim())continue;let E=getAccessibleName(x);if(E&&E.trim())continue;let L=uniqueSel(x),I=L+"\0"+T;if(m.has(I))continue;m.add(I);let{nearbyHeading:N,parentTag:q,parentRole:H}=getNearbyContext(x);h.push({selector:L,attribute:"aria-label",currentValue:"",issueType:"broken_aria_reference",wcag:"4.1.2",context:JSON.stringify({tag:x.tagName.toLowerCase(),brokenAttr:T,brokenIds:D,nearbyHeading:N,parentTag:q,parentRole:H,suggestion:`All IDs in ${T}="${k}" are missing from the DOM. Element has no accessible name. Generate an aria-label.`}),needsAI:true,outerHtml:(x.outerHTML||"").slice(0,300)});}}),h},qh={name:"brokenAriaReferences",cap:50,async detect(d){return d.evaluate(MI)}};var LI=()=>{let f=[],h=["submit","send","login","log in","sign in","sign up","register","subscribe","save","order","purchase","checkout","pay","book","apply","enroll","confirm","join","create account","get started","schedule","place order","buy","donate","search","find","go"],m=document.querySelectorAll("button");for(let p of m){if(f.length>=50)break;let b=p;if(isWidget(b)||b.hasAttribute("type")||!b.closest("form"))continue;let A=(b.textContent||"").trim().slice(0,60),x=(b.getAttribute("aria-label")||"").trim().slice(0,60),T=A||x||"(no label)",k=T.toLowerCase();h.some(w=>k.includes(w))||f.push({selector:uniqueSel(b),attribute:"type",currentValue:"",issueType:"missing_button_type",wcag:"3.2.2",context:"button inside <form> missing type attribute \u2014 defaults to submit | label: "+T,needsAI:false,fixValue:"button",outerHtml:(b.outerHTML||"").slice(0,300)});}return f},Bh={name:"buttonType",cap:50,async detect(d){return d.evaluate(LI)}};var PI=()=>{let f=[],h=document.querySelectorAll("video, audio");for(let m of Array.from(h)){if(f.length>=20)break;if(isWidget(m)||typeof isVisible=="function"&&!isVisible(m)||m.error)continue;let p=m.tagName==="VIDEO";if(p){let I=m.hasAttribute("muted")||m.muted,N=m.hasAttribute("controls"),q=m.hasAttribute("loop")||m.loop,H=/mute|unmute|sound|volume|audio|play|pause/i,$=!!m.parentElement?.querySelector('button, [role="button"]')||!!m.getAttribute("id")&&!!document.querySelector('[aria-controls~="'+(m.getAttribute("id")||"").replace(/"/g,"")+'"]');for(let U=m.parentElement?.parentElement||null,K=0;U&&!$&&K<3;U=U.parentElement,K++)$=Array.from(U.querySelectorAll('button, [role="button"]')).some(R=>H.test((R.getAttribute("aria-label")||"")+" "+(R.getAttribute("title")||"")+" "+(R.textContent||"")));if(I&&q&&!N&&!$)continue}let b=m.querySelectorAll("track"),A=false;for(let I of Array.from(b)){let N=(I.getAttribute("kind")||"").toLowerCase();if(N==="captions"||N==="subtitles"){A=true;break}}if(A)continue;let x=m.currentSrc||m.getAttribute("src")||"";if(x||(x=m.querySelector("source")?.getAttribute("src")||""),!x)continue;let T=x.toLowerCase();if(T.startsWith("blob:")||T.startsWith("data:")||T.startsWith("about:")||T.startsWith("javascript:")||T.endsWith(".m3u8")||T.includes(".m3u8?")||T.endsWith(".mpd")||T.includes(".mpd?"))continue;let k=x;try{k=new URL(x,location.href).toString();}catch{continue}let D=typeof uniqueSel=="function"?uniqueSel(m):"",w=m.getAttribute("title")||m.getAttribute("aria-label")||"",C=typeof getNearbyContext=="function"?getNearbyContext(m):{parentTag:m.tagName.toLowerCase(),nearbyHeading:""},E=[];E.push("media: "+m.tagName.toLowerCase()),E.push("src: "+k.slice(0,200)),w&&E.push("title: "+w.slice(0,80)),C.nearbyHeading&&E.push("heading: "+C.nearbyHeading),E.push("parent: "+C.parentTag);let L=p;f.push({selector:D,attribute:"data-needs-captions",currentValue:"",issueType:"missing_captions",wcag:"1.2.2",context:E.join(" | "),needsAI:true,...L?{needsReview:true,reviewReason:"cannot verify an audio track in-page \u2014 confirm the video has speech content before transcribing (silent videos need no captions)"}:{},imageSrc:k,outerHtml:(m.outerHTML||"").slice(0,300)});}return f},Hh={name:"captions",cap:20,async detect(d){return d.evaluate(PI)}};var OI=()=>{let d="[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye], [class*=EquallyAI]",h=[],m="p, li, blockquote, article, section, main, div",p=document.querySelectorAll("a[href]"),b=new Map;for(let A of Array.from(p)){if(h.length>=40)break;if(A.closest(d)||A.closest('nav, header, footer, aside, [role="navigation"], [role="banner"], [role="contentinfo"]')||typeof isVisible=="function"&&!isVisible(A))continue;let x=A.closest(m);if(!x)continue;let T=(A.textContent||"").trim();if(!T)continue;let k=b.get(x);if(k===void 0){k=0;let U=document.createTreeWalker(x,NodeFilter.SHOW_TEXT),K;for(;K=U.nextNode();){let R=K.parentElement;!R||R.closest("a")||R.closest(m)===x&&(typeof isVisible=="function"&&!isVisible(R)||(k+=(K.textContent||"").trim().length));}b.set(x,k);}if(k<20||A.querySelector("img, svg, [class*=icon], [class*=arrow]"))continue;let D=getComputedStyle(A),w=getComputedStyle(x);if((D.textDecorationLine||D.textDecoration||"").includes("underline")||(()=>{let U=document.createTreeWalker(A,NodeFilter.SHOW_TEXT),K,R=false;for(;K=U.nextNode();){if(!/[\p{L}\p{N}]/u.test(K.textContent||""))continue;R=true;let v=false;for(let _=K.parentElement;_&&_!==A;_=_.parentElement){let F=getComputedStyle(_),P=(F.textDecorationColor||"").replace(/\s/g,"");if((F.textDecorationLine||"").includes("underline")&&P!=="transparent"&&!/^rgba\([^)]*,0(?:\.0+)?\)$/.test(P)){v=true;break}let B=(F.borderBottomColor||"").replace(/\s/g,""),z=B==="transparent"||/^rgba\([^)]*,0(?:\.0+)?\)$/.test(B);if((F.borderBottomStyle||"none")!=="none"&&parseFloat(F.borderBottomWidth||"0")>0&&!z){v=true;break}}if(!v)return false}return R})())continue;let L=parseInt(D.fontWeight||"400",10),I=parseInt(w.fontWeight||"400",10);if(Number.isFinite(L)&&Number.isFinite(I)&&L-I>=300||(D.borderBottomStyle||"none")!=="none"&&(D.borderBottomWidth||"0px")!=="0px"||D.color===w.color)continue;let q=typeof uniqueSel=="function"?uniqueSel(A):"",H=typeof getNearbyContext=="function"?getNearbyContext(A):{parentTag:A.tagName.toLowerCase(),nearbyHeading:""},$=[];$.push("link: "+T.slice(0,40)),$.push("color: "+D.color),$.push("parent-color: "+w.color),H.nearbyHeading&&$.push("heading: "+H.nearbyHeading),$.push("parent: "+H.parentTag),h.push({selector:q,attribute:"style",currentValue:D.textDecoration||"",issueType:"color_only_link",wcag:"1.4.1",context:$.join(" | "),needsAI:false,fixValue:"text-decoration: underline !important;",outerHtml:(A.outerHTML||"").slice(0,300)});}return h},Vh={name:"colorOnly",cap:40,async detect(d){return d.evaluate(OI)}};var NI=()=>{let d=[],f=v=>typeof parseCssColor=="function"?parseCssColor(v):null,h=(v,_,F)=>typeof relLuminance=="function"?relLuminance(v,_,F):0,m=(v,_)=>typeof contrastRatio=="function"?contrastRatio(v,_):1;function p(v){let _=String(v.backgroundImage||"none");if(_==="none")return false;if(/gradient\(/i.test(_))return true;if(!/url\(/i.test(_))return false;let F=String(v.backgroundRepeat||"").toLowerCase(),P=String(v.backgroundSize||"").toLowerCase(),B=F.split(",").map(X=>X.trim()).some(X=>X!==""&&X!=="no-repeat"),z=/cover|contain|100%/.test(P);return B||z}let b=new Map;function A(v){let _=[],F=false;for(let P=v;P&&P.nodeType===1;P=P.parentElement){let B=b.get(P);if(B!==void 0){F=B;break}if(_.push(P),parseFloat(getComputedStyle(P).opacity||"1")<1){F=true;break}}for(let P of _)b.set(P,F);return F}let x=new Map;function T(v){let _=x.get(v);if(_)return _;_=[];let F=Array.from(v.children);for(let P=0;P<F.length;P++){let B=getComputedStyle(F[P]);B.position==="static"||B.display==="none"||B.visibility!=="visible"||parseFloat(B.opacity||"1")<=0||_.push({el:F[P],z:B.zIndex==="auto"?0:parseInt(B.zIndex,10)||0,i:P});}return x.set(v,_),_}function k(v){if(v===document.documentElement)return true;let _=getComputedStyle(v);return !!(_.position==="fixed"||_.position==="sticky"||_.zIndex!=="auto"&&_.position!=="static"||_.zIndex!=="auto"&&v.parentElement&&/flex|grid/.test(getComputedStyle(v.parentElement).display||"")||parseFloat(_.opacity||"1")<1||_.transform&&_.transform!=="none"||_.filter&&_.filter!=="none"||_.isolation==="isolate"||_.mixBlendMode&&_.mixBlendMode!=="normal"||/paint|strict|content/.test(_.contain||""))}function D(v,_,F,P){let B=T(v);if(!B.length||B.length===1&&B[0].el===_)return [];let z=-1/0;for(let ee=F;ee&&ee!==v;ee=ee.parentElement){let Z=getComputedStyle(ee);if(Z.position==="static")continue;let ie=Z.zIndex==="auto"?0:parseInt(Z.zIndex,10)||0;ie>z&&(z=ie);}let X=Array.prototype.indexOf.call(v.children,_),te=[];for(let ee of B){if(ee.el===_||!(ee.z<0?k(v):z>ee.z||z===ee.z&&ee.i<X))continue;let ie=ee.el.getBoundingClientRect();ie.left>P.left+1||ie.top>P.top+1||ie.right<P.right-1||ie.bottom<P.bottom-1||te.push(ee);}return te.sort((ee,Z)=>Z.z-ee.z||Z.i-ee.i),te.map(ee=>ee.el)}function w(v){try{let F=document.createRange(),P=null;for(let B of Array.from(v.childNodes)){if(B.nodeType!==3||!(B.textContent||"").trim())continue;F.selectNodeContents(B);let z=F.getBoundingClientRect();z.width<=0||z.height<=0||(P=P?{left:Math.min(P.left,z.left),top:Math.min(P.top,z.top),right:Math.max(P.right,z.right),bottom:Math.max(P.bottom,z.bottom)}:{left:z.left,top:z.top,right:z.right,bottom:z.bottom});}if(P)return P}catch{}let _=v.getBoundingClientRect();return {left:_.left,top:_.top,right:_.right,bottom:_.bottom}}function C(v,_){let F=document.documentElement,P=null,B=[{acc:[0,0,0],cover:0},{acc:[0,0,0],cover:0},{acc:[0,0,0],cover:0}],z=Math.max(0,Math.min(1,_[3]));B[0].acc=[_[0]*z,_[1]*z,_[2]*z],B[0].cover=z,B[2].cover=1;let X=1,te=()=>B.some(De=>De.cover<1-1e-9),ee=(De,Be=1)=>{if(!te())return true;let _e=f(De.backgroundColor||""),Ee=p(De);for(let bt of B){if(bt.cover>=1-1e-9)continue;if(Ee)return false;if(!_e)continue;let kt=Math.max(0,Math.min(1,_e[3]))*Be;if(kt<=0)continue;let He=kt*(1-bt.cover);bt.acc[0]+=_e[0]*He,bt.acc[1]+=_e[1]*He,bt.acc[2]+=_e[2]*He,bt.cover+=He;}return true},Z=De=>{let Be=Math.max(0,Math.min(1,parseFloat(De.opacity||"1")));if(!(Be>=1)){for(let _e of B)_e.acc=_e.acc.map(Ee=>Ee*Be),_e.cover*=Be;X*=Be;}},ie=v,be=null;for(;ie&&ie!==F&&!(!te()&&!A(ie));){let De=getComputedStyle(ie);if(be&&T(ie).length){P||(P=w(v));for(let Be of D(ie,be,v,P)){let _e=getComputedStyle(Be);if(!ee(_e,Math.max(0,Math.min(1,parseFloat(_e.opacity||"1")))))return null}}if(!ee(De))return null;Z(De),be=ie,ie=ie.parentElement;}if(ie===F){let De=getComputedStyle(F);if(!ee(De))return null;Z(De);}for(let De of B){let Be=1-De.cover;Be>0&&(De.acc=De.acc.map(_e=>_e+255*Be),De.cover=1);}let de=De=>[Math.round(Math.min(255,De.acc[0])),Math.round(Math.min(255,De.acc[1])),Math.round(Math.min(255,De.acc[2]))],ke=B[2].acc.map(De=>Math.min(255,De));return {fg:de(B[0]),bg:de(B[1]),k:X,rest:ke}}function E(v,_,F){return "#"+[v,_,F].map(P=>{let B=Math.max(0,Math.min(255,Math.round(P))).toString(16);return B.length===1?"0"+B:B}).join("")}let L=.1;function I(v,_,F,P=1,B=[0,0,0]){let z=h(_[0],_[1],_[2])>.5;for(let X of [F+L,F]){let te=N(v,_,X,z,P,B)||N(v,_,X,!z,P,B);if(te)return te}return null}function N(v,_,F,P,B,z){let X=0,te=1,ee=null;for(let Z=0;Z<20;Z++){let ie=(X+te)/2,be=P?[v[0]*(1-ie),v[1]*(1-ie),v[2]*(1-ie)]:[v[0]+(255-v[0])*ie,v[1]+(255-v[1])*ie,v[2]+(255-v[2])*ie],de=[Math.round(be[0]),Math.round(be[1]),Math.round(be[2])],ke=[de[0]*B+z[0],de[1]*B+z[1],de[2]*B+z[2]];m(ke,_)>=F?(ee=de,te=ie):X=ie;}return ee}let q=new Set(["application","button","checkbox","columnheader","combobox","grid","gridcell","group","link","listbox","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","option","radio","radiogroup","row","rowheader","scrollbar","searchbox","separator","slider","spinbutton","switch","tab","tablist","textbox","toolbar","tree","treegrid","treeitem"]);function H(v){if(v.closest("button:disabled, input:disabled, select:disabled, textarea:disabled, optgroup:disabled, option:disabled"))return true;for(let F=v;F&&F.nodeType===1;F=F.parentElement){if(F.getAttribute("aria-disabled")!=="true")continue;let P=(F.getAttribute("role")||"").trim().toLowerCase().split(/\s+/)[0];if(P&&q.has(P))return true}let _=v.closest("label");if(_){let F=_.control;if(F&&(F.disabled||F.getAttribute("aria-disabled")==="true"))return true}return false}let $=document.createTreeWalker(document.body,4),U=new Set,K=[],R=$.nextNode();for(;R;){let v=(R.textContent||"").trim();if(v.length>=2||/[\p{L}\p{N}]/u.test(v)){let _=R.parentElement;_&&!U.has(_)&&(U.add(_),K.push(_));}R=$.nextNode();}for(let v of K){if(isWidget(v)||isHiddenFromAT(v)||!isVisible(v)||H(v))continue;let _=getComputedStyle(v),F=f(_.webkitTextFillColor||_.color||"");if(!F)continue;if(F[3]<.5){let He=_.webkitBackgroundClip||_.backgroundClip||"",Mt=_.backgroundImage||"";if(String(He).includes("text")&&/gradient\(/i.test(Mt)){let yr=Array.from(v.childNodes).filter(Bt=>Bt.nodeType===3).map(Bt=>(Bt.textContent||"").trim()).join("");yr&&d.push({selector:uniqueSel(v),attribute:"style",currentValue:"gradient-clipped text",message:"contrast: gradient-clipped text \u2014 the glyph colour varies across the gradient, so the ratio cannot be computed; check the lightest stop meets 4.5:1",issueType:"contrast_insufficient",wcag:"1.4.3",context:"background-clip:text gradient text \u2014 glyph color varies across the gradient; contrast cannot be computed from CSS. text="+JSON.stringify(yr.slice(0,40)),needsAI:true,needsReview:true,reviewReason:"gradient-clipped text \u2014 verify the lightest gradient stop still meets 4.5:1 against the surrounding background",outerHtml:v.outerHTML.slice(0,200)});}continue}let P=parseFloat(_.fontSize||"16"),B=parseInt(_.fontWeight||"400",10),X=P>=24||P>=18.66&&B>=700?3:4.5,te=Array.from(v.childNodes).filter(He=>He.nodeType===3).map(He=>(He.textContent||"").trim()).join("");if(!te)continue;let ee=E(F[0],F[1],F[2]),Z=uniqueSel(v),ie=C(v,F),be=ie?ie.bg:null;if(be===null){d.push({selector:Z,attribute:"style",currentValue:ee,message:"contrast: text "+ee+" on a gradient or image background \u2014 the ratio cannot be computed from CSS; check it meets "+X+":1 where the background is lightest/darkest",issueType:"contrast_insufficient",wcag:"1.4.3",context:"fg="+ee+" bg=<gradient-or-image> needs="+X+" text="+JSON.stringify(te.slice(0,40)),needsAI:true,needsReview:true,reviewReason:"background uses gradient or image \u2014 contrast cannot be reliably computed",outerHtml:v.outerHTML.slice(0,200)});continue}let de=ie,ke=m(de.fg,be);if(ke>=X)continue;let De=I([F[0],F[1],F[2]],be,X,de.k,de.rest);if(!De)continue;let Be=E(De[0],De[1],De[2]),_e=E(be[0],be[1],be[2]),Ee=E(de.fg[0],de.fg[1],de.fg[2]),bt=Ee===ee?"":" (shown as "+Ee+" after opacity/alpha)",kt="color:"+Be+" !important;";d.push({selector:Z,attribute:"style",currentValue:ee,message:"contrast: "+ee+bt+" on "+_e+" is "+ke.toFixed(2)+":1, needs "+X+":1 \u2014 e.g. color "+Be,issueType:"contrast_insufficient",wcag:"1.4.3",context:"fg="+Ee+" bg="+_e+" ratio="+ke.toFixed(2)+" needs="+X+" text="+JSON.stringify(te.slice(0,40)),needsAI:false,fixValue:kt,outerHtml:v.outerHTML.slice(0,200)});}return d},$h={name:"contrast",async detect(d){return d.evaluate(NI)}};var qI=()=>{let d="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye]",h=[],m=document.querySelectorAll("marquee, blink");for(let T of Array.from(m)){if(h.length>=30)break;if(T.closest(d))continue;let k=typeof uniqueSel=="function"?uniqueSel(T):T.tagName.toLowerCase();h.push({selector:k,attribute:"aria-hidden",currentValue:T.getAttribute("aria-hidden")||"",issueType:"motion_uncontrollable",wcag:"2.2.2",context:`deprecated ${T.tagName.toLowerCase()} element \u2014 uncontrollable motion`,needsAI:false,manualFix:true,fixValue:"true",outerHtml:(T.outerHTML||"").slice(0,300)});}let p=document.querySelectorAll('img[src*=".gif" i], img[src$=".gif" i]');for(let T of Array.from(p)){if(h.length>=30)break;if(T.closest(d))continue;let k=T.getAttribute("src")||"";if(!/\.gif(\?|#|$)/i.test(k)||typeof isVisible=="function"&&!isVisible(T))continue;let D=T.getBoundingClientRect();if(D.width<=40&&D.height<=40)continue;let w=typeof uniqueSel=="function"?uniqueSel(T):"img";h.push({selector:w,attribute:"data-asw-motion-review",currentValue:"",issueType:"animated_gif_no_pause",wcag:"2.2.2",context:`animated GIF without pause control: ${k.split("/").pop()?.slice(0,60)||k.slice(-60)}`,needsAI:true,outerHtml:(T.outerHTML||"").slice(0,300)});}let b=document.querySelectorAll('meta[http-equiv="refresh"], meta[http-equiv="Refresh"], meta[http-equiv="REFRESH"]');for(let T of Array.from(b)){if(h.length>=30)break;let k=(T.getAttribute("content")||"").trim(),D=parseInt((k.split(/[;,]/)[0]||"").trim(),10);!Number.isFinite(D)||D<=0||h.push({selector:`meta[http-equiv="refresh"][content*="${k.slice(0,20)}"]`,attribute:"data-auto-refresh",currentValue:k,issueType:"auto_refresh",wcag:"2.2.1",context:`auto-refresh every ${D}s \u2014 interrupts screen reader users mid-sentence (WCAG 2.2.1)`,needsAI:false,manualFix:true,outerHtml:(T.outerHTML||"").slice(0,200)});}try{let T=!1,k=!1;for(let D of Array.from(document.styleSheets)){let w=null;try{w=D.cssRules;}catch{continue}if(w)for(let C of Array.from(w)){let E=C.cssText||"";if(/animation[^;]*\binfinite\b/i.test(E)&&/(keyframes|animation-name)/i.test(E+" "+(C.name||""))&&(T=!0),/prefers-reduced-motion[^{]*\(\s*reduce\s*\)/i.test(E)&&(k=!0),C.cssRules)for(let L of Array.from(C.cssRules)){let I=L.cssText||"";/animation[^;]*\binfinite\b/i.test(I)&&(T=!0);}}}T&&!k&&h.push({selector:"html",attribute:"data-asw-motion-review",currentValue:"",issueType:"motion_without_reduced_motion",wcag:"2.3.3",context:"infinite CSS animation detected without @media (prefers-reduced-motion: reduce) override",needsAI:!0,outerHtml:""});}catch{}let A=/\b(flash(ing)?|blink(ing)?|strobe)\b/i,x=document.querySelectorAll('[class*="flash" i], [class*="blink" i], [class*="strobe" i]');for(let T of Array.from(x)){if(h.length>=30)break;if(T.closest(d)||T.tagName==="BODY"||T.tagName==="HTML")continue;let k=T.className&&typeof T.className=="string"?T.className:"";if(!A.test(k)||typeof isVisible=="function"&&!isVisible(T))continue;let w=getComputedStyle(T).animationDuration,C=9999;if(w){let L=parseFloat(w);Number.isFinite(L)&&(C=/ms/i.test(w)?L:L*1e3);}if(C>333)continue;let E=typeof uniqueSel=="function"?uniqueSel(T):"";h.push({selector:E,attribute:"data-flashing-review",currentValue:"",issueType:"flashing_content",wcag:"2.3.1",context:`class matches flash/blink/strobe with ${C}ms animation-duration \u2014 seizure risk`,needsAI:false,needsReview:true,reviewReason:"WCAG 2.3.1 is met by stopping or slowing the flashing below 3 per second (remove the animation, slow it past 333ms, or add a pause control). aria-hidden does not stop flashing and hides content from assistive tech \u2014 do not apply it.",outerHtml:(T.outerHTML||"").slice(0,300)});}return h},jh={name:"cssAnimations",cap:30,async detect(d){return d.evaluate(qI)}};var BI=()=>{let f=[];function h(A){let x=(A.getAttribute("role")||"").toLowerCase();return x==="presentation"||x==="none"||(A.getAttribute("class")||"").toLowerCase().indexOf("layout")!==-1}function m(A){if(!A)return 0;let x=A.querySelectorAll("th, td"),T=0;for(let k=0;k<x.length;k++){let D=parseInt(x[k].getAttribute("colspan")||"1",10);T+=isNaN(D)||D<1?1:D;}return T}function p(A){let x=A.querySelectorAll("tr"),T=[];for(let k=0;k<x.length;k++){let D=x[k];D.closest("table")===A&&T.push(D);}return T}let b=document.querySelectorAll("table");for(let A=0;A<b.length&&!(f.length>=30);A++){let x=b[A];if(isWidget(x)||!isVisible(x)||h(x))continue;let T=p(x);if(T.length<=1)continue;let k=T[0],D=m(k);if(D<=1)continue;let w=uniqueSel(x),C=getNearbyContext(x),E=x.querySelectorAll("img, svg, picture").length>=2;if(E&&!(x.textContent||"").trim()){if(x.querySelector("input, select, textarea, button")&&(E=false),E&&x.querySelector("th, thead, caption, [scope], [headers]")&&(E=false),E){let v=Array.from(x.querySelectorAll("img")).map(_=>(_.getAttribute("alt")||"").trim().toLowerCase()).filter(Boolean);new Set(v).size<v.length&&(E=false);}}else if(E){let v=x.querySelectorAll("td, th"),_=0;for(let F=0;F<v.length&&E;F++){let P=v[F];if(P.closest("table")!==x)continue;let B=(P.textContent||"").trim(),z=!!P.querySelector("img, svg, picture");if(!B&&!z)continue;_++;let X=P.querySelectorAll("a[href]");E=P.tagName==="TD"&&X.length===1&&z&&(X[0].textContent||"").trim()===B;}_<2&&(E=false);}if(E){f.push({selector:w,attribute:"role",currentValue:x.getAttribute("role")||"",issueType:"missing_table_header",wcag:"1.3.1",context:JSON.stringify({reason:"table lays out images / image links only \u2014 likely a layout table",rows:T.length,cols:D,nearbyHeading:C.nearbyHeading}),needsAI:false,fixValue:"presentation",needsReview:true,reviewReason:'table of images or single image-links is likely layout \u2014 confirm, then mark it role="presentation" (do not add headers)',outerHtml:(x.outerHTML||"").slice(0,300)});continue}let L=null,I=x.querySelectorAll("thead");for(let v=0;v<I.length;v++)if(I[v].closest("table")===x){L=I[v];break}let N=L&&L.querySelector("tr")!==null,q=false;for(let v=0;v<T.length&&!q;v++){let _=T[v].children;for(let F=0;F<_.length&&!q;F++){let P=_[F],B=(P.tagName||"").toLowerCase();if(B!=="td"&&B!=="th")continue;if(B==="th"){q=true;break}let z=(P.getAttribute("headers")||"").trim();if(!z)continue;let X=z.split(/\s+/);for(let te=0;te<X.length;te++){let ee=document.getElementById(X[te]);if(ee&&(ee.tagName||"").toLowerCase()==="th"&&ee.closest("table")===x){q=true;break}}}}if(!N&&!q&&f.length<30&&f.push({selector:w,attribute:"thead",currentValue:L?"empty":"",issueType:"missing_table_header",wcag:"1.3.1",context:JSON.stringify({reason:L?"<thead> has no <tr>":"no <thead> element",rows:T.length,cols:D,nearbyHeading:C.nearbyHeading}),needsAI:false,fixValue:"wrap-first-row",outerHtml:(x.outerHTML||"").slice(0,300)}),D>2){let v=k.querySelectorAll("th, td"),_=v.length>0;for(let F=0;F<v.length;F++)if((v[F].tagName||"").toLowerCase()!=="td"){_=false;break}if(_)for(let F=0;F<v.length&&!(f.length>=30);F++){let P=v[F],B=uniqueSel(P),z=(P.textContent||"").trim().slice(0,60);f.push({selector:B,attribute:"role",currentValue:P.getAttribute("role")||"",issueType:"missing_table_header",wcag:"1.3.1",context:JSON.stringify({reason:"first-row <td> in data table \u2014 should be <th>",cellText:z,colIndex:F,nearbyHeading:C.nearbyHeading}),needsAI:false,fixValue:"columnheader",outerHtml:(P.outerHTML||"").slice(0,300)});}}let H=[],$=[],U=new Map;for(let v=0;v<T.length;v++){let _=T[v],F=0;for(let P=0;P<_.children.length;P++){let B=_.children[P],z=(B.tagName||"").toLowerCase();if(z!=="td"&&z!=="th")continue;for(;H.some(Z=>Z.lane===F&&Z.untilRow>v);)F++;let X=parseInt(B.getAttribute("colspan")||"1",10);(isNaN(X)||X<1)&&(X=1);let te={rowIdx:v,lane:F,span:X,headers:(B.getAttribute("headers")||"").trim()};z==="td"?$.push(te):U.set(B,te);let ee=parseInt(B.getAttribute("rowspan")||"1",10)||1;if(ee>1)for(let Z=0;Z<X;Z++)H.push({lane:F+Z,untilRow:v+ee});F+=X;}}let K=(v,_)=>_.lane<v.lane+v.span&&_.lane+_.span>v.lane,R=x.querySelectorAll("th");for(let v=0;v<R.length&&!(f.length>=30);v++){let _=R[v];if(_.closest("table")!==x)continue;let F=(_.getAttribute("scope")||"").trim().toLowerCase();if(F==="col"||F==="row"||F==="colgroup"||F==="rowgroup")continue;let P=false;if((_.getAttribute("headers")||"").trim())P=true;else {let de=(_.getAttribute("id")||"").trim();if(de)for(let ke=0;ke<$.length;ke++){let De=$[ke].headers;if(De&&De.split(/\s+/).indexOf(de)!==-1){P=true;break}}}if(P)continue;let B=_.closest("tr"),z=_.closest("thead")!==null,X=false;B&&T.length>0&&T[0]===B&&(X=true);let te=false;if(B){let de=B.querySelectorAll("th, td");de.length>0&&de[0]===_&&(te=true);}let ee="col";z||X?ee="col":te&&(ee="row");let Z=U.get(_);if(!P&&Z){if(ee==="row")P=$.some(de=>de.rowIdx===Z.rowIdx&&!de.headers&&de.lane>=Z.lane+Z.span);else if(P=$.some(de=>de.rowIdx>Z.rowIdx&&!de.headers&&K(Z,de)),!P)for(let de=0;de<R.length;de++){let ke=U.get(R[de]);if(!ke||ke.rowIdx<=Z.rowIdx||!K(Z,ke))continue;let De=T[ke.rowIdx],Be=De?De.children:[];if(Be.length>0&&Be[0]===R[de]&&R[de].closest("table")===x){P=true;break}}}if(P)continue;let ie=uniqueSel(_),be=(_.textContent||"").trim().slice(0,60);f.push({selector:ie,attribute:"scope",currentValue:F,issueType:"missing_table_scope",wcag:"1.3.1",context:JSON.stringify({reason:"<th> missing scope attribute",inferred:ee,inThead:z,firstRow:X,firstCol:te,headerText:be}),needsAI:false,fixValue:ee,outerHtml:(_.outerHTML||"").slice(0,300)});}}return f},zh={name:"dataTables",cap:30,async detect(d){return d.evaluate(BI)}};var HI=()=>{let f=[];for(let h of document.querySelectorAll("img[alt]")){if(f.length>=30)break;let m=h;if((m.getAttribute("alt")||"").trim()!=="")continue;let p=(m.getAttribute("title")||"").trim().replace(/\s+/g," ");if(!p||isWidget(m))continue;let b=(m.getAttribute("role")||"").toLowerCase();b==="presentation"||b==="none"||m.getAttribute("aria-hidden")==="true"||m.closest('[aria-hidden="true"]')||(m.getAttribute("aria-label")||"").trim()||(m.getAttribute("aria-labelledby")||"").trim()||isVisible(m)&&f.push({selector:uniqueSel(m),attribute:"data-asw-decorative-title",currentValue:"",issueType:"decorative_image_with_title",wcag:"1.1.1",context:'image with alt="" also has title="'+p.slice(0,80)+'"',needsAI:true,needsReview:true,reviewReason:'WCAG 1.1.1 Non-text Content: this image has an empty alt (declared decorative) but also a title of "'+p.slice(0,80)+'". Violation when the picture conveys information the title names (a logo, a chart, a labelled icon), so the empty alt hides it. Pass when the picture is purely decorative and the title only repeats nearby text or adds nothing.',outerHtml:(m.outerHTML||"").slice(0,300)});}return f},Gh={name:"decorativeImageTitle",cap:30,async detect(d){return d.evaluate(HI)}};var VI=()=>{let d="[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye], [class*=EquallyAI]",f=/^[^\p{L}\p{N}\s]*$/u,h=/^[\s\u00A0\u2000-\u200F\u2028-\u202F]*$/,p=[],b=["link","button","menuitem","menuitemcheckbox","menuitemradio","tab","checkbox","radio","switch","option","treeitem","gridcell","combobox","textbox","searchbox","slider","spinbutton","img","heading","listitem","none","presentation","generic","navigation","region","group","dialog"],A=k=>{let D=k.computedRole;if(typeof D=="string")return D.toLowerCase();let w=(k.getAttribute("role")||"").trim().toLowerCase().split(/\s+/);for(let C of w)if(b.indexOf(C)>=0)return C;return k.hasAttribute("href")?"link":"generic"},x=k=>{let D=A(k);if(D==="link"||k.hasAttribute("href"))return true;if(D&&D!=="generic")return false;let w=k.getAttribute("tabindex");if(w===null)return false;let C=parseInt(w,10);return !isNaN(C)&&C>=0},T=document.querySelectorAll("a");for(let k of T){if(p.length>=50)break;if(!x(k)||k.closest(d)||k.getAttribute("aria-hidden")==="true"||k.getAttribute("role")==="presentation"||k.closest('[aria-hidden="true"]')||!isVisible(k))continue;let D=getAccessibleName(k);if(D&&D.length>0&&!h.test(D)&&!f.test(D))continue;let w=k.querySelectorAll("img[alt]"),C="";for(let R of w){let v=(R.getAttribute("alt")||"").trim();v&&(C+=v+" ");}if(C.trim())continue;let E=k.getAttribute("aria-labelledby");if(E&&typeof __resolveIdRefs=="function"&&__resolveIdRefs(E))continue;let L=uniqueSel(k),I=k.getAttribute("href")||"",N=(k.textContent||"").trim(),q=getNearbyContext(k),H="";N&&h.test(N)?H="[whitespace only]":N&&f.test(N)&&(H=N);let $=(document.documentElement.getAttribute("lang")||"").trim(),U=[];k.closest("nav")&&U.push("inside nav"),q.nearbyHeading&&U.push("heading: "+q.nearbyHeading),I&&U.push("href: "+I.slice(0,120)),U.push("parent: "+q.parentTag),$&&U.push("page language: "+$);let K={selector:L,attribute:"aria-label",currentValue:H,issueType:"empty_link",wcag:"2.4.4",context:U.join(" | "),needsAI:true,outerHtml:k.outerHTML.slice(0,300)};p.push(K);}return p},Uh={name:"emptyLinks",cap:50,async detect(d){return d.evaluate(VI)}};var $I=()=>{let f=[],h=new Set;function m(D){return (D||"").trim()}function p(D){let w=m(D.getAttribute("aria-label")||"");if(w)return w;let C=D.getAttribute("aria-labelledby");if(C){let L=C.split(/\s+/),I="";for(let N=0;N<L.length;N++){let q=document.getElementById(L[N]);q&&(I+=" "+(q.textContent||""));}if(m(I))return m(I)}let E=m(D.getAttribute("title")||"");return E||""}let b=document.querySelectorAll("fieldset");for(let D=0;D<b.length&&!(f.length>=30);D++){let w=b[D];if(isWidget(w)||!isVisible(w)||isHiddenFromAT(w))continue;if(p(w)){h.add(w);continue}let C=null,E=w.querySelectorAll("legend");for(let $=0;$<E.length;$++)if(E[$].closest("fieldset")===w){C=E[$];break}let L=C!==null,I=C?m(C.textContent||""):"";if(L&&I){h.add(w);continue}let N=getNearbyContext(w),q=w.querySelectorAll("input, select, textarea"),H=uniqueSel(w);f.push({selector:H,attribute:"aria-label",currentValue:"",issueType:"missing_fieldset_legend",wcag:"1.3.1",context:JSON.stringify({reason:L?"fieldset has empty <legend>":"fieldset missing <legend>",controlCount:q.length,nearbyHeading:N.nearbyHeading,parentTag:N.parentTag}),needsAI:true,outerHtml:(w.outerHTML||"").slice(0,300)}),h.add(w);}let A=document.querySelectorAll('[role="group"], [role="radiogroup"]');for(let D=0;D<A.length&&!(f.length>=30);D++){let w=A[D];if(isWidget(w)||!isVisible(w)||isHiddenFromAT(w)||h.has(w))continue;if(p(w)){h.add(w);continue}let C=w.getAttribute("role")||"",E=getNearbyContext(w),L=w.querySelectorAll("input, select, textarea");if(C==="group"&&w.querySelectorAll('input:not([type="hidden"]), select, textarea, [role="radio"], [role="checkbox"], [role="switch"], [role="textbox"], [role="combobox"], [role="spinbutton"], [role="slider"]').length===0)continue;let I=uniqueSel(w);f.push({selector:I,attribute:"aria-label",currentValue:"",issueType:"missing_fieldset_legend",wcag:"1.3.1",context:JSON.stringify({reason:'role="'+C+'" container without accessible name',role:C,controlCount:L.length,nearbyHeading:E.nearbyHeading,parentTag:E.parentTag}),needsAI:true,outerHtml:(w.outerHTML||"").slice(0,300)}),h.add(w);}let x={},T=document.querySelectorAll('input[type="radio"], input[type="checkbox"]');for(let D=0;D<T.length;D++){let w=T[D];if(isWidget(w)||!isVisible(w)||isHiddenFromAT(w))continue;let C=w.getAttribute("name")||"";if(!C)continue;let E=w.closest("form"),L=E?E.getAttribute("id")||E.getAttribute("action")||E.tagName:"no-form",I=(w.getAttribute("type")||"").toLowerCase(),N=L+"::"+I+"::"+C;x[N]||(x[N]=[]),x[N].push(w);}let k=Object.keys(x);for(let D=0;D<k.length&&!(f.length>=30);D++){let w=x[k[D]];if(w.length<3)continue;let C=w[0],E=C.closest('fieldset, [role="group"], [role="radiogroup"]'),L=false;if(E){L=true;for(let U=1;U<w.length;U++)if(!E.contains(w[U])){L=false;break}}if(L&&E)continue;let I=C.parentElement;for(;I&&I!==document.body;){let U=true;for(let K=1;K<w.length;K++)if(!I.contains(w[K])){U=false;break}if(U)break;I=I.parentElement;}if(!I||I===document.body||h.has(I))continue;let N=(C.getAttribute("type")||"").toLowerCase(),q=C.getAttribute("name")||"",H=getNearbyContext(C),$=uniqueSel(I);f.push({selector:$,attribute:"role",currentValue:I.getAttribute("role")||"",issueType:"missing_fieldset_legend",wcag:"1.3.1",context:JSON.stringify({reason:"unwrapped "+N+" group ("+w.length+' inputs share name="'+q+'")',inputType:N,inputCount:w.length,name:q,nearbyHeading:H.nearbyHeading,parentTag:H.parentTag}),needsAI:false,fixValue:N==="radio"?"radiogroup":"group",outerHtml:(I.outerHTML||"").slice(0,300)}),h.add(I);}return f},Wh={name:"fieldsetLegend",cap:30,async detect(d){return d.evaluate($I)}};var jI=()=>{let d=[],f=document.querySelectorAll('header, nav, div, [class*="header"], [class*="navbar"], [class*="sticky"], [role="banner"]'),h=0;for(let m of Array.from(f)){let p=getComputedStyle(m);if(p.display==="none"||p.visibility==="hidden"||p.position!=="sticky"&&p.position!=="fixed")continue;let b=m.getBoundingClientRect();if(b.top>50||b.bottom<=0)continue;let A=Math.round(b.height);A<40||A>240||A>h&&(h=A);}if(h>0){let m=window.scrollX,p=window.scrollY,b=0,A=0;try{let T=[],k=new Set;document.querySelectorAll('a[href^="#"]').forEach(D=>{let w=D.getAttribute("href").slice(1);if(!w)return;let C=document.getElementById(w);C&&!k.has(C)&&(k.add(C),T.push(C));});for(let D of T){if(A>=8)break;let w=getComputedStyle(D);if(w.display==="none"||w.visibility==="hidden")continue;A++,D.scrollIntoView({block:"start"});let C=D.getBoundingClientRect(),E=Math.max(C.height,1);Math.max(0,Math.min(C.bottom,h)-Math.max(C.top,0))/Math.min(E,h)>=.5&&b++;}}catch{}try{window.scrollTo(m,p);}catch{}let x=`scroll-margin-top: ${h+8}px; scroll-padding-top: ${h+8}px;`;A>0&&b>0?d.push({selector:"html",attribute:"style",currentValue:"",issueType:"focus_obscured_by_sticky",wcag:"2.4.11",context:`sticky header height: ${h}px \u2014 ${b}/${A} in-page anchor targets land under it on jump`,needsAI:false,fixValue:x}):A===0&&d.push({selector:"html",attribute:"style",currentValue:"",issueType:"focus_obscured_by_sticky",wcag:"2.4.11",context:`sticky header height: ${h}px \u2014 no in-page anchor targets available to verify obscuring behaviorally`,needsAI:false,needsReview:true,reviewReason:"sticky top bar present; could not verify focus/jump obscuring automatically \u2014 check skip-link and anchor landing positions, or set scroll-padding-top preventively",fixValue:x});}return d},Xh={name:"focusObscured",async detect(d){return d.evaluate(jI)}};var Jh={name:"focusVisible",cap:40,async detect(d){let f=typeof d.keyboard?.press=="function";try{await d.evaluate(()=>{let h=document.activeElement;window[Symbol.for("wa.prevFocus")]=h&&h!==document.body&&h!==document.documentElement?h:null,window[Symbol.for("wa.prevScroll")]=[window.scrollX,window.scrollY];let m=getSelection();window[Symbol.for("wa.prevSelection")]=m?Array.from({length:m.rangeCount},(p,b)=>m.getRangeAt(b).cloneRange()):[];});}catch{}if(f)try{await d.keyboard.press("Tab");}catch{}return d.evaluate(async h=>{let p=[],b=["a[href]","button",'input:not([type="hidden"])',"select","textarea",'[role="button"]','[role="link"]','[role="menuitem"]','[role="tab"]','[tabindex]:not([tabindex="-1"])'].join(",");try{document.activeElement?.blur?.();}catch{}let A=document.querySelectorAll(b),x=Symbol.for("wa.prevFocus"),T=window[x]??null;try{delete window[x];}catch{}for(let k of A){if(p.length>=40)break;if(typeof isWidget=="function"&&isWidget(k)||typeof isHiddenFromAT=="function"&&isHiddenFromAT(k)||typeof isVisible=="function"&&!isVisible(k)||!k.offsetParent&&k.tagName!=="BODY")continue;let D=k.hasAttribute("style"),w=k.getAttribute("style"),C=["transition-property","transition-duration","transition-timing-function","transition-delay","transition-behavior"],E=k.style?C.map(P=>[P,k.style.getPropertyValue(P),k.style.getPropertyPriority(P)]):[];k.style&&(k.style.transition="none");let L=()=>{if(k.style){k.style.removeProperty("transition");for(let[P,B,z]of E)B&&k.style.setProperty(P,B,z);!D&&!k.getAttribute("style")?k.removeAttribute("style"):D&&w!==null&&w.trim()===""&&k.getAttribute("style")===""&&k.setAttribute("style",w);}},I=getComputedStyle(k),N=I.outline,q=I.outlineWidth,H=I.outlineStyle,$=I.boxShadow,U=I.border,K=I.backgroundColor;try{k.focus({preventScroll:!0});}catch{L();continue}if(document.activeElement!==k){L();continue}let R=()=>{let P=getComputedStyle(k),B=(P.outlineStyle||"").toLowerCase(),z=parseFloat(P.outlineWidth||"0"),X=P.outline!==N,te=B!=="none"&&B!=="hidden"&&z>0,ee=P.boxShadow!==$&&P.boxShadow!=="none"&&P.boxShadow!=="",Z=P.border!==U,ie=P.backgroundColor!==K;return X&&te||ee||Z||ie},v=R(),_=typeof k.getAnimations=="function"&&k.getAnimations().some(P=>P.playState==="running"&&!("transitionProperty"in P));if(!v&&!_){let P=B=>typeof requestAnimationFrame=="function"?requestAnimationFrame(B):setTimeout(B,16);if(await new Promise(B=>setTimeout(()=>P(()=>B()),20)),document.activeElement!==k){L();continue}v=R();}if(L(),v||parseFloat(q)>0&&H!=="none")continue;let F=typeof uniqueSel=="function"?uniqueSel(k):k.tagName.toLowerCase();p.push({selector:F,pseudo:":focus-visible",attribute:"style",currentValue:H+" "+q,issueType:"focus_not_visible",wcag:"2.4.7",context:`${k.tagName.toLowerCase()} has no visible focus indicator \u2014 outline, box-shadow, border, and background all unchanged on focus (apply the style under :focus-visible)`,needsAI:false,fixValue:"outline: 2px solid #2563eb !important;outline-offset: 2px !important;",outerHtml:k.outerHTML.slice(0,200),...h?{}:{needsReview:true,reviewReason:"Focus indicator could not be verified with a real keyboard event; may use a keyboard-only (:focus-visible) pattern \u2014 verify by tabbing to it."}});}try{document.activeElement?.blur?.();}catch{}try{T&&T.isConnected&&T.focus({preventScroll:!0});}catch{}try{let k=Symbol.for("wa.prevScroll"),D=window[k];delete window[k],D&&window.scrollTo({left:D[0],top:D[1],behavior:"instant"});}catch{}try{let k=Symbol.for("wa.prevSelection"),D=window[k];delete window[k];let w=getSelection();if(w&&D){w.removeAllRanges();for(let C of D)w.addRange(C);}}catch{}return p},f)}};var zI=()=>{let f=[],h=["new","register","signup","sign-up","sign_up","create","change","reset"],m=["confirm","verify","retype","re-type","repeat","again"];function p(w){if(!w)return false;let C=" "+((w.getAttribute("id")||"")+" "+(w.getAttribute("class")||"")+" "+(w.getAttribute("name")||"")+" "+(w.getAttribute("action")||"")).toLowerCase()+" ";for(let E=0;E<h.length;E++)if(C.indexOf(h[E])!==-1)return true;return false}function b(w){let C=((w.getAttribute("name")||"")+" "+(w.getAttribute("id")||"")+" "+(w.getAttribute("placeholder")||"")+" "+(w.getAttribute("aria-label")||"")).toLowerCase();for(let E=0;E<m.length;E++)if(C.indexOf(m[E])!==-1)return true;return false}let A=document.querySelectorAll('input[type="password"], input[type="Password"]');for(let w of A){if(f.length>=30)break;let C=w;if(isWidget(C)||isHiddenFromAT(C)||!isVisible(C))continue;let E=(C.getAttribute("autocomplete")||"").trim().toLowerCase();if(b(C)){if(E==="new-password")continue;let H=uniqueSel(C);f.push({selector:H,attribute:"autocomplete",currentValue:E,issueType:"missing_autocomplete",wcag:"1.3.5",context:"confirm password field | name: "+(C.getAttribute("name")||"")+" | id: "+(C.getAttribute("id")||""),needsAI:false,fixValue:"new-password",outerHtml:(C.outerHTML||"").slice(0,300)});continue}if(E)continue;let I=C.form||C.closest("form"),N=p(I),q=uniqueSel(C);f.push({selector:q,attribute:"autocomplete",currentValue:"",issueType:"missing_autocomplete",wcag:"1.3.5",context:(N?"new/signup/change password form":"login form")+" | name: "+(C.getAttribute("name")||"")+" | id: "+(C.getAttribute("id")||""),needsAI:false,fixValue:N?"new-password":"current-password",outerHtml:(C.outerHTML||"").slice(0,300)});}let x=document.querySelectorAll("form"),T=/\*|\brequired\b|\bmandatory\b/i;for(let w of x){if(f.length>=30)break;let C=w;if(isWidget(C)||!isVisible(C))continue;let E=C.querySelectorAll("input[required], select[required], textarea[required]");if(!E.length)continue;let L=0;for(let $ of E)isVisible($)&&L++;if(L===0)continue;let I=C.querySelectorAll('input:not([type="hidden"]):not([type="submit"]):not([type="button"]), select, textarea'),N=0;for(let $ of I)isVisible($)&&N++;if(L>=N||(C.getAttribute("data-asw-required-hint")||"").trim())continue;let q=(C.textContent||"").trim();if(T.test(q))continue;let H=uniqueSel(C);f.push({selector:H,attribute:"data-asw-required-hint",currentValue:"",issueType:"missing_required_indicator",wcag:"3.3.2",context:`form has ${L} required input(s) but no visible "*" / "required" / "mandatory" marker`,needsAI:true,outerHtml:(C.outerHTML||"").slice(0,300)});}let k='input[type="submit" i], input[type="image" i], button:not([type]), button[type="submit" i], button[type=""]',D='input:not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]), select, textarea';for(let w of x){if(f.length>=30)break;let C=w;if(isWidget(C)||!isVisible(C)||isHiddenFromAT(C))continue;let E=[];for(let $ of C.querySelectorAll(D))isVisible($)&&E.push($);if(E.length===0||C.querySelector(k))continue;let L=C.getAttribute("id");if(L){let $=false;for(let U of document.querySelectorAll(k))if(U.getAttribute("form")===L){$=true;break}if($)continue}if(((C.getAttribute("role")||"").toLowerCase()==="search"||!!C.closest('[role="search"]'))&&E.length===1)continue;let N=E.slice(0,4).map($=>$.tagName.toLowerCase()+($.tagName==="INPUT"?"["+($.getAttribute("type")||"text")+"]":"")).join(", "),q=[];for(let $ of C.querySelectorAll('button:not([type="reset" i]), input[type="button" i], [role="button"]')){if(q.length>=3)break;let U=$;if(!isVisible(U))continue;let K=((U.tagName==="INPUT"?U.getAttribute("value"):U.textContent)||U.getAttribute("aria-label")||"").trim().replace(/\s+/g," ").slice(0,30);q.push('"'+K+'"');}if(q.length&&!(C.getAttribute("action")||"").trim())continue;let H=q.length?" Buttons present that are not a submit control (type=button or role=button): "+q.join(", ")+".":"";f.push({selector:uniqueSel(C),attribute:"data-asw-submit-control",currentValue:"",issueType:"form_missing_submit",wcag:"3.2.2",context:`form with ${E.length} visible field(s) (${N}) and no submit control`,needsAI:true,needsReview:true,reviewReason:"WCAG 3.2.2 On Input: this form has "+E.length+" visible field(s) ("+N+") and no submit control (no submit button, input[type=submit|image], or outside button via form=). Violation only when changing a field or pressing Enter causes an unexpected change of context (navigation, submission, reload) with no button to ask for it. Pass when it is a script-driven or search-style form with no such surprise."+H,outerHtml:(C.outerHTML||"").slice(0,300)});}return f},Yh={name:"formAttributes",cap:30,async detect(d){return d.evaluate(zI)}};var Zh={en:"the and of to is in that for with on are this you it be as at by from or your our we not have has was will can an all more about which their they",de:"der die das und ist nicht mit sich des den dem ein eine einen einer auf f\xFCr von zu im in auch sie wir ihr bei oder wird sind werden \xFCber nach aus wie noch nur unsere ihre sowie k\xF6nnen zum zur",nl:"de het een en van is dat op te in zijn voor met niet aan er ook als bij door wordt om uit worden naar onze uw jouw maar dan nog deze kunt wij u ons of wat die kan was",fr:"le la les et des est une du que pour dans qui pas sur au avec ce plus sont vous nous par ou leur cette mais \xEAtre aux votre vos notre nos",es:"el la los las y es una del que por para con se en no su sus m\xE1s al como pero este esta son nuestro nuestra nuestros usted tambi\xE9n de",it:"il lo la gli le e \xE8 di che per in una un del della con non sono pi\xF9 dei delle nel alla come anche questo questa nostro nostra nostri ti",pt:"o a os as e \xE9 de do da dos das que para com n\xE3o uma um em no na por mais seu sua nosso nossa voc\xEA tamb\xE9m s\xE3o",da:"og er det en at til af p\xE5 med for ikke den som de har vi kan vil fra jeres vores ogs\xE5 eller jer hvis efter",sv:"och \xE4r det en att till av p\xE5 med f\xF6r inte den som har vi kan ska fr\xE5n ocks\xE5 eller v\xE5ra v\xE5r din dina",nb:"og er det en at til av p\xE5 med for ikke den som har vi kan skal fra ogs\xE5 eller v\xE5re v\xE5r deg dine",pl:"i w na z do \u017Ce si\u0119 jest nie to o od jak dla po przez s\u0105 lub oraz nasz nasze mo\u017Ce tak\u017Ce jego",cs:"a v na se je \u017Ee s z do o to jako pro by nen\xED jsou nebo tak\xE9 ale jeho na\u0161e",ca:"el la els les i \xE9s de del dels que per amb en un una no es al als com m\xE9s per\xF2 aquest aquesta aquests s\xF3n seu seva nostre nostra hi ho ja tamb\xE9 o",gl:"o a os as e \xE9 de do da dos das que para con non unha un en no na nos nas por m\xE1is seu s\xFAa cando tam\xE9n pero este esta moi",af:"die en van is in dat op te vir nie met om wat sy hy hulle ons jy u was het aan as by ook maar of kan sal hierdie n ek julle deur baie"},Jo=new Map(Object.entries(Zh).map(([d,f])=>[d,new Set(f.split(" "))])),Kh=(()=>{let d=new Map;for(let[h,m]of Object.entries(Zh))for(let p of new Set(m.split(" "))){let b=d.get(p)||[];b.push(h),d.set(p,b);}let f=new Map;for(let[h,m]of d)f.set(h,m.map(p=>[p,1/m.length]));return f})(),GI=[["ko",/\p{Script=Hangul}/gu],["el",/\p{Script=Greek}/gu],["he",/\p{Script=Hebrew}/gu],["th",/\p{Script=Thai}/gu],["ja",/[\p{Script=Hiragana}\p{Script=Katakana}]/gu],["zh",/\p{Script=Han}/gu]],ui;function UI(d){if(!/^[a-z]{2,3}$/.test(d))return false;if(ui===void 0)try{ui=new Intl.DisplayNames(["en"],{type:"language",fallback:"none"});}catch{ui=null;}if(!ui)return d.length===2;try{let f=ui.of(d);return !!f&&f.toLowerCase()!==d}catch{return false}}function Nu(d){let f=String(d||"").trim().toLowerCase().match(/^([a-z]{2,3})(?:[-_][a-z0-9]{2,8})*$/);return !f||f[1]==="und"||f[1]==="mul"||f[1]==="zxx"?"":UI(f[1])?f[1]:""}function WI(d){if(!d)return "";let f;try{f=new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(d)?d:`https://${d}`);}catch{return ""}let h=/^([a-z]{2})(?:[-_][a-z]{2,4})?$/i,m=f.hostname.toLowerCase().split(".");if(m.length>=3&&h.test(m[0])){let b=Nu(m[0]);if(b)return b}let p=f.pathname.split("/").filter(Boolean)[0]||"";return h.test(p)?Nu(p):""}function XI(d){let f=String(d||"").slice(0,2e4),h={lean:null,confident:false,ruledOut:new Set};if(!f.trim())return h;let m=(f.match(/\p{L}/gu)||[]).length;if(m>=40){let U=GI.map(([F,P])=>[F,(f.match(P)||[]).length]),K=U.find(([F])=>F==="ja")[1],R=U.find(([F])=>F==="zh")[1],v=K>=Math.max(5,(K+R)*.05)?[["ja",K+R]]:[["zh",R]],_=[...U.filter(([F])=>F!=="ja"&&F!=="zh"),...v].sort((F,P)=>P[1]-F[1]);if(_[0][1]/m>=.6)return {lean:_[0][0],confident:true,ruledOut:new Set(Jo.keys())}}let p=f.toLowerCase().match(/\p{L}+/gu)||[];if(!p.length)return h;let b={};for(let U of p){let K=Kh.get(U);if(K)for(let[R,v]of K)b[R]=(b[R]||0)+v;}let A=new Map;for(let U of p)Kh.has(U)&&A.set(U,(A.get(U)||0)+1);let x=new Map,T=new Map;for(let[U,K]of Jo){let R=0,v=0;for(let[_,F]of A)K.has(_)&&(R+=F,v++);x.set(U,R/p.length),T.set(U,v);}let k=p.length>=30,D=new Set(k?[...x].filter(([,U])=>U<.12).map(([U])=>U):[]),w=(U,K)=>{let R=Jo.get(U),v=Jo.get(K),_=0;for(let[F,P]of A)R.has(F)&&!v.has(F)&&(_+=P);return _},C=Object.entries(b).sort((U,K)=>K[1]-U[1]);if(!C.length)return {...h,ruledOut:D};let[E,L]=C[0],I=C[1]?.[1]||0,q=(k?[...x].filter(([U,K])=>U!==E&&K>=.12).map(([U])=>U):[]).every(U=>{let K=w(E,U);return K>=5&&K>=w(U,E)*2}),H=k&&L>=5&&(x.get(E)||0)>=.12&&(T.get(E)||0)>=6&&q,$=L>=2&&(H||L>=I*1.5)?E:null;return {lean:$,confident:!!$&&H,ruledOut:D}}function Qh(d){let f=[...new Set((d.declared||[]).map(Nu).filter(Boolean))],h=WI(d.url),m=XI(d.text);if(m.confident&&m.lean)return f.some(p=>p!==m.lean)||h&&h!==m.lean?null:{lang:m.lean,source:"text"};if(f.length===1){let p=f[0];return m.lean&&m.lean!==p||m.ruledOut.has(p)||h&&h!==p?null:{lang:p,source:"declared"}}return f.length>1?null:h&&m.lean===h&&!m.ruledOut.has(h)?{lang:h,source:"url"}:null}function JI(){let d=document.documentElement;if(!d||(d.getAttribute("lang")||"").trim())return null;let f=String(typeof location<"u"&&location.href||""),h=b=>b.replace(/[#?].*$/,"").replace(/\/+$/,""),m=null;try{let b=document.querySelectorAll('link[rel="alternate"][hreflang]');for(let A=0;A<b.length;A++){let x=b[A],T=x.getAttribute("hreflang")||"";if(T&&T.toLowerCase()!=="x-default"&&x.href&&h(x.href)===h(f)){m=T;break}}}catch{}return {url:f,text:(()=>{let b=document.body;if(!b)return "";if(typeof b.innerText=="string")return b.innerText.slice(0,2e4);let A=b.cloneNode(true);return A.querySelectorAll('script, style, noscript, template, [hidden], [aria-hidden="true"]').forEach(x=>x.remove()),String(A.textContent||"").replace(/\s+/g," ").slice(0,2e4)})(),declared:[d.getAttribute("xml:lang"),document.querySelector('meta[http-equiv="content-language" i]')?.getAttribute("content")??null,document.querySelector('meta[name="language" i]')?.getAttribute("content")??null,document.querySelector('meta[property="og:locale"]')?.getAttribute("content")??null,document.body?.getAttribute("lang")??null,m]}}function YI(d){if(!d)return [];let f=Qh(d),h={selector:"html",attribute:"lang",currentValue:"",issueType:"missing_document_language",wcag:"3.1.1",needsAI:false};return f?[{...h,context:`Document language not declared; detected "${f.lang}" from page ${f.source}`,fixValue:f.lang}]:[{...h,context:"Document language not declared, and the page text does not settle which language it is (short, mixed, conflicting, or a language without a detector list) \u2014 set <html lang> by hand",manualFix:true}]}var eg={name:"htmlLang",async detect(d){let f=await d.evaluate(JI);return YI(f)}};var KI=()=>{let d="[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye], [class*=EquallyAI]",h=[],m=document.querySelectorAll("iframe");for(let p of m){if(h.length>=50)break;if(p.closest(d))continue;let b=false;for(let H=p;H;H=H.parentElement)if((H.getAttribute("aria-hidden")||"").trim()==="true"){b=true;break}let A=(p.getAttribute("role")||"").trim().toLowerCase();if(b||A==="presentation"||A==="none"||p.closest("[inert]"))continue;let x=/^[\t\n\f\r ]*([-+]?\d+)/.exec(p.getAttribute("tabindex")||"");if(x&&parseInt(x[1],10)<0)continue;let T=getComputedStyle(p);if(p.getClientRects().length===0||T.visibility==="hidden"||T.visibility==="collapse"||(p.getAttribute("src")||"").trim().toLowerCase().indexOf("javascript:")===0)continue;let k="",D=(p.getAttribute("aria-labelledby")||"").trim();if(D){let H=D.split(/\s+/);for(let $=0;$<H.length;$++){let U=document.getElementById(H[$]);U&&(k+=" "+(U.textContent||""));}k=k.trim();}if(k||(k=(p.getAttribute("aria-label")||"").trim()),k)continue;let w=(p.getAttribute("title")||"").trim(),C=w.length===0;if(!C)continue;let E=(p.getAttribute("src")||"").toLowerCase(),L=uniqueSel(p),I=getNearbyContext(p),N=(document.documentElement.getAttribute("lang")||"").trim(),q="src: "+E.slice(0,120)+(I.nearbyHeading?" | heading: "+I.nearbyHeading:"")+(I.cardText?" | nearby text: "+I.cardText:"")+(N?" | page language: "+N:"");C&&h.push({selector:L,attribute:"title",currentValue:w,issueType:"missing_label",wcag:"4.1.2",context:q,needsAI:true,outerHtml:p.outerHTML.slice(0,300)});}return h},tg={name:"iframeTitle",cap:50,async detect(d){return d.evaluate(KI)}};var ZI=()=>{let d="[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye], [class*=EquallyAI]",f=["hidden","submit","button","reset","image","checkbox","radio","file","range","color"],m=[],p={email:"email",tel:"tel",password:"current-password"},b=[{pattern:"organization",autocomplete:"organization"},{pattern:"telephone",autocomplete:"tel"},{pattern:"first-name",autocomplete:"given-name"},{pattern:"first_name",autocomplete:"given-name"},{pattern:"last-name",autocomplete:"family-name"},{pattern:"last_name",autocomplete:"family-name"},{pattern:"firstname",autocomplete:"given-name"},{pattern:"postcode",autocomplete:"postal-code"},{pattern:"birthday",autocomplete:"bday"},{pattern:"lastname",autocomplete:"family-name"},{pattern:"province",autocomplete:"address-level1"},{pattern:"username",autocomplete:"username"},{pattern:"website",autocomplete:"url"},{pattern:"address",autocomplete:"street-address"},{pattern:"company",autocomplete:"organization"},{pattern:"country",autocomplete:"country"},{pattern:"mobile",autocomplete:"tel"},{pattern:"postal",autocomplete:"postal-code"},{pattern:"street",autocomplete:"street-address"},{pattern:"e-mail",autocomplete:"email"},{pattern:"email",autocomplete:"email"},{pattern:"phone",autocomplete:"tel"},{pattern:"state",autocomplete:"address-level1"},{pattern:"fname",autocomplete:"given-name"},{pattern:"lname",autocomplete:"family-name"},{pattern:"city",autocomplete:"address-level2"},{pattern:"bday",autocomplete:"bday"},{pattern:"name",autocomplete:"name"},{pattern:"zip",autocomplete:"postal-code"},{pattern:"url",autocomplete:"url"}],A=document.querySelectorAll("input, select, textarea");for(let x of A){if(m.length>=50)break;if(x.closest(d))continue;let T=x,k=(T.getAttribute("type")||"text").toLowerCase();if(f.includes(k)||T.getAttribute("autocomplete")||!isVisible(T))continue;let D="";if(p[k]&&(D=p[k]),!D){let C=(T.getAttribute("name")||"").toLowerCase(),E=(T.getAttribute("id")||"").toLowerCase(),L=(T.getAttribute("placeholder")||"").toLowerCase(),I=C+" "+E+" "+L;for(let N of b)if(I.includes(N.pattern)){D=N.autocomplete;break}}if(!D)continue;if(D==="country"){let C=false;if(T.tagName==="SELECT"){let E=Array.from(T.options).map(L=>(L.value||"").trim()).filter(Boolean);C=E.length>0&&E.every(L=>/^[A-Za-z]{2}$/.test(L));}C||(D="country-name");}let w=uniqueSel(T);m.push({selector:w,attribute:"autocomplete",currentValue:"",issueType:"identify_input_purpose",wcag:"1.3.5",context:"type: "+k+" | name: "+(T.getAttribute("name")||"")+" | id: "+(T.getAttribute("id")||""),needsAI:false,fixValue:D});}return m},rg={name:"inputPurpose",cap:50,async detect(d){return d.evaluate(ZI)}};var QI=()=>{let d="[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye], [class*=EquallyAI]",h=[],m=['a[href]:not([href=""])',"button:not([disabled])",'input:not([type="hidden"]):not([disabled])',"select:not([disabled])","textarea:not([disabled])",'[role="button"]:not([aria-disabled="true"])','[role="link"]:not([aria-disabled="true"])','[role="menuitem"]:not([aria-disabled="true"])','[role="tab"]:not([aria-disabled="true"])','[role="checkbox"]:not([aria-disabled="true"])','[role="radio"]:not([aria-disabled="true"])'].join(",");function p(C){let E=C.getBoundingClientRect();if(E.width===0&&E.height===0)return false;let L=-window.scrollX,I=-window.scrollY,N=document.documentElement,q=getComputedStyle(C).position;if(q==="fixed")return false;let H=q==="absolute";for(let $=C.parentElement;$&&$!==document.body&&$!==N;$=$.parentElement){let U=getComputedStyle($);if(H){if(U.position==="static")continue;H=false;}if(/auto|scroll/.test(U.overflowX+" "+U.overflowY))return false;let K=U.overflowX==="hidden"||U.overflowX==="clip",R=U.overflowY==="hidden"||U.overflowY==="clip";if(!K&&!R)continue;let v=$.getBoundingClientRect();if(K&&(E.right<=v.left||E.left>=v.right)||R&&(E.bottom<=v.top||E.top>=v.bottom))return true;if(q=U.position,q==="fixed")return false;q==="absolute"&&(H=true);}return E.right<=L||E.bottom<=I||E.left>=L+N.scrollWidth||E.top>=I+N.scrollHeight}let b='[role="tablist"],[aria-roledescription="carousel" i],[aria-roledescription="slide" i],[class*="slick"],[class*="swiper"],[class*="owl"],[class*="splide"],[class*="flickity"]',A='nav,section,article,aside,main,header,footer,form,ul,ol,dl,[role="navigation"],[role="region"],[role="main"],[role="complementary"],[role="banner"],[role="contentinfo"],[role="list"],[role="form"],[role="search"]',x='a[href],area[href],button,input:not([type="hidden"]),select,textarea,summary,iframe';function T(C){if(C.tagName==="A"){let L=C.href;if(L){for(let I of document.querySelectorAll("a[href]"))if(!(I===C||I.href!==L||I.tabIndex<0)&&!I.closest('[aria-hidden="true"],[hidden],[inert]')&&!(typeof isVisible=="function"&&!isVisible(I)))return "another focusable link to the same href exists"}}if(C.closest(b))return "inside a slider / carousel / tablist that manages its own tab order";if(C.hasAttribute("aria-controls")||C.hasAttribute("aria-selected"))return "carries aria-controls / aria-selected (a widget manages its state)";if(C.closest('[inert],[aria-hidden="true"]'))return "inside an inert or aria-hidden container";let E=C.parentElement?.closest(A);if(E){let L=0;for(let I of E.querySelectorAll(x))I!==C&&I.getAttribute("tabindex")?.trim()==="-1"&&L++;if(L>=2)return `${L} other controls in the same <${E.tagName.toLowerCase()}> also carry tabindex="-1" (inert by design)`}for(let L=C.parentElement;L&&L!==document.body&&!L.matches(x);L=L.parentElement){let I=parseInt(L.getAttribute("tabindex")||"",10);if(!Number.isFinite(I)||I<0)continue;let N=[...L.querySelectorAll(x)];if(N.length>=2&&N.every(q=>q.getAttribute("tabindex")?.trim()==="-1"))return 'a focusable ancestor owns focus and every control inside it carries tabindex="-1"';break}return ""}let k=document.querySelectorAll(m);for(let C of k){if(h.length>=30)break;if(C.closest(d)||!C.hasAttribute("tabindex"))continue;let E=C.getAttribute("tabindex")||"",L=parseInt(E,10);if(!Number.isFinite(L)||L===0||C.getAttribute("aria-disabled")==="true"||C.getAttribute("aria-hidden")==="true"||C.closest('[aria-hidden="true"]')||C.closest("[hidden]"))continue;let I=C.closest('[role="dialog"],[role="alertdialog"],dialog,[role="menu"],[role="listbox"]');if(I&&!(I.hasAttribute("open")||I.getAttribute("aria-modal")==="true"||I.getAttribute("aria-hidden")!=="true")||typeof isVisible=="function"&&!isVisible(C)||L<0&&p(C))continue;let N=(C.getAttribute("role")||"").toLowerCase();if(L<0&&C.closest('[role="tablist"],[role="menu"],[role="menubar"],[role="listbox"],[role="tree"],[role="treegrid"],[role="grid"],[role="radiogroup"],[role="toolbar"]'))continue;if(L<0&&C.tagName==="A"){if((C.getAttribute("aria-current")||"").trim().toLowerCase()==="page")continue;let _=(C.getAttribute("href")||"").trim();if(_&&!_.includes("#"))try{let F=new URL(_,document.baseURI),P=new URL(location.href);if(F.hash="",P.hash="",F.href===P.href)continue}catch{}}let H=typeof uniqueSel=="function"?uniqueSel(C):"",$=typeof getNearbyContext=="function"?getNearbyContext(C):{parentTag:C.tagName.toLowerCase(),nearbyHeading:""},U,K,R=L<0?T(C):"";L<0?(U="keyboard_trap",K="2.1.1"):(U="focus_order_disruption",K="2.4.3");let v=[];v.push("tabindex: "+L),v.push("tag: "+C.tagName.toLowerCase()),N&&v.push("role: "+N),$.nearbyHeading&&v.push("heading: "+$.nearbyHeading),v.push("parent: "+$.parentTag),R&&v.push('author tabindex="-1" looks intentional: '+R),h.push({selector:H,attribute:"tabindex",currentValue:String(L),issueType:U,wcag:K,context:v.join(" | "),needsAI:false,fixValue:"0",...R?{manualFix:true,reviewReason:`the author's tabindex="-1" looks intentional (${R}); tabindex="0" could add a duplicate or out-of-sync tab stop. Confirm the control must be reachable on its own before applying.`}:{},outerHtml:(C.outerHTML||"").slice(0,300)});}let D=/\b(?:this|(?:event|evt|e)\.(?:target|currentTarget))\.focus\s*\(\s*\)/,w=/\b(?:if|else|switch|while|for)\b|&&|\|\||\?/;for(let C of document.querySelectorAll("[onblur]")){if(h.length>=30)break;if(C.closest(d))continue;let E=C.getAttribute("onblur")||"";!D.test(E)||w.test(E)||C.matches('[disabled], [aria-disabled="true"]')||C.closest('[aria-hidden="true"], [hidden]')||typeof isVisible=="function"&&!isVisible(C)||h.push({selector:typeof uniqueSel=="function"?uniqueSel(C):C.tagName.toLowerCase(),attribute:"onblur",currentValue:E.slice(0,100),issueType:"keyboard_trap_self_focus",wcag:"2.1.2",context:"tag: "+C.tagName.toLowerCase()+" | onblur returns focus to the same element, so keyboard focus cannot leave it",needsAI:false,outerHtml:(C.outerHTML||"").slice(0,300)});}return h},ng={name:"keyboardTrap",cap:30,async detect(d){return d.evaluate(QI)}};var eM=()=>{let d="[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye], [class*=EquallyAI]",f=[],m=document.querySelectorAll('button, a[href], [role="button"], [role="link"], input[type="submit"], input[type="button"]');for(let p of Array.from(m)){if(p.closest(d)||typeof isVisible=="function"&&!isVisible(p))continue;let b="",A=[],x=[];try{let K=/(?:^|[\s_-])(?:icon|material-icons|material-symbols(?:-\w+)?|fa|fas|far|fab|fal|glyphicon|dashicons)(?:[\s_-]|$)/i,R=/icon|awesome|glyph|material symbols|dashicons/i,v=!1;try{v=R.test(getComputedStyle(p).fontFamily||"");}catch{}let _=Oe=>parseFloat(Oe||"0")||0,F=Oe=>{if(Oe.hasAttribute("hidden"))return !0;let Ie=(Oe.getAttribute("style")||"").toLowerCase().replace(/\s+/g,"");if(/clip:rect\(0/.test(Ie)||/clip-path:inset\((50|100)%/.test(Ie))return !0;if(/position:(absolute|fixed)/.test(Ie)){if(/(width|height):[01](px)?(;|!|$)/.test(Ie))return !0;let nt=Ie.match(/(?:left|top):(-\d+)/);if(nt&&parseInt(nt[1],10)<=-999)return !0}return !1},P=(Oe,Ie)=>{if(Oe.hasAttribute("hidden")||_(Ie.fontSize)===0)return !0;let nt=(Ie.clip||"").replace(/\s+/g,"");if(/^rect\(0(px)?,?0(px)?,?0(px)?,?0(px)?\)$/.test(nt)||/inset\((50|100)%\)/.test(Ie.clipPath||""))return !0;let _t=Oe.getBoundingClientRect();return !!(/hidden|clip/.test(Ie.overflow||Ie.overflowX+" "+Ie.overflowY)&&(_t.width<=1||_t.height<=1)||(Ie.position==="absolute"||Ie.position==="fixed")&&(_(Ie.left)<=-999||_(Ie.top)<=-999||_t.right<=0||_t.bottom<=-window.scrollY))},B=!1,z='h1, h2, h3, h4, h5, h6, [role="heading"]',X=0;try{X=_(getComputedStyle(p).fontSize);}catch{}let te=Oe=>{try{let Ie=getComputedStyle(Oe);return {size:_(Ie.fontSize),weight:parseInt(Ie.fontWeight||"400",10)||400}}catch{return {size:0,weight:400}}},ee=Oe=>{let Ie=Oe.closest(z);return !!Ie&&p.contains(Ie)},Z=Oe=>{for(let Ie=Oe;Ie&&Ie!==p;Ie=Ie.parentElement)try{let nt=getComputedStyle(Ie).display||"";if(nt&&!/^inline(?!-block)|^contents$/.test(nt))return Ie}catch{return p}return p},ie=Oe=>Oe.split(/\s+/).filter(Ie=>/[\p{L}\p{N}]/u.test(Ie)).length,be=document.createTreeWalker(p,NodeFilter.SHOW_TEXT),de;for(;de=be.nextNode();){let Oe=de.parentElement;if(!Oe)continue;let Ie=(de.textContent||"").trim();if(!Ie||Oe===p&&v)continue;let nt=!1,_t=!1;for(let st=Oe;st&&st!==p;st=st.parentElement){if(st.tagName==="KBD"&&(_t=!0),st.tagName==="NOSCRIPT"||st.tagName==="SCRIPT"||st.tagName==="STYLE"||st.tagName==="TEMPLATE"){nt=!0;break}if(st.getAttribute("aria-hidden")==="true"){nt=!0;break}if(K.test(st.getAttribute("class")||"")||K.test(st.getAttribute("id")||"")){nt=!0;break}try{let lt=getComputedStyle(st);if(lt.display==="none"||lt.visibility==="hidden"){nt=!0;break}if(parseFloat(lt.opacity||"1")===0){nt=!0;break}if(R.test(lt.fontFamily||"")){nt=!0;break}if(P(st,lt)){nt=!0;break}}catch{if(F(st)){nt=!0;break}st.tagName==="SPAN"&&(B=!0);}}!nt&&/[\p{L}\p{N}]/u.test(Ie)&&x.push({text:Ie,kbd:_t,p:Oe});}let ke=0,De=x.length;for(;ke<De&&x[ke].kbd;)ke++;for(;De>ke&&x[De-1].kbd;)De--;let Be=ke<De?x.slice(ke,De):x,_e=Be.map(Oe=>te(Oe.p)),Ee=Be.map(Oe=>ee(Oe.p)),bt=_e.map(Oe=>Oe.size).filter(Oe=>Oe>0),kt=bt.length?Math.min(...bt):0,He=bt.length?Math.max(...bt):0,Mt=Math.min(..._e.map(Oe=>Oe.weight)),yr=0;_e.forEach((Oe,Ie)=>{!Ee[Ie]&&Oe.weight<600&&Oe.size>yr&&(yr=Oe.size);});let Bt=Be.map(Oe=>Z(Oe.p)),Gt=Oe=>Be.some((Ie,nt)=>Bt[nt]===Bt[Oe]&&_e[nt].weight<600&&!Ee[nt]),Tt=Be.map((Oe,Ie)=>Ee[Ie]||He>kt&&_e[Ie].size>=He||_e[Ie].weight>=600&&Mt<600&&_e[Ie].size>=yr&&!Gt(Ie)),rr=Be.filter((Oe,Ie)=>Tt[Ie]),Ae=Be;if(rr.length&&rr.length<Be.length){let Oe=ie(rr.map(st=>st.text).join(" ")),Ie=(st,lt)=>{for(let Zt=st.p;Zt&&Zt!==p;Zt=Zt.parentElement)if(Zt.tagName==="TIME"||Zt.tagName==="SMALL")return !0;return X>0&&_e[lt].size>0&&_e[lt].size<X},nt=st=>{let lt=Bt[st];if(rr.some($r=>lt.contains($r.p)))return !1;let Zt=ie(Be.filter(($r,it)=>!Tt[it]&&Bt[it]===lt).map($r=>$r.text).join(" "));return Zt>=5&&Zt>Oe},_t=Be.filter((st,lt)=>Tt[lt]||!Ie(st,lt)&&!nt(lt));_t.length&&(Ae=_t);}for(let Oe of Ae)A.push(Oe.text);b=B?"":A.join(" ").trim().toLowerCase();}catch{b=((p.innerText!=null?p.innerText:p.textContent)||"").trim().toLowerCase();}if(!b||!/[\p{L}\p{N}]/u.test(b)||/^\p{L}$/u.test(b))continue;let k=/[\p{L}\p{N}\p{M}]/u,D=(p.getAttribute("aria-label")||"").trim().toLowerCase();if(!D){let K=p.getAttribute("aria-labelledby");K&&(D=(typeof __resolveIdRefs=="function"?__resolveIdRefs(K):"").toLowerCase());}if(!D)continue;let w=K=>{let R=K.toLowerCase().replace(/\([^)]*\)/g," ");return (/[\p{L}\p{N}]/u.test(R)?R:K.toLowerCase()).replace(/[\p{S}\u2026*]/gu," ").replace(/\s+/g," ").trim().normalize("NFC")},C=w(D),E=/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Thai}\p{Script=Lao}\p{Script=Khmer}\p{Script=Myanmar}]/u,L=(K,R)=>!K||!k.test(K)||E.test(K)||E.test(R),I=(K,R)=>{if(R<=0)return "";let v=K.charCodeAt(R-1);return v>=56320&&v<=57343&&R>=2?K.slice(R-2,R):K.charAt(R-1)},N=(K,R)=>{let v=K.codePointAt(R);return v===void 0?"":String.fromCodePoint(v)},q=K=>{let R=K.substring(0,40);if(!R)return true;let v=K.length>=40,_=N(R,0),F=I(R,R.length);for(let P=0;;){let B=C.indexOf(R,P);if(B<0)return false;if(L(I(C,B),_)&&(v||L(N(C,B+R.length),F)))return true;P=B+1;}};if(q(w(b))||A.length>1&&q(w(A.join(""))))continue;if(A.length>1){let K=true,R=0;for(let v of A){let _=w(v.toLowerCase());if(!_)continue;let F=_.slice(0,40),P=-1;for(let B=R;;){let z=C.indexOf(F,B);if(z<0)break;let X=L(I(C,z),N(F,0)),te=F.length>=40||L(N(C,z+F.length),I(F,F.length));if(X&&te){P=z;break}B=z+1;}if(P<0){K=false;break}R=P+F.length;}if(K)continue}let H=typeof uniqueSel=="function"?uniqueSel(p):"",$=typeof getNearbyContext=="function"?getNearbyContext(p):{parentTag:p.tagName.toLowerCase(),nearbyHeading:""},U=[];U.push("visible: "+b.slice(0,40)),U.push("aria-label: "+D.slice(0,60)),$.nearbyHeading&&U.push("heading: "+$.nearbyHeading),U.push("parent: "+$.parentTag),f.push({selector:H,attribute:"aria-label",currentValue:D,issueType:"label_in_name",wcag:"2.5.3",context:U.join(" | "),needsAI:true,outerHtml:(p.outerHTML||"").slice(0,300)});}return f},ag={name:"labelInName",cap:40,async detect(d){return d.evaluate(eM)}};var tM=()=>{let d="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye],[class*=EquallyAI]",h=["click here","click","here","read more","more","link","this","go","info","details","learn more","see more","view","open","tap"],m=[];function p(D){if(!D)return "";let w=D.split("#")[0];return w.length>1&&w.charAt(w.length-1)==="/"&&(w=w.substring(0,w.length-1)),w}function b(D){let w=(D.getAttribute("aria-label")||"").trim();return w||(D.textContent||"").trim().replace(/\s+/g," ")}function A(D){return !!D.closest('nav, [role="navigation"], [role="menubar"], [class*=breadcrumb], [aria-label*="breadcrumb" i]')}let x={},T=document.querySelectorAll("a[href]");for(let D=0;D<T.length;D++){let w=T[D];if(w.closest(d)||w.getAttribute("aria-hidden")==="true"||!isVisible(w))continue;let C=w.getAttribute("href")||"";if(!C)continue;let E=C.toLowerCase();if(E.charAt(0)==="#"||E.indexOf("javascript:")===0||E.indexOf("mailto:")===0||E.indexOf("tel:")===0)continue;let L=w.href||C,I=p(L);if(!I||A(w))continue;let N=(w.textContent||"").trim(),q=!!w.querySelector("img, svg, picture");if(!N&&q)continue;let H=b(w);if(!H)continue;let $=H.toLowerCase();$===E||$===L.toLowerCase()||(x[I]||(x[I]=[]),x[I].push(w));}let k=Object.keys(x);for(let D=0;D<k.length&&!(m.length>=30);D++){let w=x[k[D]];if(!w||w.length<2)continue;let C={},E="";for(let q=0;q<w.length;q++){let H=b(w[q]),$=H.toLowerCase();C[$]=true,H.length>E.length&&(E=H);}if(Object.keys(C).length<2)continue;let I=E.toLowerCase().trim();if(I.length<5)continue;let N=false;for(let q=0;q<h.length;q++)if(I===h[q]){N=true;break}if(!N)for(let q=0;q<w.length&&!(m.length>=30);q++){let H=w[q],$=b(H);if($.toLowerCase()===I)continue;let U=uniqueSel(H);m.push({selector:U,attribute:"aria-label",currentValue:$,issueType:"link_consistency",wcag:"3.2.4",context:"Same href as "+w.length+' link(s) on this page with different text (e.g. "'+E.slice(0,80)+'"). If these labels also differ across pages, unify the VISIBLE text \u2014 do not mask it with aria-label.',needsAI:false,needsReview:true,reviewReason:"WCAG 3.2.4 is a cross-page criterion; same-page label variation may be intentional and cannot be auto-verified from one page",outerHtml:H.outerHTML.slice(0,300)});}}return m},ig={name:"linkConsistency",cap:30,async detect(d){return d.evaluate(tM)}};var rM=()=>{let f=[],h=[".pdf",".doc",".docx",".xls",".xlsx",".zip",".csv",".ppt",".pptx",".txt",".rtf",".epub"],m="";try{m=window.location&&window.location.hostname||"";}catch{m="";}m=(m||"").toLowerCase();function p(L,I){if(!L||!I)return false;if(L===I||L.endsWith("."+I)||I.endsWith("."+L))return true;let N=q=>{let H=q.split(".");if(H.length<=2)return q;let $=H[H.length-1],U=H[H.length-2],K=["co","com","net","org","ac","gov","edu"],R=$.length===2&&K.indexOf(U)>=0?3:2;return H.slice(-R).join(".")};return N(L)===N(I)}function b(L){return L.indexOf("www.")===0?L.slice(4):L}function A(L){if(!L)return "";let I=L.toLowerCase();if(I.charAt(0)==="#"||I.charAt(0)==="/"||I.charAt(0)==="?"||I.indexOf("javascript:")===0||I.indexOf("mailto:")===0||I.indexOf("tel:")===0)return "";try{return (new window.URL(L,window.location.href).hostname||"").toLowerCase()}catch{return ""}}function x(L){if(!L)return "";let I=L,N=I.indexOf("?");N>=0&&(I=I.slice(0,N));let q=I.indexOf("#");q>=0&&(I=I.slice(0,q)),I=I.toLowerCase();for(let H=0;H<h.length;H++){let $=h[H];if(I.length>=$.length&&I.slice(I.length-$.length)===$)return $}return ""}function T(L){let I=[],N=(L.getAttribute("aria-label")||"").trim();N&&I.push(N);let q=(L.getAttribute("title")||"").trim();q&&I.push(q);let H=L.getAttribute("aria-labelledby");if(H)try{let $=typeof __resolveIdRefs=="function"?__resolveIdRefs(H):"";$&&I.push($);}catch{}return I.push((L.textContent||"").trim()),I.join(" ").toLowerCase()}function k(L,I,N){let q="";try{typeof getAccessibleName=="function"&&(q=(getAccessibleName(L)||"").trim());}catch{}let H=(I||N||q||L.textContent||"").replace(/\s+/g," ").trim();return H||(L.getAttribute("href")||"").trim().replace(/^https?:\/\//i,"").replace(/\/+$/,"")}let D=(document.documentElement.getAttribute("lang")||"").trim();function w(L){return "current name: "+L.slice(0,200)+(D?" | page language: "+D:"")+" | keep the current name and add the notice, in the page language"}let C=document.querySelectorAll("a"),E=C.length;for(let L=0;L<E&&!(f.length>=50);L++){let I=C[L];if(!I||isWidget(I)||I.getAttribute("aria-hidden")==="true")continue;try{if(I.closest&&I.closest('[aria-hidden="true"]'))continue}catch{}if(!isVisible(I))continue;let N=I.getAttribute("href");if(N==null)continue;let q=String(N).trim();if(!q)continue;let H=q.toLowerCase(),$=T(I),U=(I.getAttribute("rel")||"").toLowerCase(),K=uniqueSel(I),R=(I.getAttribute("target")||"").toLowerCase(),v=(I.outerHTML||"").slice(0,300);if(q==="#"||H.indexOf("javascript:")===0||q.charAt(0)==="#"&&q.length>1)continue;let _=x(H);if(_){let z=I.hasAttribute&&I.hasAttribute("download"),X=$.indexOf(_)>=0||new RegExp("\\b"+_.slice(1)+"\\b").test($)||$.indexOf("download")>=0;if(!z&&!X){let te=k(I,(I.getAttribute("aria-label")||"").trim(),"");f.push({selector:K,attribute:"aria-label",currentValue:(I.getAttribute("aria-label")||"").trim(),issueType:"download_link_warning",wcag:"3.2.5",context:"download link \u2014 file type "+_+" | href: "+q.slice(0,120)+" | "+w(te),needsAI:true,outerHtml:v});continue}}let F=A(q),P=H.indexOf("http://")===0||H.indexOf("https://")===0||H.indexOf("//")===0,B=!!F&&!!m&&!p(b(F),b(m));if(R==="_blank"){let z=U.indexOf("noopener")>=0||U.indexOf("noreferrer")>=0,X=$.indexOf("new window")>=0||$.indexOf("new tab")>=0||$.indexOf("opens in")>=0;if(!X){let te=(I.getAttribute("aria-label")||"").trim(),ee="",Z=I.getAttribute("aria-labelledby")||"";if(!te&&Z)try{typeof __resolveIdRefs=="function"&&(ee=(__resolveIdRefs(Z)||"").trim());}catch{}let ie=k(I,te,ee),be=[];z||be.push("missing rel=noopener"),X||be.push('missing "new window" hint'),be.push("href: "+q.slice(0,120)),f.push({selector:K,attribute:"aria-label",currentValue:(I.getAttribute("aria-label")||"").trim(),issueType:"new_window_link",wcag:"3.2.5",context:be.join(" | ")+" | opens in a new window | "+w(ie),needsAI:true,outerHtml:v});continue}}if(B&&P){let z=U.indexOf("external")>=0,X=$.indexOf("external")>=0||$.indexOf("opens in")>=0||$.indexOf("new window")>=0||$.indexOf("new tab")>=0;if(!z&&!X){let te=(I.getAttribute("aria-label")||"").trim(),ee="",Z=I.getAttribute("aria-labelledby")||"";if(!te&&Z)try{typeof __resolveIdRefs=="function"&&(ee=(__resolveIdRefs(Z)||"").trim());}catch{}let ie=k(I,te,ee);f.push({selector:K,attribute:"aria-label",currentValue:(I.getAttribute("aria-label")||"").trim(),issueType:"external_link_warning",wcag:"3.2.5",context:"external: "+F+" (page: "+m+") | href: "+q.slice(0,120)+" | "+w(ie),needsAI:true,outerHtml:v});}}}return f},og={name:"linkWarnings",cap:50,async detect(d){return d.evaluate(rM)}};var nM=()=>{let d="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye],[class*=ae-exclude],[id*=ae_app],[id*=ae_],[class*=EquallyAI]",h=[],m=new Set,p=document.querySelectorAll('main, [role="main"]'),b=[];return p.forEach(A=>{let x=getComputedStyle(A);x.display!=="none"&&x.visibility!=="hidden"&&b.push(A);}),p.forEach(A=>{if(h.length>=10||A.closest(d)||A.getAttribute("aria-hidden")!=="true")return;let x=getComputedStyle(A);if(x.display==="none"||x.visibility==="hidden"||A.closest('[role="dialog"]')||A.closest('[role="alertdialog"]')||A.closest("dialog")||b.some(w=>w!==A&&w.getAttribute("aria-hidden")!=="true"))return;let k=A.parentElement;for(;k&&k!==document.body&&k!==document.documentElement;){if(k.getAttribute("aria-hidden")==="true")return;k=k.parentElement;}let D=uniqueSel(A);m.has(D)||(m.add(D),h.push({selector:D,attribute:"aria-hidden",currentValue:"true",issueType:"main_content_hidden",wcag:"4.1.2",context:JSON.stringify({tag:A.tagName.toLowerCase(),role:A.getAttribute("role")||"",suggestion:'Main content container has aria-hidden="true", hiding the entire page from assistive technology. Set aria-hidden="false" to restore visibility.'}),needsAI:false,fixValue:"false",outerHtml:(A.outerHTML||"").slice(0,300)}));}),h},sg={name:"mainContentHidden",cap:10,async detect(d){return d.evaluate(nM)}};var aM=()=>{let f=[];function h(A){return !!(!A||isWidget(A)||(A.getAttribute("aria-hidden")||"").trim().toLowerCase()==="true")}function m(A){return (A.outerHTML||"").slice(0,300)}let p=document.querySelectorAll("video");for(let A of p){if(f.length>=10)break;let x=A;if(h(x))continue;let T=x.hasAttribute("controls"),k=x.hasAttribute("autoplay"),D=x.hasAttribute("muted"),w=k||!x.paused&&!x.ended,C=typeof isVisible=="function"?isVisible(x):true;if(!T&&w&&C&&(f.push({selector:uniqueSel(x),attribute:"controls",currentValue:"",issueType:"missing_media_controls",wcag:"2.2.2",context:"video element missing player controls",needsAI:false,fixValue:"",outerHtml:m(x)}),f.length>=10))break;k&&!D&&f.push({selector:uniqueSel(x),attribute:"muted",currentValue:"",issueType:"unsafe_autoplay",wcag:"1.4.2",context:"video autoplays with sound \u2014 add muted",needsAI:false,fixValue:"",outerHtml:m(x)});}let b=document.querySelectorAll("audio");for(let A of b){if(f.length>=10)break;let x=A;if(h(x))continue;let T=x.hasAttribute("controls"),k=x.hasAttribute("autoplay"),D=k||!x.paused&&!x.ended;if(!T&&D&&(f.push({selector:uniqueSel(x),attribute:"controls",currentValue:"",issueType:"missing_media_controls",wcag:"2.2.2",context:"audio element missing player controls",needsAI:false,fixValue:"",outerHtml:m(x)}),f.length>=10))break;k&&f.push({selector:uniqueSel(x),attribute:"remove_attribute",currentValue:"autoplay",issueType:"unsafe_autoplay",wcag:"1.4.2",context:"audio element autoplays \u2014 remove autoplay attribute",needsAI:false,fixValue:"autoplay",outerHtml:m(x)});}return f},lg={name:"mediaControls",cap:10,async detect(d){return d.evaluate(aM)}};var iM=()=>{let d="[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye], [class*=EquallyAI]",h=[],m=[],p=/^(image|photo|img|picture|pic|untitled|banner|hero|\d{1,2})$/i,b=/^(IMG[-_]?\d|DSC[-_]?\d|DSCN?\d|(?:screenshot|Screen\s*Shot|Bildschirmfoto|capture(?:\s+d['’]\s?[ée]cran)?)(?:$|\s+(?:from|at)\s+\d|[\s_-]*[\d(])|image\s*\d|foto|photo[-_]?\d|P\d{4,}|GOPR\d|DJI[-_]\d)/i,A=/pixel|track|beacon|doubleclick|facebook\.com\/tr\b/i,x=(w,C)=>{let E=w.getAttribute(C);if(E===null)return false;let L=parseFloat(E);return !isNaN(L)&&L<=1},T=document.querySelectorAll("img");for(let w of T){if(h.length>=50)break;if(w.closest(d)||w.closest("template, noscript, script"))continue;let C=w.getAttribute("src")||"",E=w.getAttribute("alt");if(C.startsWith("data:")||x(w,"width")||x(w,"height"))continue;let L=w.naturalWidth||0,I=w.naturalHeight||0;if(L>0&&I>0&&L<=3&&I<=3||w.getAttribute("role")==="presentation"||w.getAttribute("role")==="none"||w.getAttribute("aria-hidden")==="true")continue;let N=L||w.width,q=I||w.height,H=w.getBoundingClientRect(),$=!isVisible(w)||N<=2&&q<=2||H.width<=2&&H.height<=2||!!w.closest('[aria-hidden="true"]');if($&&(E!==null||m.length>=50||A.test(C)))continue;let U=(w.getAttribute("aria-label")||"").trim(),K=(w.getAttribute("aria-labelledby")||"").trim();if(U||K)continue;if(E===null){let P=uniqueSel(w),B=getNearbyContext(w),z=[],X=w.closest("figure");if(X){let ie=X.querySelector("figcaption");ie&&z.push("figcaption: "+(ie.textContent||"").trim().slice(0,80));}B.nearbyHeading&&z.push("heading: "+B.nearbyHeading);let te=w.closest("a");if(te){let ie=te.getAttribute("href")||"",be=(te.textContent||"").trim().replace(/\s+/g," ");be&&z.push("link text: "+be.slice(0,60)),ie&&z.push("link href: "+ie.slice(0,80));}C&&z.push("src: "+C.slice(0,120)),z.push("parent: "+B.parentTag);let ee=C;try{ee=new URL(C,document.baseURI).href;}catch{}($?m:h).push({selector:P,attribute:"alt",currentValue:"",issueType:"missing_alt",wcag:"1.1.1",context:z.join(" | "),needsAI:true,imageSrc:ee,outerHtml:w.outerHTML.slice(0,300)});continue}let R=(E||"").trim();if(R==="")continue;let v=/\.(jpg|jpeg|png|gif|webp|svg|bmp|ico)$/i.test(R),_=p.test(R),F=b.test(R);if(v||_||F){let P=uniqueSel(w),B=getNearbyContext(w),z=[];B.nearbyHeading&&z.push("heading: "+B.nearbyHeading),C&&z.push("src: "+C.slice(0,120)),z.push("parent: "+B.parentTag);let X=C;try{X=new URL(C,document.baseURI).href;}catch{}h.push({selector:P,attribute:"alt",currentValue:R,issueType:"missing_alt",wcag:"1.1.1",context:z.join(" | "),needsAI:true,imageSrc:X,outerHtml:w.outerHTML.slice(0,300)});}}let k=globalThis;for(let w of Array.from(document.querySelectorAll("object"))){if(h.length>=50)break;if(w.closest(d)||w.closest('[aria-hidden="true"]')||w.getAttribute("aria-hidden")==="true")continue;let C=(w.getAttribute("role")||"").trim().toLowerCase();if(C==="presentation"||C==="none"||!k.isVisible(w))continue;let E=w.getAttribute("data")||"",L=(w.getAttribute("type")||"").trim().toLowerCase(),I=L.startsWith("image/"),N=/\.(png|jpe?g|gif|webp|bmp|svg)(\?[^#]*)?(#.*)?$/i.test(E);if(!E||!(I||!L&&N)||(w.getAttribute("aria-label")||"").trim()||(w.getAttribute("title")||"").trim())continue;let q=(w.getAttribute("aria-labelledby")||"").trim();q&&q.split(/\s+/).some(H=>(document.getElementById(H)?.textContent||"").trim())||w.closest('a, button, [role="button"], [role="link"]')||h.push({selector:k.uniqueSel(w),attribute:"aria-label",currentValue:"",issueType:"missing_alt",wcag:"1.1.1",context:"object image has no accessible name (fallback content does not name an object) | data: "+E.slice(0,120),needsAI:false,outerHtml:w.outerHTML.slice(0,300)});}let D=Array.from(document.querySelectorAll("script:not([src])")).map(w=>w.textContent||"");for(let w of Array.from(document.querySelectorAll("canvas"))){if(h.length>=50)break;if(w.closest(d)||w.closest('[aria-hidden="true"]')||w.getAttribute("aria-hidden")==="true")continue;let C=(w.getAttribute("role")||"").trim().toLowerCase();if(C==="presentation"||C==="none"||!k.isVisible(w)||(w.getAttribute("aria-label")||"").trim()||(w.getAttribute("aria-labelledby")||"").trim()||(w.getAttribute("title")||"").trim()||(w.textContent||"").trim()||w.children.length||w.closest('a, button, label, figure, [role="img"], [role="button"], [role="link"], [aria-label], [aria-labelledby], [aria-describedby]'))continue;let E=w.getBoundingClientRect();if(E.width<=30||E.height<=30)continue;let L=w.getAttribute("id");if(!L)continue;let I=new RegExp("#"+L.replace(/[^\w-]/g,"")+`\\b|getElementById\\(\\s*['"]`+L.replace(/[^\w-]/g,"")+`['"]`);D.some(q=>I.test(q)&&/\b(fillText|strokeText)\s*\(/.test(q))&&h.push({selector:k.uniqueSel(w),attribute:"aria-label",currentValue:"",issueType:"missing_alt",wcag:"1.1.1",context:"canvas draws text via script but has no accessible name or fallback content",needsAI:false,outerHtml:w.outerHTML.slice(0,300)});}for(let w of m){if(h.length>=50)break;h.push(w);}return h},ug={name:"missingAlt",cap:50,async detect(d){return d.evaluate(iM)}};var oM=()=>{let d="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye],[class*=EquallyAI],[id*=ae_],[class*=ae-exclude]",f='a[href], button, input:not([type="hidden"]), select, textarea, summary, [contenteditable]:not([contenteditable="false" i]), [role="button"], [role="link"], [role="checkbox"], [role="menuitem"], [role="tab"], [role="switch"], [role="option"], [role="radio"], [role="combobox"], [role="slider"], [role="textbox"]',h=["onclick","data-action","ng-click","@click","v-on:click"],m=E=>{if(getComputedStyle(E).visibility==="hidden")return false;for(let L=E;L&&L.nodeType===1;L=L.parentElement)if(getComputedStyle(L).display==="none")return false;return true},p=E=>Array.prototype.some.call(E.querySelectorAll("a:not([href])"),L=>m(L)&&!isHiddenFromAT(L)&&h.some(I=>L.hasAttribute(I))),b=E=>Array.prototype.some.call(E.querySelectorAll(f),L=>m(L)&&!isHiddenFromAT(L)),x=[];return document.querySelectorAll("div[onclick], span[onclick]").forEach(E=>{if(x.length>=50||E.closest(d)||!isVisible(E)||isHiddenFromAT(E)||b(E)||p(E))return;let L=E.getAttribute("role");if(L==="button"||L==="link"||L==="tab"||L==="menuitem"||L==="checkbox"||L==="radio")return;let I=uniqueSel(E),N=E.outerHTML.slice(0,300);x.push({selector:I,attribute:"role",currentValue:L||"",issueType:"missing_button_role",wcag:"4.1.2",context:JSON.stringify({tag:E.tagName.toLowerCase(),hasOnclick:true,currentTabindex:E.getAttribute("tabindex")}),needsAI:false,fixValue:"button",outerHtml:N}),E.getAttribute("tabindex")===null&&x.push({selector:I,attribute:"tabindex",currentValue:"",issueType:"missing_button_role",wcag:"4.1.2",context:JSON.stringify({tag:E.tagName.toLowerCase(),supplementary:'tabindex needed alongside role="button"'}),needsAI:false,fixValue:"0",outerHtml:N});}),document.querySelectorAll("a:not([href])").forEach(E=>{if(x.length>=50||E.closest(d)||!isVisible(E)||isHiddenFromAT(E)||E.getAttribute("role"))return;let I=E.hasAttribute("onclick"),N=E.getAttribute("data-action")||E.getAttribute("ng-click")||E.getAttribute("@click")||E.getAttribute("v-on:click");if(!I&&!N||b(E))return;let q=uniqueSel(E),H=E.outerHTML.slice(0,300);x.push({selector:q,attribute:"role",currentValue:"",issueType:"missing_button_role",wcag:"4.1.2",context:JSON.stringify({tag:"a",href:E.getAttribute("href")||"",hasOnclick:I}),needsAI:false,fixValue:"button",outerHtml:H});}),document.querySelectorAll("nav, ol, ul").forEach(E=>{if(x.length>=50||E.closest(d)||!isVisible(E)||isHiddenFromAT(E))return;let L=(E.className&&typeof E.className=="string"?E.className:"").toLowerCase(),I=(E.getAttribute("id")||"").toLowerCase();if(!L.includes("breadcrumb")&&!L.includes("crumb")&&!I.includes("breadcrumb")&&!I.includes("crumb"))return;let N=E.querySelectorAll("a");if(N.length<2)return;let q=(E.getAttribute("aria-label")||"").toLowerCase(),H=E.getAttribute("role");if(q.includes("breadcrumb")||q.includes("crumb")||H==="navigation"&&q)return;let $=uniqueSel(E);x.push({selector:$,attribute:"aria-label",currentValue:q,issueType:"missing_semantic_role",wcag:"4.1.2",context:JSON.stringify({tag:E.tagName.toLowerCase(),reason:"breadcrumb navigation missing aria-label",linkCount:N.length,pageLang:(document.documentElement.getAttribute("lang")||"").trim(),links:Array.prototype.slice.call(N,0,6).map(U=>(U.textContent||"").trim().slice(0,40)),otherLandmarkLabels:Array.prototype.slice.call(document.querySelectorAll('nav[aria-label], [role="navigation"][aria-label], [role="region"][aria-label], aside[aria-label]'),0,8).filter(U=>U!==E).map(U=>(U.getAttribute("aria-label")||"").trim().slice(0,60))}),needsAI:true,outerHtml:E.outerHTML.slice(0,300)});}),document.querySelectorAll("form, section, div").forEach(E=>{if(x.length>=50||E.closest(d)||!isVisible(E)||isHiddenFromAT(E))return;let L=(E.className&&typeof E.className=="string"?E.className:"").toLowerCase(),I=(E.getAttribute("id")||"").toLowerCase();if(!L.includes("search")&&!I.includes("search")||!E.querySelector('input[type="search"], input[type="text"], input[name*="search"], input[placeholder*="earch"]'))return;let q=E.getAttribute("role");if(q==="search"||E.closest('[role="search"]')||E.querySelector('[role="search"]')||Array.prototype.some.call(E.querySelectorAll("form, section, div"),U=>{let K=(U.className&&typeof U.className=="string"?U.className:"").toLowerCase(),R=(U.getAttribute("id")||"").toLowerCase();return !K.includes("search")&&!R.includes("search")||U.getAttribute("role")==="search"?false:!!U.querySelector('input[type="search"], input[type="text"], input[name*="search"], input[placeholder*="earch"]')}))return;let $=uniqueSel(E);x.push({selector:$,attribute:"role",currentValue:q||"",issueType:"missing_semantic_role",wcag:"4.1.2",context:JSON.stringify({tag:E.tagName.toLowerCase(),reason:'search section missing role="search"'}),needsAI:false,fixValue:"search",outerHtml:E.outerHTML.slice(0,300)});}),document.querySelectorAll('[role="menu"], [role="menubar"]').forEach(E=>{if(E.closest(d))return;let L=E.getAttribute("role")||"menu",I=Array.from(E.querySelectorAll("a")).filter(q=>{if(!isVisible(q)||isHiddenFromAT(q))return false;let H=q.getAttribute("role");return H!=="menuitem"&&H!=="menuitemcheckbox"&&H!=="menuitemradio"});if(I.length===0)return;let N=uniqueSel(E);x.push({selector:N,attribute:"role",currentValue:L,issueType:"missing_semantic_role",wcag:"4.1.2",context:JSON.stringify({tag:E.tagName.toLowerCase(),reason:`${I.length} link(s) inside role="${L}" without menuitem roles`,sample:I.slice(0,3).map(q=>(q.textContent||"").trim().slice(0,40))}),message:`container role="${L}" holds ${I.length} link(s) without menuitem roles \u2014 for site navigation use a nav list instead (role="menu" requires the full menu pattern: menuitem children plus arrow-key handling)`,needsAI:false,needsReview:true,reviewReason:'Adding role="menuitem" to plain navigation links is invalid ARIA when the menu pattern is not implemented. Prefer removing role="menu"/"menubar" from site navigation; keep it only for application menus built to the APG menu pattern.',outerHtml:E.outerHTML.slice(0,300)});}),x},cg={name:"missingRoles",cap:50,async detect(d){return d.evaluate(oM)}};var sM=()=>{let d="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye]",h=[],m={main:'main, [role="main"]',navigation:'nav, [role="navigation"]',banner:'header, [role="banner"]',contentinfo:'footer, [role="contentinfo"]',complementary:'aside, [role="complementary"]',search:'[role="search"]'};for(let[p,b]of Object.entries(m))document.querySelectorAll(b).forEach(x=>{if(h.length>=30||x.closest(d)||typeof isVisible=="function"&&!isVisible(x))return;let T=x.parentElement,k=null;for(;T&&T!==document.body;){if(T.matches(b)){k=T;break}T=T.parentElement;}if((p==="banner"||p==="contentinfo")&&x.closest("article, section, aside, main, nav")||!k||x.getAttribute("aria-label")?.trim()||x.getAttribute("aria-labelledby")?.trim())return;let D=typeof uniqueSel=="function"?uniqueSel(x):"",w=typeof getNearbyContext=="function"?getNearbyContext(x):{nearbyHeading:""};h.push({selector:D,attribute:"role",currentValue:x.getAttribute("role")||x.tagName.toLowerCase(),issueType:"nested_landmark",wcag:"1.3.1",context:`nested-in: ${p} | tag: ${x.tagName.toLowerCase()} | heading: ${w.nearbyHeading||""}`,needsAI:false,fixValue:"generic",outerHtml:(x.outerHTML||"").slice(0,300)});});return h},dg={name:"nestedLandmarks",cap:30,async detect(d){return d.evaluate(sM)}};var lM=()=>{let f=[],h=R=>typeof parseCssColor=="function"?parseCssColor(R):null,m=(R,v,_)=>typeof relLuminance=="function"?relLuminance(R,v,_):0,b=(R,v)=>typeof contrastRatio=="function"?contrastRatio(R,v):1;function A(R){let _=[0,0,0],F=0,P=z=>{let X=h(z||"");if(!X)return;let te=Math.max(0,Math.min(1,X[3]));if(te<=0)return;let ee=te*(1-F);_[0]+=X[0]*ee,_[1]+=X[1]*ee,_[2]+=X[2]*ee,F+=ee;};for(let z=R.parentElement;z&&F<.999999999;z=z.parentElement)P(getComputedStyle(z).backgroundColor);let B=1-F;return [Math.round(Math.min(255,_[0]+255*B)),Math.round(Math.min(255,_[1]+255*B)),Math.round(Math.min(255,_[2]+255*B))]}function x(R,v,_){return "#"+[R,v,_].map(F=>{let P=Math.max(0,Math.min(255,Math.round(F))).toString(16);return P.length===1?"0"+P:P}).join("")}function T(R,v,_){let F=m(v[0],v[1],v[2])>.5;return k(R,v,_,F)||k(R,v,_,!F)}function k(R,v,_,F){let P=0,B=1,z=null;for(let X=0;X<20;X++){let te=(P+B)/2,ee=F?[R[0]*(1-te),R[1]*(1-te),R[2]*(1-te)]:[R[0]+(255-R[0])*te,R[1]+(255-R[1])*te,R[2]+(255-R[2])*te],Z=[Math.round(ee[0]),Math.round(ee[1]),Math.round(ee[2])];b(Z,v)>=_?(z=Z,B=te):P=te;}return z}let D=(R,v)=>{let _=Math.max(0,Math.min(1,R[3]));return [R[0]*_+v[0]*(1-_),R[1]*_+v[1]*(1-_),R[2]*_+v[2]*(1-_)]};function w(R,v){let _=R.boxShadow||"";if(!_||_==="none")return null;let F=[],P=0,B="";for(let X of _)X==="("&&P++,X===")"&&P--,X===","&&P===0?(F.push(B),B=""):B+=X;B&&F.push(B);let z=null;for(let X of F){let te=X.match(/rgba?\([^)]*\)/),ee=te?h(te[0]):null;if(!ee||ee[3]<=0||(X.replace(/rgba?\([^)]*\)/,"").replace("inset","").trim().split(/\s+/).map(de=>parseFloat(de)).filter(de=>Number.isFinite(de))[3]??0)<=0)continue;let be=b(D(ee,v),v);(z===null||be>z)&&(z=be);}return z}function C(R){let v=getComputedStyle(R),_=A(R),F=null,P=parseFloat(v.borderTopWidth||"0"),B=(v.borderTopStyle||"").toLowerCase(),z=h(v.borderTopColor||"");P>0&&B!=="none"&&B!=="hidden"&&z&&z[3]>0&&(F=b(D(z,_),_));let X=h(v.backgroundColor||"");if(X&&X[3]>0){let ee=b(D(X,_),_);(F===null||ee>F)&&(F=ee);}let te=w(v,_);return te!==null&&(F===null||te>F)&&(F=te),F}function E(R){let v=R.getBoundingClientRect();if(v.width*v.height<=0)return null;let _='input, select, textarea, button, [role="button"], svg, img, i, label',F=R.parentElement,P=null;for(let B=0;F&&B<3&&!(F===document.body||F===document.documentElement);B++,F=F.parentElement){let z=F.getBoundingClientRect();if(z.width*z.height>4*v.width*v.height+1||z.height>Math.max(2.5*v.height,v.height+40))break;let X=false,te=document.createTreeWalker(F,4),ee=te.nextNode();for(;ee;){if((ee.textContent||"").trim()&&ee.parentElement&&!ee.parentElement.closest(_)&&isVisible(ee.parentElement)){X=true;break}ee=te.nextNode();}if(X)break;let Z=C(F);Z!==null&&Z>1.01&&(P===null||Z>P)&&(P=Z);}return P}let L=R=>/^(img|picture|video|canvas|object|embed|iframe)$/.test((R.tagName||"").toLowerCase())||(getComputedStyle(R).backgroundImage||"none")!=="none",I=(R,v)=>{let _=Math.min(R.right,v.right)-Math.max(R.left,v.left),F=Math.min(R.bottom,v.bottom)-Math.max(R.top,v.top);return _>0&&F>0&&_*F/(R.width*R.height)>=.5},N=null;function q(R){let v=R.getBoundingClientRect();if(v.width*v.height<=0)return false;let _=v.left+v.width/2,F=v.top+v.height/2;if(_>=0&&F>=0&&_<window.innerWidth&&F<window.innerHeight&&typeof document.elementsFromPoint=="function"){let B=document.elementsFromPoint(_,F),z=B.indexOf(R);if(z>=0){for(let X of B.slice(z+1)){if(L(X))return true;let te=h(getComputedStyle(X).backgroundColor||"");if(te&&te[3]>.5)return false}return false}}for(let B=R.parentElement,z=0;B&&z<8;B=B.parentElement,z++){let X=getComputedStyle(B);if((X.backgroundImage||"none")!=="none")return true;let te=h(X.backgroundColor||"");if(te&&te[3]>.5||B===document.documentElement)break}N||(N=Array.from(document.querySelectorAll("img, picture, video, canvas, object, embed, iframe")));for(let B of N)if(!(B===R||R.contains(B)||B.contains(R))&&I(v,B.getBoundingClientRect())&&isVisible(B))return true;let P=R.offsetParent||R.parentElement;if(P&&P!==document.body&&P!==document.documentElement){let B=P.getElementsByTagName("*");for(let z=0;z<B.length&&z<400;z++){let X=B[z];if(!(X===R||R.contains(X)||X.contains(R))&&I(v,X.getBoundingClientRect())&&(getComputedStyle(X).backgroundImage||"none")!=="none"&&isVisible(X))return true}}return false}function H(R){for(let P=R.parentElement;P&&P.nodeType===1;P=P.parentElement)if(parseFloat(getComputedStyle(P).opacity||"1")<1)return false;let v=P=>{if(P.tagName.toLowerCase()!=="svg"){let X=h(getComputedStyle(P).color||"");return X&&X[3]>0?[X]:null}let B=[],z=Array.from(P.querySelectorAll("path, rect, circle, ellipse, polygon, polyline, line, text, use"));for(let X of z){let te=X.getBoundingClientRect();if(te.width===0&&te.height===0)continue;let ee=getComputedStyle(X);if(ee.display==="none"||ee.visibility==="hidden"||parseFloat(ee.opacity||"1")<1)return null;for(let[Z,ie]of [[ee.fill,ee.fillOpacity],[ee.stroke,parseFloat(ee.strokeWidth||"0")>0?ee.strokeOpacity:"0"]]){let be=String(Z||"");if(!be||be==="none"||parseFloat(String(ie??"1"))===0)continue;if(be.startsWith("url"))return null;let de=h(be);if(!de)return null;de[3]*=parseFloat(String(ie??"1")),de[3]>0&&B.push(de);}}return B.length?B:null},_=[];for(let P=0;P<=255;P+=17)_.push(P);let F=Array.from(R.querySelectorAll('svg, i[class], [class*="icon"]'));for(let P of F){let B=P.getBoundingClientRect();if(B.width*B.height===0)continue;let z=getComputedStyle(P);if(z.display==="none"||z.visibility==="hidden")continue;let X=v(P);if(!X)continue;let te=null,ee=1,Z=true;for(let de=P;de;de=de===R?null:de.parentElement){let ke=getComputedStyle(de),De=parseFloat(ke.opacity||"1");if(!te){let Be=h(ke.backgroundColor||""),_e=String(ke.backgroundClip||"border-box").toLowerCase();if(!(String(ke.backgroundImage||"none")==="none")){Z=false;break}if(Be&&Be[3]>=1&&_e==="border-box")te=[Be[0],Be[1],Be[2]];else if(De<1){Z=false;break}}te&&(ee*=De);}if(!te||!Z)continue;let ie=te,be=1/0;for(let de of X){let ke=D(de,ie);for(let De of _)for(let Be of _)for(let _e of _){let Ee=[De,Be,_e],bt=D([ke[0],ke[1],ke[2],ee],Ee),kt=D([ie[0],ie[1],ie[2],ee],Ee),He=b(bt,kt);He<be&&(be=He);}}if(be>=3)return true}return false}let $="control sits over an image, so the background colour measured behind it is not what the user sees \u2014 judge its boundary or glyph against the image pixels in the crop (WCAG 1.4.11, 3:1)";function U(R){let v=R.tagName.toLowerCase(),_=v==="input"||v==="select"||v==="textarea"?v+" field":v;f.push({selector:uniqueSel(R),message:"non-text contrast: "+_+" over an image backdrop \u2014 "+$,attribute:"style",currentValue:"?",issueType:"non_text_contrast_insufficient",wcag:"1.4.11",context:v+" backdrop=image needs=3",needsAI:false,needsReview:true,reviewReason:$,outerHtml:R.outerHTML.slice(0,200)});}let K=document.querySelectorAll('input:not([type="hidden"]), select, textarea, button, [role="button"], [role="checkbox"], [role="radio"], [role="switch"]');for(let R of K){if(f.length>=30)break;if(isWidget(R)||isHiddenFromAT(R)||!isVisible(R))continue;let v=getComputedStyle(R),_=A(R),F=h(v.backgroundColor||""),P=h(v.borderTopColor||""),B=parseFloat(v.borderTopWidth||"0"),z=(v.borderTopStyle||"").toLowerCase(),X=B>0&&z!=="none"&&z!=="hidden",te=R.tagName.toLowerCase(),ee=te==="input"||te==="select"||te==="textarea",Z=null;if(te==="input"){let Ae=(R.type||"").toLowerCase(),Oe=(v.appearance||v.webkitAppearance||"").toLowerCase();if(Ae==="checkbox"||Ae==="radio"){let Ie=Oe==="none"?"":String(v.accentColor||"").trim().toLowerCase(),nt=Ie&&Ie!=="auto"?h(Ie):null;if(nt&&nt[3]>.5)Z=b(D(nt,_),_);else if(Oe&&Oe!=="none")continue}}let ie=X&&P&&P[3]>.5?b(D(P,_),_):null,be=F&&F[3]>.5?b(D(F,_),_):Z,de=w(v,_),ke=ie===null&&be===null&&de===null?null:Math.max(ie??0,be??0,de??0);if(ee&&q(R)){U(R);continue}if(ee&&(ke===null||ke<3)){let Ae=E(R);if(Ae!==null&&Ae>=3)continue}let De=null,Be=false,_e="";if(ee)ke!==null?(De=ke,ke<3&&(Be=true)):(Be=true,De=1);else {let Ae=false,Oe=document.createTreeWalker(R,4),Ie=Oe.nextNode();for(;Ie;){if((Ie.textContent||"").trim()&&Ie.parentElement&&isVisible(Ie.parentElement)){Ae=true;break}Ie=Oe.nextNode();}if(Ae)continue;let nt=q(R);{let ce=["Top","Right","Bottom","Left"].map(Ve=>({w:parseFloat(v["border"+Ve+"Width"]||"0"),s:String(v["border"+Ve+"Style"]||"").toLowerCase(),c:h(v["border"+Ve+"Color"]||"")})),ve=ce.filter(Ve=>Ve.w>0&&Ve.s!=="none"&&Ve.s!=="hidden"&&Ve.c&&Ve.c[3]>.5),Xe=ce.filter(Ve=>Ve.w>0&&Ve.s!=="none"&&Ve.s!=="hidden"&&Ve.c&&Ve.c[3]===0),at=true;for(let Ve=R.parentElement;Ve&&Ve.nodeType===1;Ve=Ve.parentElement)if(parseFloat(getComputedStyle(Ve).opacity||"1")<1){at=false;break}let dt=Math.max(0,Math.min(1,parseFloat(v.opacity||"1"))),yt=String(v.backgroundClip||"border-box").toLowerCase(),Qe=!!F&&F[3]>=1&&dt>=1&&yt==="border-box";if(ve.length&&Xe.length&&at&&(!nt||Qe)){let Ve=F&&F[3]>0?D(F,_):_,nr=D([Ve[0],Ve[1],Ve[2],dt],_),ar=zr=>{let ma=D(zr,Ve);return D([ma[0],ma[1],ma[2],dt],_)};if(ve.some(zr=>b(ar(zr.c),nr)>=3))continue}}if(nt){if(H(R))continue;U(R);continue}let st=Array.from(R.querySelectorAll('img, svg, picture, canvas, i[class], [class*="icon"]')),lt=new Map,Zt=ce=>{let ve=ce.getBoundingClientRect();if(ve.width*ve.height===0)return "absent";let Xe=parseFloat(getComputedStyle(R).opacity||"1");for(let at=ce;at&&at!==R;at=at.parentElement){let dt=getComputedStyle(at);if(dt.display==="none")return "absent";if(dt.visibility==="hidden"||parseFloat(dt.opacity||"1")===0)return "hidden-at-rest";Xe*=parseFloat(dt.opacity||"1");}return lt.set(ce,Xe),"painted"},$r=st.map(Zt),it=st.filter((ce,ve)=>$r[ve]==="painted"),jr=it.length>0,yn=!jr&&$r.includes("hidden-at-rest"),fe=ce=>{let ve=(ce.tagName||"").toLowerCase();if(ve==="img"||ve==="picture"||ve==="canvas"||ve==="svg"&&ce.querySelector("image, foreignObject, linearGradient, radialGradient, pattern"))return null;let Xe=[];if(ve==="svg"){let dt=ce.querySelector("path, circle, rect, polygon, polyline, line, ellipse, use, text");for(let yt of [dt,ce]){if(!yt)continue;let Qe=getComputedStyle(yt),Ve=1;for(let ar=yt;ar&&ar!==ce;ar=ar.parentElement||ar.parentNode)Ve*=parseFloat(getComputedStyle(ar).opacity||"1");let nr=ar=>Number.isFinite(parseFloat(ar))?parseFloat(ar):1;if(Qe.fill&&Qe.fill!=="none"&&!Qe.fill.startsWith("url")&&Xe.push({color:Qe.fill,alpha:Ve*nr(Qe.fillOpacity)}),Qe.stroke&&Qe.stroke!=="none"&&!Qe.stroke.startsWith("url")&&parseFloat(Qe.strokeWidth||"0")>0&&Xe.push({color:Qe.stroke,alpha:Ve*nr(Qe.strokeOpacity)}),Xe.length)break}}else ((ce.textContent||"").trim()||getComputedStyle(ce,"::before").content!=="none")&&Xe.push({color:getComputedStyle(ce).color,alpha:1});let at=null;for(let dt of Xe){let yt=h(dt.color);if(!yt)continue;let Qe=yt[3]*dt.alpha*(lt.get(ce)??1),Ve=[yt[0]*Qe+_[0]*(1-Qe),yt[1]*Qe+_[1]*(1-Qe),yt[2]*Qe+_[2]*(1-Qe)],nr=b(Ve,_);(at===null||nr>at)&&(at=nr);}return at};if(jr&&it.map(fe).some(ve=>ve!==null&&ve>=3))continue;let ne=false,se=v.position;if((se==="absolute"||se==="fixed")&&R.parentElement){let ce=R.getBoundingClientRect(),ve=R.parentElement.getBoundingClientRect(),Xe=ve.width*ve.height;Xe>0&&ce.width*ce.height/Xe>=.85&&(ne=true);}if(jr||ne||yn){if(Be=true,De=X&&P&&P[3]>.5?b(D(P,_),_):1,De>=3)continue;_e=jr?"control is identified by an image or icon \u2014 verify the graphic itself has 3:1 contrast against its surroundings":yn?"control is identified by an icon that is transparent until hover/focus \u2014 verify the revealed icon has 3:1 contrast against its surroundings":"control is an overlay covering other content, which provides its visual affordance \u2014 verify the underlying presentation";}else ke!==null?(De=ke,ke<3&&(Be=true)):(Be=true,De=1);}if(!Be)continue;let Ee=P&&P[3]>.5?[P[0],P[1],P[2]]:F&&F[3]>.5?[F[0],F[1],F[2]]:[128,128,128],bt=T(Ee,_,3);if(!bt)continue;let kt=x(bt[0],bt[1],bt[2]),He=x(_[0],_[1],_[2]),Mt="border: 1px solid "+kt+" !important;",yr=uniqueSel(R),Bt=R.tagName.toLowerCase(),Gt=ke===null&&!X?"invisible (no border, no fill: 1.00:1)":De?De.toFixed(2)+":1":"not measurable",Tt=Bt==="input"||Bt==="select"||Bt==="textarea"?Bt+" field":Bt,rr=_e?"non-text contrast: "+Tt+" boundary is "+Gt+" against "+He+" (needs 3:1) \u2014 "+_e:"non-text contrast: "+Tt+" boundary (border and fill) is "+Gt+" against "+He+", needs 3:1 \u2014 e.g. border-color "+kt;f.push({selector:yr,message:rr,attribute:"style",currentValue:De?De.toFixed(2):"?",issueType:"non_text_contrast_insufficient",wcag:"1.4.11",context:Bt+" bg="+He+" ratio="+(De?De.toFixed(2):"?")+" needs=3",needsAI:false,..._e?{needsReview:true,reviewReason:_e}:{fixValue:Mt},outerHtml:R.outerHTML.slice(0,200)});}return f},fg={name:"nonTextContrast",cap:30,async detect(d){return d.evaluate(lM)}};var uM=()=>{let d="[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye], [class*=EquallyAI]",h=[],m=/location\s*[=.]|location\s*\.\s*href|\.submit\s*\(|window\s*\.\s*open|history\s*\.\s*(push|replace)/i,p=document.querySelectorAll("[onfocus]");for(let b of Array.from(p)){if(h.length>=20)break;if(b.closest(d))continue;let A=b.getAttribute("onfocus")||"";if(!A||!m.test(A))continue;let x=typeof uniqueSel=="function"?uniqueSel(b):"",T=typeof getNearbyContext=="function"?getNearbyContext(b):{parentTag:b.tagName.toLowerCase(),nearbyHeading:""},k=[];k.push("tag: "+b.tagName.toLowerCase()),k.push("onfocus: "+A.slice(0,100)),T.nearbyHeading&&k.push("heading: "+T.nearbyHeading),k.push("parent: "+T.parentTag),h.push({selector:x,attribute:"onfocus",currentValue:A.slice(0,200),issueType:"onfocus_context_change",wcag:"3.2.1",context:k.join(" | "),needsAI:true,outerHtml:(b.outerHTML||"").slice(0,300)});}return h},pg={name:"onFocus",cap:20,async detect(d){return d.evaluate(uM)}};var cM=()=>{let d="[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye], [class*=EquallyAI]",f=[],h=['a[href="#main-content"]','a[href="#main"]','a[href="#content"]','a[href="#skip"]','a[href="#skip-content"]','a[href="#maincontent"]',"a.skip-link","a.skip-nav","a.skip-to-content","a.skiplink","a.skip-navigation",'[class*="skip-link"]','[class*="skip-nav"]'],m=false;for(let N of h){let q=document.querySelector(N);if(q&&!q.closest(d)){m=true;break}}if(!m){let N=document.querySelectorAll('a[href^="#"]');for(let q of N){if(q.closest(d))continue;let H=(q.textContent||"").toLowerCase();if(H.includes("skip")&&(H.includes("main")||H.includes("content")||H.includes("nav"))){m=true;break}}}if(!m){let N=document.querySelectorAll('button, input[type="button"], input[type="submit"]');for(let q of Array.from(N)){if(q.closest(d))continue;let H=(q.getAttribute("value")||q.textContent||"").trim().toLowerCase();if(H.includes("skip")&&(H.includes("main")||H.includes("content")||H.includes("nav"))){m=true;break}}}if(!m){let N=document.body?document.body.firstElementChild:null;if(N&&N.matches('main, [role="main"], div#main')){let q=getComputedStyle(N),H=N.getBoundingClientRect();q.display!=="none"&&q.visibility!=="hidden"&&!N.closest('[hidden], [aria-hidden="true"]')&&H.width>0&&H.height>0&&(m=true);}}if(!m){let N=Array.from(document.querySelectorAll('main, [role="main"], div#main'));for(let q of N){let H=getComputedStyle(q);if(H.display==="none"||H.visibility==="hidden"||q.closest('[hidden], [aria-hidden="true"]'))continue;if(Array.from(q.querySelectorAll("h1, h2, h3, h4, h5, h6")).some(U=>{let K=getComputedStyle(U);return K.display!=="none"&&K.visibility!=="hidden"&&!U.closest('[hidden], [aria-hidden="true"]')})){m=true;break}}}if(!m&&document.querySelector("nav")){let N=document.querySelectorAll("a, button");for(let q of Array.from(N)){if(q.closest(d))continue;let H=(q.textContent||"").trim().toLowerCase();if((H.includes("toggle")||H.includes("hide")||H.includes("collapse")||H.includes("show"))&&H.includes("content")){m=true;break}}}if(m||Array.from(document.querySelectorAll('main, [role="main"]')).filter(N=>{let q=getComputedStyle(N);if(q.display==="none"||q.visibility==="hidden"||N.closest('[hidden], [aria-hidden="true"]'))return false;let H=N.getBoundingClientRect();return H.width>0&&H.height>0}).length===1)return f;let b="",A=document.querySelector('main[id], [role="main"][id]');if(A&&A.getAttribute("id"))b=A.getAttribute("id");else {let N=document.querySelector("h1[id]");if(N&&N.getAttribute("id"))b=N.getAttribute("id");else {let q=["main-content","maincontent","main","content","skip-content"];for(let H of q)if(document.getElementById(H)){b=H;break}}}let x=b==="",T=b||"main-content",D="<style>.wa-skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:999999;padding:8px 16px;background:#000;color:#fff;font-size:14px;text-decoration:none;border-radius:0 0 4px 0;}.wa-skip-link:focus{position:fixed;left:8px;top:8px;width:auto;height:auto;overflow:visible;outline:2px solid #fff;outline-offset:2px;}</style>"+'<a href="#'+T+'" class="wa-skip-link">{TEXT}</a>',w=(document.documentElement.getAttribute("lang")||"").trim(),C=document.querySelector('main, [role="main"]'),E=C?(C.getAttribute("aria-label")||"").trim():"",L=document.querySelector("h1"),I=L?(L.textContent||"").trim().replace(/\s+/g," ").slice(0,80):"";return f.push({selector:"body",attribute:"prepend",currentValue:"",issueType:"skip_link",wcag:"2.4.1",context:(x?'No skip navigation link found, and no element with a referenceable id (e.g. <main id="main-content">) exists to target.':"No skip navigation link found on page; target resolved to #"+T)+(w?" | page language: "+w:"")+(E?" | main landmark label: "+E:"")+(I?" | page heading: "+I:"")+" | html template (replace {TEXT} with the link text, in the page language): "+D,needsAI:true,...x?{manualFix:true}:{}}),f},mg={name:"skipLink",async detect(d){return d.evaluate(cM)}};var dM=()=>{let h=[],m=document.querySelectorAll("*"),p=0;for(let b of Array.from(m)){if(p++>5e3||h.length>=20)break;if(b.closest("[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye]")||typeof isVisible=="function"&&!isVisible(b))continue;let x=getComputedStyle(b).backgroundImage||"";if(!x||x==="none"||!x.includes("url("))continue;let T=x.match(/url\((['"]?)(.*?)\1\)/);if(!T)continue;let k=T[2];if(!k||k.startsWith("data:")&&k.length<256)continue;let D=b.getBoundingClientRect();if(D.width<32||D.height<32)continue;let w=b.tagName.toLowerCase(),C=b.getAttribute("role")||"",E=w==="a"||w==="button"||C==="button"||C==="link"||b.closest("a,button,[role=button],[role=link]")!==null,L=(b.textContent||"").trim().length>0,I=!!b.getAttribute("aria-label"),N=!!b.getAttribute("aria-labelledby"),q=!!b.getAttribute("title"),H=!!b.querySelector('img[alt]:not([alt=""])');if(b.closest('[aria-hidden="true"]')){let v=b.closest("a[href]");if(!!v&&Array.from(document.querySelectorAll("a[href]")).some(F=>F!==v&&F.href===v.href&&!F.closest('[aria-hidden="true"]')))continue}if(I||N||q||H||L||!E)continue;let $=b.closest("a,button,[role=button],[role=link]");if($&&$!==b){let v=($.textContent||"").trim(),_=$.getAttribute("aria-label")||$.getAttribute("title")||"",F=$.getAttribute("aria-labelledby"),P=!!$.querySelector('img[alt]:not([alt=""])');if(v||_.trim()||F||P)continue}let U=k;try{U=new URL(k,location.href).toString();}catch{continue}let K=typeof uniqueSel=="function"?uniqueSel(b):"",R=typeof getNearbyContext=="function"?getNearbyContext(b):{parentTag:w,nearbyHeading:""};h.push({selector:K,attribute:"aria-label",currentValue:"",issueType:"background_image_unlabeled",wcag:"1.1.1",context:`bg: ${U.slice(0,140)} | tag: ${w} | role: ${C||"(none)"} | parent: ${R.parentTag}${R.nearbyHeading?" | heading: "+R.nearbyHeading:""}`,needsAI:true,imageSrc:U,outerHtml:(b.outerHTML||"").slice(0,300)});}return h},hg={name:"backgroundImages",cap:20,async detect(d){return d.evaluate(dM)}};var fM=()=>{let d="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye]",h=[];return document.querySelectorAll("svg").forEach(p=>{if(h.length>=50||p.closest(d)||!isVisible(p)||p.getAttribute("aria-hidden")==="true")return;let A=p.getAttribute("role");if(A==="presentation"||A==="none"||p.closest('[aria-hidden="true"]'))return;let x=p.getAttribute("aria-label")||"",T=p.getAttribute("aria-labelledby")||"",k=p.querySelector("title"),D=k?(k.textContent||"").trim():"";if(x.trim()||T.trim()||D)return;let w=p.getBoundingClientRect(),C=w.width<=16&&w.height<=16;if(w.width<=4||w.height<=4||p.getAttribute("preserveAspectRatio")==="none")return;let E=p.closest('a, button, [role="button"], [role="link"], [onclick]');if(E){if(E.getAttribute("aria-label")?.trim()||E.getAttribute("aria-labelledby")?.trim())return;let _=getAccessibleName(E),F=E.cloneNode(true);F.querySelectorAll("svg").forEach(B=>B.remove());let P=(F.textContent||"").trim().replace(/\s+/g," ");if(_&&P.length>0)return}else {if(!/^(img|graphics-document|graphics-symbol)$/i.test((A||"").trim().split(/\s+/)[0])||C)return;let _=p.parentElement;if(_&&(_.textContent||"").trim().replace(/\s+/g," ").length>3)return}let L=uniqueSel(p),I=getNearbyContext(E||p),N=E&&E.getAttribute("href")||"",q=(E||p).outerHTML.slice(0,300),H=p.getAttribute("class")||"",$=p.getAttribute("data-icon")||"",U=E||p,K=U&&U!==p&&U.getAttribute("class")||"",R=typeof lookupIconLabel=="function"?lookupIconLabel(String(H),$,"")||lookupIconLabel(String(K),"",""):null,v=E?uniqueSel(E):L;h.push({selector:v,attribute:"aria-label",currentValue:"",issueType:"svg_missing_name",wcag:"1.1.1",context:JSON.stringify({parentTag:(E||p).tagName?(E||p).tagName.toLowerCase():"svg",href:N,nearbyHeading:I.nearbyHeading,parentRole:I.parentRole,svgClasses:H,iconLib:R||void 0,suggestion:"Add aria-label to the parent interactive element or <title> inside SVG"}),needsAI:true,outerHtml:q});}),h},gg={name:"svgNames",cap:50,async detect(d){return d.evaluate(fM)}};var pM=()=>{let d={"line-height":1.5,"letter-spacing":.12,"word-spacing":.16},f=1e-9,h=Object.keys(d),m=30,p="[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye], [class*=EquallyAI]",b={px:1,pt:1.333333,pc:16,in:96,cm:37.795,mm:3.7795,q:.37795},A=R=>{let v=[];for(let _ of R.split(";")){let F=_.match(/^\s*([-a-zA-Z]+)\s*:\s*(.*?)\s*$/);if(!F)continue;let P=F[1].toLowerCase();if(!h.includes(P))continue;let B=F[2],z=/!\s*important\s*$/i.test(B);B=B.replace(/!\s*important\s*$/i,"").trim(),B&&(P!=="line-height"&&/^[-+]?\d+(\.\d+)?$/.test(B)&&parseFloat(B)!==0||v.push({prop:P,value:B,important:z}));}return v},x=(R,v,_,F)=>{let P=v.trim().toLowerCase();if(/^normal$|^initial$/.test(P))return {kind:"narrow"};if(/^inherit$|^revert$|^unset$/.test(P))return {kind:"notBlocked"};if(P.startsWith("var(")||P.startsWith("calc(")||P.startsWith("env("))return {kind:"undetermined"};if(/^-?[\d.]+$/.test(P)){let ee=parseFloat(P);return R==="line-height"?{kind:"ratio",factor:ee}:{kind:"ratio",factor:0}}let B=P.endsWith("%")&&/\d/.test(P),z=B?P.slice(0,-1).trim().match(/^([\d.]+)$/):P.match(/^([\d.]+)(em|rem|vw|vh|px|pt|cm|mm|pc|in|q)$/);if(!z)return {kind:"undetermined"};let X=parseFloat(z[1]);if(B||P.endsWith("em")){let ee=F??_;return ee&&_&&isFinite(ee)&&isFinite(_)&&ee>0&&_>0?B?{kind:"ratio",factor:X/100*(ee/_)}:{kind:"ratio",factor:X*(ee/_)}:B?{kind:"ratio",factor:X/100}:{kind:"ratio",factor:X}}let te=P.match(/(rem|vw|vh|px|pt|cm|mm|pc|in|q)$/)?.[1];if(te==="px"||te&&b[te]){let ee=te==="px"?X:X*(b[te]||0);return _===null||!isFinite(_)||_<=0?{kind:"undetermined"}:{kind:"ratio",factor:ee/_}}return {kind:"undetermined"}},T=(R,v,_)=>{let F=R;for(;F;){let P=v.get(F);if(P){let B=P.filter(z=>z.prop===_);if(B.length){let z=B.filter(te=>te.important);return {decl:z.length?z[z.length-1]:B[B.length-1],from:F}}}F=F.parentElement;}return null},k=R=>{let v=R;for(;v;){let _=v.style;if(_&&(_.display==="none"||_.visibility==="hidden")||_&&(_.position==="absolute"||_.position==="fixed")&&(D(_.top)||D(_.left)))return false;if(_&&(_.overflowX==="scroll"||_.overflowX==="auto")){for(let F=R;F!==v;F=F.parentElement)if(F.style&&w(F.style.width)>=900)return false}v=v.parentElement;}return true},D=R=>{if(!R)return false;let v=R.match(/^(-)([\d.]+)(px|em|rem|vh|vw)$/i);if(!v)return false;let _=parseFloat(v[2]),F=v[3].toLowerCase();return F==="px"?_>=100:F==="em"||F==="rem"?_>=4:_>=10},w=R=>{let v=R?R.match(/^([\d.]+)px$/):null;return v?parseFloat(v[1]):0},C=[],E=[],L=new Map,I=typeof getComputedStyle=="function"?getComputedStyle:null,N=R=>{try{let v=I?I(R).fontSize:"",_=v?v.match(/^([\d.]+)px$/):null;return _?parseFloat(_[1]):null}catch{return null}},q=new Map,H=Array.from(document.querySelectorAll('[style*="important" i]'));for(let R of H)R.closest(p)||q.set(R,A(R.getAttribute("style")||""));for(let R of document.querySelectorAll("body [style]"))R.closest(p)||q.has(R)||q.set(R,A(R.getAttribute("style")||""));let $=[],U=document.createTreeWalker(document.body,1),K=U.currentNode;for(;K;)Array.from(K.childNodes).some(v=>v.nodeType===3&&/\S/.test(v.textContent||""))&&!K.closest(p)&&$.push(K),K=U.nextNode();for(let R of $){if(C.length>=m)break;if(k(R))for(let v of h){let _=T(R,q,v);if(!_||!_.decl.important)continue;let F=N(R),P=_.from===R?F:N(_.from)??F,B=x(v,_.decl.value,F,P);if(!(B.kind==="undetermined"||B.kind==="narrow"||B.kind==="ratio"&&B.factor+f<d[v]))continue;let X=L.get(_.from);X||(X=[],L.set(_.from,X),E.push({from:_.from,props:X})),X.includes(v)||X.push(v);}}for(let{from:R,props:v}of E){if(C.length>=m)break;let _=typeof uniqueSel=="function"?uniqueSel(R):"",F=typeof getNearbyContext=="function"?getNearbyContext(R):{parentTag:R.parentElement?.tagName.toLowerCase()||"",nearbyHeading:""},P=[];P.push("blocked: "+v.join(",")),P.push("tag: "+R.tagName.toLowerCase()),F.nearbyHeading&&P.push("heading: "+F.nearbyHeading),P.push("parent: "+F.parentTag),C.push({selector:_,attribute:"style",currentValue:(R.getAttribute("style")||"").slice(0,200),issueType:"text_spacing_blocked",wcag:"1.4.12",context:P.join(" | "),needsAI:true,outerHtml:(R.outerHTML||"").slice(0,300)});}return C},vg={name:"textSpacing",cap:30,async detect(d){return d.evaluate(pM)}};var mM=()=>{let d="[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye], [class*=EquallyAI]",h=[],m=document.querySelectorAll('button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"]');for(let p of m){if(h.length>=50)break;if(p.closest(d)||!isVisible(p))continue;let b=p,A=b.tagName==="INPUT"?(b.getAttribute("type")||"").toLowerCase():"";if(A==="submit"||A==="reset")continue;let x=(b.getAttribute("role")||"").trim().toLowerCase().split(/\s+/)[0];if((x==="none"||x==="presentation")&&b.disabled===true)continue;let T=(b.getAttribute("aria-label")||"").trim(),k=b.getAttribute("aria-labelledby"),D=(b.getAttribute("title")||"").trim(),w=(b.getAttribute("value")||"").trim(),C=(b.textContent||"").trim().replace(/\s+/g," "),E="";k&&(E=typeof __resolveIdRefs=="function"?__resolveIdRefs(k):"");let L=b.querySelector('img[alt]:not([alt=""])'),I=b.querySelector("svg title"),N=b.querySelector("svg[aria-label]");if(!!(T||E||D||w||C||L||I||N))continue;let H=uniqueSel(b),$=getNearbyContext(b),U=b.closest("form"),K=U&&(U.getAttribute("id")||U.getAttribute("name"))||"",R=b.getAttribute("class")||"",v=b.querySelector('i, svg, span[class*="icon"]'),_=v&&v.getAttribute("class")||"",F=v&&v.getAttribute("data-icon")||"",P=v?(v.textContent||"").trim():"",B=typeof lookupIconLabel=="function"?lookupIconLabel(String(_),F,P):null,z=!B&&typeof lookupIconLabel=="function"?lookupIconLabel(String(R),"",""):null,X=B||z,te=[];for(let ie of ["type","name","id"]){let be=(b.getAttribute(ie)||"").trim();be&&te.push(ie+"="+be.slice(0,40));}let ee=[];if(U){let ie=(U.getAttribute("action")||"").trim();if(ie){let de=ie;try{de=new URL(ie,document.baseURI).pathname;}catch{}ee.push("action: "+de.slice(0,80));}let be=[];for(let de of U.querySelectorAll("input:not([type=hidden]):not([type=submit]):not([type=button]), textarea, select")){let ke=(de.getAttribute("aria-label")||de.getAttribute("placeholder")||de.id&&Array.from(U.querySelectorAll("label[for]")).find(De=>De.getAttribute("for")===de.id)?.textContent||de.getAttribute("name")||"").trim().replace(/\s+/g," ");if(be.push(ke.slice(0,40)||de.getAttribute("type")||de.tagName.toLowerCase()),be.length>=4)break}be.length&&ee.push("fields: "+be.join(", "));}let Z=[];K&&Z.push("form: "+K),$.nearbyHeading&&Z.push("heading: "+$.nearbyHeading),_&&Z.push("icon: "+String(_).slice(0,80)),R&&Z.push("class: "+String(R).slice(0,80)),Z.push("parent: "+$.parentTag),te.length&&Z.push("control: "+te.join(" "));for(let ie of ee)Z.push("form "+ie);X&&Z.push("icon-hint (glyph name only, not the action): "+X),h.push({selector:H,attribute:"aria-label",currentValue:"",issueType:"unlabeled_button",wcag:"4.1.2",context:Z.join(" | "),needsAI:true,outerHtml:b.outerHTML.slice(0,300)});}return h},bg={name:"unlabeledButtons",cap:50,async detect(d){return d.evaluate(mM)}};var hM=()=>{let d=new Set(["more","info","click","click here","here","read more","learn more","see more","link","button","this"]),f=new Set(["submit","send","yes","no","next","prev","previous","back","view","details","continue","go","ok","open","close","apply","save"]),h={};function m(R){if(isWidget(R)||!isVisible(R))return;let v=getAccessibleName(R);if(!v)return;let _=v.toLowerCase().trim();h[_]=(h[_]||0)+1;}document.querySelectorAll("a[href]").forEach(R=>m(R));let p=new Set(["fa","fas","far","fab","fal","fad","material-icons","material-symbols","bi","glyphicon"]),b=["fa-","bi-","icon-","icofont-","dashicons-","heroicon","feather-","lucide-","material-"];function A(R){let v=R.toLowerCase();return p.has(v)||b.some(_=>v.startsWith(_))}let x=/[\u4e00-\u9fff\u3040-\u30ff\uac00-\ud7af]/;function T(R,v){return x.test(R)?1:v}let k=50,D=[];function w(R){if((R.textContent||"").trim().replace(/\s+/g," ").length>0)return false;let _=R.querySelectorAll("i, span, em");for(let F of _)if((typeof F.className=="string"?F.className:"").split(/\s+/).some(A))return true;return false}function C(R){let v=R.className||"";return typeof v!="string"?false:v.split(/\s+/).some(A)}function E(R){if(D.length>=k||isWidget(R)||!isVisible(R))return;let v=getAccessibleName(R);if(!v)return;let _=v.toLowerCase().trim(),F=false,P=v.length>=2&&/^[A-Z][A-Z0-9]+$/.test(v.trim()),B=/^[[(]?\d{1,4}[\])]?$/.test(v.trim());if(v.length<T(v,3)&&!P&&!B)F=true;else if(d.has(_))F=true;else if(f.has(_)&&(h[_]||0)>=2){let Z=(R.getAttribute("aria-label")||"").trim().toLowerCase(),ie=!!R.getAttribute("aria-labelledby")||!!Z&&Z!==_,be=R.querySelector&&R.querySelector('.sr-only, .visually-hidden, [class*="sr-only"], [class*="visually-hidden"], [class*="screen-reader"]'),de=be?(be.textContent||"").trim().toLowerCase():"";!ie&&!(be&&de!==_)&&(F=true);}else (w(R)||C(R)&&v.length===0)&&(R.getAttribute("aria-label")||R.getAttribute("aria-labelledby")||R.querySelector&&R.querySelector('.sr-only, .visually-hidden, [class*="sr-only"], [class*="visually-hidden"]')||(F=true));if(!F)return;let z=getNearbyContext(R),X=uniqueSel(R),te=R.getAttribute("href")||"",ee=R.outerHTML.slice(0,300);D.push({selector:X,attribute:"aria-label",currentValue:(R.getAttribute("aria-label")||"").trim(),message:"weak link name: "+(R.getAttribute("aria-label")||R.getAttribute("aria-labelledby")?`"${v}" is too generic for a control \u2014 add distinguishing context`:`text "${v}" is too generic for a control \u2014 add distinguishing context`),issueType:"weak_link_name",wcag:"2.4.4",needsReview:true,reviewReason:"WCAG 2.4.4 (AA) judges link purpose in context: the link text together with its sentence, paragraph, list item or table cell (nearbyText). A link whose text names its destination page or topic passes, even as one word in a menu. Fail only generic text (here, more, click here, read more) whose context still does not say where the link goes.",context:JSON.stringify({currentText:v,href:te,nearbyHeading:z.nearbyHeading,parentTag:z.parentTag,parentRole:z.parentRole,cardText:z.cardText||"",imgAlt:z.imgAlt||""}),needsAI:true,outerHtml:ee});}document.querySelectorAll("a[href]").forEach(R=>E(R));let L=/^(untitled(?:\s+document)?|new\s+page|new\s+document|home|page\s*\d*|document|untitled)$/i,I=/^(iframe|embed|widget|frame|content|untitled)$/i,N=new Set(["section","title","heading","headings","page","content","chapter","part","article","document","intro","untitled","test","lorem","tbd","todo","draft","sample","example","welcome","hello","hi","home"]);function q(R){return !!(!R||R.getAttribute("aria-hidden")==="true"||R.closest('[aria-hidden="true"]'))}function H(R,v,_,F,P,B){if(D.length>=k)return;let z=uniqueSel(R),X=(R.outerHTML||"").slice(0,300);D.push({selector:z,attribute:v,currentValue:_,issueType:F,wcag:P,context:JSON.stringify(B),needsAI:true,outerHtml:X});}let $=document.querySelectorAll("h1,h2,h3,h4,h5,h6");for(let R=0;R<$.length&&!(D.length>=k);R++){let v=$[R];if(!v||isWidget(v)||q(v)||!isVisible(v))continue;let _=getAccessibleName(v);if(!_)continue;let F=_.toLowerCase().trim(),P=F.split(/\s+/).filter(Boolean),B=()=>{if(!/^\p{L}$/u.test(_))return false;let te=v.nextElementSibling;if(!te)return false;let ee=te.tagName.toLowerCase(),Z=[];if(ee==="dl"?Z=Array.from(te.querySelectorAll("dt")):ee==="ul"||ee==="ol"?Z=Array.from(te.children).filter(be=>be.tagName==="LI"):ee==="table"&&(Z=Array.from(te.querySelectorAll("tbody tr, tr")).map(be=>be.cells&&be.cells[0])),Z=Z.filter(Boolean),Z.length<1)return false;let ie=_.toLowerCase();return Z.every(be=>(be.textContent||"").trim().toLowerCase().startsWith(ie))},z=false;if(_.length<T(_,3)?z=!B():(P.length===1&&(d.has(F)||N.has(F))||/^page\s*\d+$/i.test(F)||/^section\s*\d+$/i.test(F)||/^chapter\s*\d+$/i.test(F)||/^[^\p{L}\p{N}]+$/u.test(_))&&(z=true),!z)continue;let X=getNearbyContext(v);H(v,"textContent",_,"weak_heading","2.4.6",{currentText:_,tag:v.tagName.toLowerCase(),nearbyHeading:X.nearbyHeading,parentTag:X.parentTag,parentRole:X.parentRole});}let U=document.querySelectorAll("iframe");for(let R=0;R<U.length&&!(D.length>=k);R++){let v=U[R];if(!v||isWidget(v)||q(v))continue;let _=getComputedStyle(v);if(v.getClientRects().length===0||_.visibility==="hidden"||_.visibility==="collapse"||(v.getAttribute("src")||"").trim().toLowerCase().indexOf("javascript:")===0)continue;let F=(v.getAttribute("title")||"").trim();if(!F)continue;let P=F.toLowerCase(),B=false;if((F.length<T(F,3)||I.test(P)||d.has(P))&&(B=true),!B)continue;let z=(v.getAttribute("src")||"").slice(0,120),X=getNearbyContext(v);H(v,"title",F,"weak_iframe_title","4.1.2",{currentTitle:F,src:z,nearbyHeading:X.nearbyHeading,parentTag:X.parentTag});}if(D.length<k){let R=document.querySelector("head > title, title"),v=(document.title||"").trim();if(R&&v){let _=v.toLowerCase(),F=false;(v.length<T(v,5)||L.test(_)||/^untitled/i.test(v))&&(F=true),F&&D.push({selector:"title",attribute:"textContent",currentValue:v,issueType:"weak_page_title",wcag:"2.4.2",context:JSON.stringify({currentTitle:v,hostname:typeof location<"u"&&location&&location.hostname||"",pathname:typeof location<"u"&&location&&location.pathname||""}),needsAI:true,outerHtml:(R.outerHTML||"").slice(0,300)});}}let K=document.querySelectorAll("svg");for(let R=0;R<K.length&&!(D.length>=k);R++){let v=K[R];if(!v||isWidget(v)||q(v)||v.getAttribute("role")==="presentation"||v.getAttribute("role")==="none"||!isVisible(v))continue;let _=v.querySelector("title"),F=_?(_.textContent||"").trim():"",P=(v.getAttribute("aria-label")||"").trim(),B=P||F;if(!B)continue;let z=B.toLowerCase(),X=false;if((B.length<T(B,3)||d.has(z)||/^(icon|svg|image|graphic|logo)$/i.test(B))&&(X=true),!X)continue;let te=v.closest('a, button, [role="button"], [role="link"]'),ee=getNearbyContext(v);H(v,P?"aria-label":"title",B,"weak_svg_name","1.1.1",{currentName:B,svgClasses:v.getAttribute("class")||"",parentTag:te?te.tagName.toLowerCase():ee.parentTag,parentHref:te&&te.getAttribute("href")||"",nearbyHeading:ee.nearbyHeading});}return D},yg={name:"weakNames",cap:50,async detect(d){return d.evaluate(hM)}};var gM=()=>{let f=[],h=document.querySelector('meta[name="viewport"]');if(h){let p=(h.getAttribute("content")||"").trim(),b=p.toLowerCase(),A=false,x=[];(b.indexOf("user-scalable=no")>=0||b.indexOf("user-scalable=0")>=0)&&(A=true,x.push("user-scalable=no blocks pinch-zoom"));let T=["yes","no","device-width","device-height"],k=b.match(/user-scalable\s*=\s*([a-z][a-z-]*)/);k&&T.indexOf(k[1])<0&&(A=true,x.push("user-scalable="+k[1]+" (invalid, parsed as 0)"));let D=b.match(/maximum-scale\s*=\s*([a-z][a-z-]*)/);D&&T.indexOf(D[1])<0&&(A=true,x.push("maximum-scale="+D[1]+" (invalid, parsed as 0)"));let w=b.match(/maximum-scale\s*=\s*([\d.]+)/);w&&parseFloat(w[1])<2&&(A=true,x.push("maximum-scale="+w[1]+" (<2)")),A&&f.push({selector:'meta[name="viewport"]',attribute:"content",currentValue:p,issueType:"zoom_restriction",wcag:"1.4.4",context:"viewport blocks zoom: "+x.join(" | "),needsAI:false,fixValue:"width=device-width, initial-scale=1"});}let m=[{el:document.documentElement,selector:"html"},{el:document.body,selector:"body"}];for(let p=0;p<m.length&&!(f.length>=5);p++){let b=m[p];if(b.el)try{let x=(getComputedStyle(b.el).getPropertyValue("touch-action")||"").trim().toLowerCase();(x==="none"||x==="pinch-zoom")&&f.push({selector:b.selector,attribute:"style",currentValue:"touch-action: "+x,issueType:"zoom_restriction",wcag:"1.4.4",context:"CSS touch-action: "+x+" on <"+b.selector+"> prevents pinch-zoom",needsAI:!1,fixValue:"touch-action: manipulation !important;"});}catch{}}return f},wg={name:"zoomUnlock",cap:5,async detect(d){return d.evaluate(gM)}};var vM=()=>{let f=[],h=document.body?document.body.querySelectorAll("*"):[];for(let m=0;m<h.length&&f.length<10;m++){let p=h[m],b=p.tagName.toLowerCase();if(b==="script"||b==="style"||b==="svg"||b==="textarea"||b==="select")continue;let A="";for(let q=p.firstChild;q;q=q.nextSibling)q.nodeType===3&&(A+=q.nodeValue);if(!A.replace(/\s+/g,"").length)continue;let x=getComputedStyle(p);if(x.display==="none"||x.visibility==="hidden"||x.display==="contents")continue;let T=x.overflowX,k=x.overflowY,D=T==="hidden"||T==="clip",w=k==="hidden"||k==="clip";if(!D&&!w||p.closest('[aria-hidden="true"],[hidden],[inert]'))continue;let C=p.clientWidth,E=p.clientHeight;if(E<=1||C<=1)continue;let L=x.webkitLineClamp||x.getPropertyValue("-webkit-line-clamp");if(L&&L!=="none")continue;let I="";if(w&&p.scrollHeight>E+2?I="height "+E+"px < content "+p.scrollHeight+"px":D&&x.textOverflow!=="ellipsis"&&p.scrollWidth>C+2&&(I="width "+C+"px < content "+p.scrollWidth+"px"),!I){let q=parseFloat(x.fontSize);if(!(q>0))continue;let H=p.style.getPropertyValue("font-size"),$=p.style.getPropertyPriority("font-size");p.style.setProperty("font-size",q*2+"px","important");let U=p.clientHeight,K=p.clientWidth;w&&U>1&&p.scrollHeight>U+2?I="at 200%: height "+U+"px < content "+p.scrollHeight+"px":D&&x.textOverflow!=="ellipsis"&&K>1&&p.scrollWidth>K+2&&(I="at 200%: width "+K+"px < content "+p.scrollWidth+"px"),H?p.style.setProperty("font-size",H,$):p.style.removeProperty("font-size");}if(!I)continue;let N=typeof uniqueSel=="function"?uniqueSel(p):b;f.push({selector:N,attribute:"style",currentValue:(p.getAttribute("style")||"").slice(0,200),issueType:"resize_text_clipped",wcag:"1.4.4",context:"text clipped by overflow:hidden: "+I,needsAI:true,needsReview:true,reviewReason:"WCAG 1.4.4 Resize Text: this text is cut off by overflow:hidden ("+I+"). Violation when content or function is lost at 200% text size and no other mechanism shows it. Pass when the clipped part is decorative or repeated elsewhere, or the box grows or scrolls when text is resized.",outerHtml:(p.outerHTML||"").slice(0,300)});}return f},xg={name:"textClip",cap:10,async detect(d){return d.evaluate(vM)}};var bM=()=>{let d=[],f=document.querySelectorAll('main *, [role="main"] *, body > div *'),h=new Set,m=Math.min(f.length,200);for(let p=0;p<m;p++){let b=f[p];if(h.has(b)||!b.offsetParent)continue;h.add(b);let A=getComputedStyle(b),x=parseInt(A.order||"0",10),T=A.position;if(x>=3){let k=b.getBoundingClientRect();if(k.width>0&&k.height>0){let D=(b.textContent?.trim().length||0)>10,w=!!b.querySelector("a, button, input, select, textarea");(D||w)&&d.push({selector:typeof uniqueSel=="function"?uniqueSel(b):b.tagName.toLowerCase(),attribute:"data-sequence-review",currentValue:`CSS order: ${x}`,issueType:"meaningful_sequence",wcag:"1.3.2",context:`Element uses CSS order:${x} \u2014 content with interactive elements or text is visually reordered far from its DOM position, which confuses screen readers and keyboard users.`,needsAI:true});}}if(T==="absolute"){if(!!!b.querySelector("a, button, input, select, textarea"))continue;let D=b.parentElement;if(!D||D.children.length<=2)continue;let w=b.getBoundingClientRect(),C=D.getBoundingClientRect();(w.top<C.top-100||w.left<C.left-300)&&d.push({selector:typeof uniqueSel=="function"?uniqueSel(b):b.tagName.toLowerCase(),attribute:"data-sequence-review",currentValue:`position: ${T}, displaced ${Math.round(Math.abs(w.top-C.top))}px`,issueType:"meaningful_sequence",wcag:"1.3.2",context:"Interactive content is absolutely positioned far from its DOM location. Screen readers and keyboard users will encounter it in a different order than visual users.",needsAI:true});}}return d},Dg={name:"meaningfulSequence",async detect(d){return d.evaluate(bM)}};var Ag={name:"sensoryCharacteristics",async detect(d){let{instructionalTexts:f,controlLabels:h,navCount:m,labelTexts:p}=await d.evaluate(()=>{let x=[],T=document.querySelectorAll('p, li, td, label, span, div, a, button, h1, h2, h3, h4, h5, h6, figcaption, [role="alert"], [role="status"]'),k=Math.min(T.length,300),D=[];document.querySelectorAll('button, a[href], [role="button"], input[type="button"], input[type="submit"]').forEach(L=>{let I=((L.textContent||"")+" "+(L.getAttribute("aria-label")||"")+" "+(L.getAttribute("value")||"")).trim().toLowerCase();I&&D.push(I);});let w=L=>!!L.offsetParent||getComputedStyle(L).position==="fixed",C=Array.from(document.querySelectorAll('nav, [role="navigation"]')).filter(w).length,E=[];document.querySelectorAll('h1, h2, h3, h4, h5, h6, nav, [role="navigation"], [role="menu"], [role="menubar"], [aria-label], summary, button, a, legend').forEach(L=>{if(!w(L))return;let I=((L.getAttribute("aria-label")||"")+" "+(L.tagName.match(/^(H\d|SUMMARY|BUTTON|A|LEGEND)$/)&&L.textContent||"")).trim().toLowerCase();I&&I.length<=60&&E.push(I);});for(let L=0;L<k;L++){let I=T[L];if(!I.offsetParent||I.children.length>3||I.querySelector("p, div, ul, ol, li, table, section, article, nav, header, footer, main, aside, form, h1, h2, h3, h4, h5, h6")||I.closest('[aria-hidden="true"]'))continue;let N=I.textContent?.trim()||"";N.length<15||N.length>300||/click|tap|press|select|choose|find|look|see|drag|scroll|hover|go to|navigate/i.test(N)&&x.push({text:N,selector:typeof uniqueSel=="function"?uniqueSel(I):I.tagName.toLowerCase()});}return {instructionalTexts:x.slice(0,20),controlLabels:D,navCount:C,labelTexts:E}});if(f.length===0)return [];let b=[],A=x=>{let T=(x.toLowerCase().match(/\b(navigation|menu)\b/)||[])[1];return T?m===1?true:p.some(k=>k.indexOf(T)!==-1):false};for(let{text:x,selector:T}of f){x.toLowerCase();let D=/\b(round|square|circular|triangular|arrow-shaped)\b.*\b(button|icon|element|thing)\b/i.test(x)&&!/\b(submit|cancel|close|menu|search|delete|edit|save|back|next|previous|home)\b/i.test(x),w=/\b(header|footer|sidebar menu|breadcrumb)\b/i.test(x)||A(x),C=/\b(on the|to the|in the)\s+(left|right|top|bottom|upper|lower|above|below|sidebar)\b/i.test(x)&&!w&&/\b(click|tap|press|select|find)\b/i.test(x),E=/\b(red|green|blue|yellow|orange|purple|pink|gray|grey|white|black)\s+(button|link|icon|text|area|section|box|dot|circle|indicator)\b/i.test(x)&&!/\b(submit|cancel|close|delete|save|success|error|warning|danger)\b/i.test(x),L=/\b(large|small|big|tiny|narrow|wide)\s+(button|link|icon|box|area)\b/i.test(x)&&/\b(click|tap|press|select|find)\b/i.test(x),I=/\b(?:labell?ed|called|named|titled)\s+["'“‘]/i.test(x),N=(x.match(/\b(round|square|circular|triangular|arrow-shaped|red|green|blue|yellow|orange|purple|pink|gray|grey|white|black|large|small|big|tiny|narrow|wide)\b/i)||[])[1],q=!!N&&h.some(H=>H.indexOf(N.toLowerCase())!==-1);if(!(I||q)&&(D||C||E||L)){let H=D?"shape":C?"position":E?"color":"size";b.push({selector:T,attribute:"data-sensory-review",currentValue:x.slice(0,100),issueType:"sensory_characteristic",wcag:"1.3.3",context:`Instruction relies on ${H} alone: "${x.slice(0,80)}". Provide a non-sensory way to identify the referenced element (e.g., by name, label, or function).`,needsAI:true});}}return b}};var yM=()=>{let d=[],f=document.querySelectorAll("img");for(let h of f){if(!h.offsetParent||h.width<50||h.height<20||h.complete&&h.naturalWidth===0)continue;let m=h.src||h.getAttribute("data-src")||"",p=m.indexOf(","),b=(m.toLowerCase().startsWith("data:")&&p!==-1?m.slice(0,p):m).toLowerCase(),A=h.getAttribute("alt")||"",x=h.getAttribute("role")||"";if(h.getAttribute("aria-hidden")==="true"||!!h.closest('[aria-hidden="true"]')||x==="presentation"||x==="none"||h.hasAttribute("alt")&&A.trim()==="")continue;let k=h.width>200&&h.height<80&&h.height>15,D=/banner|header|logo-text|title|heading|cta|promo|offer|button.*\.(?:png|jpg|gif|webp)/i.test(b);if(!(D||k)||/(?:^|\/)(?:img|dsc|dscn|dcim|pict)[-_]?\d|photo|gallery/i.test(b)&&!D)continue;let C=h.closest("a[href]"),E=(()=>{if(!C)return false;let K=C.getAttribute("href")||"";if(K==="/"||K==="")return true;try{let R=new URL(C.href,location.href);return R.origin!==location.origin?!1:!!(R.pathname.replace(/\/+$/,"")===""||/^\/(?:index|home|default)(?:\.\w+)?$/i.test(R.pathname)||/^\/[a-z]{2}(?:-[a-z]{2})?(?:\.\w+)?$/i.test(R.pathname))}catch{return false}})();if(E&&(C.textContent||"").trim().length===0)continue;let I="";if(C&&!E&&(C.textContent||"").trim().length===0)try{let K=new URL(C.href,location.href),R=A.trim().split(/\s+/).filter(Boolean);if(K.origin!==location.origin&&/^https?:$/.test(K.protocol)&&R.length>0&&R.length<=4&&A.trim().length<=40){let v=z=>z.toLowerCase().normalize("NFKD").replace(/[^\p{L}\p{N}]/gu,""),_=v(A),F=K.hostname.toLowerCase().split(".").filter(z=>z&&z!=="www"),P=(F.length>1?F.slice(0,-1):F).map(v).filter(Boolean);I=_.length>=3&&(_===v(F.join(""))||_===P.join("")||P.some(z=>_===z||z.length>=5&&_.startsWith(z)))?"exempt":"review";}}catch{}let N=!!h.closest('header, [role="banner"], footer, [role="contentinfo"]'),q=h.height>0&&h.height<=120,H=N&&q,$=/logo|brand|wordmark|hero|banner-?(?:img|image)?|footer|marketing|promo|cover|screenshot|dashboard/i,U=H||$.test(b)||$.test(h.className)||$.test(h.getAttribute("id")||"");b.includes("icon")||b.includes("avatar")||b.includes("emoji")||d.push({selector:typeof uniqueSel=="function"?uniqueSel(h):"img",attribute:"data-image-of-text",currentValue:b.split("/").pop()?.slice(0,60)||"",issueType:"image_of_text",wcag:"1.4.5",context:`Image may contain text (${h.width}x${h.height}px, alt="${A.slice(0,40)}"). Use real text with CSS styling instead.`,needsAI:true,imageSrc:h.src,...U||I?{needsReview:true,reviewReason:H?"small graphic in the header/footer landmark \u2014 likely a logo, wordmark, or brand signature, which are exempt under WCAG 1.4.5 (logotypes)":I==="exempt"?"image is the only content of a link to another site and its alt names that site \u2014 likely the partner/sponsor logo, exempt under WCAG 1.4.5 (logotypes); confirm the image holds only the brand name":I==="review"?"image is the only content of a link to another site and its alt is a short name \u2014 likely a partner/sponsor logo, exempt under WCAG 1.4.5 (logotypes)":"filename suggests marketing/brand imagery; logos and brand collateral are exempt under WCAG 1.4.5"}:{}});}return d},_g={name:"imagesOfText",async detect(d){return d.evaluate(yM)}};var Eg={name:"reflow",async detect(d){let f=d;if(!f.setViewport)return [];let h=f.viewport?.()??{width:1280,height:720},m=h.width??1280,p=h.height??720;try{return await f.setViewport({width:320,height:p}),await new Promise(A=>setTimeout(A,500)),await d.evaluate(A=>{let x=[],T=document.querySelectorAll("body *"),k=Math.min(T.length,500);for(let D=0;D<k;D++){let w=T[D];if(!w.offsetParent)continue;let C=w.tagName.toLowerCase();if(C==="script"||C==="style"||C==="noscript")continue;let E=w.getBoundingClientRect();E.right>A+5&&E.width>A*1.1&&x.push({selector:typeof uniqueSel=="function"?uniqueSel(w):C,attribute:"style",currentValue:`${Math.round(E.width)}px wide at ${A}px viewport`,issueType:"reflow_overflow",wcag:"1.4.10",context:`Element is ${Math.round(E.width)}px wide and overflows the ${A}px viewport by ${Math.round(E.right-A)}px. Content must reflow to a single column at 320px CSS width without horizontal scrolling.`,needsAI:!1,fixValue:"max-width: 100%; overflow-wrap: break-word;"});}return document.documentElement.scrollWidth>A+10&&x.push({selector:"html",attribute:"data-reflow",currentValue:`scrollWidth ${document.documentElement.scrollWidth}px at ${A}px viewport`,issueType:"reflow_overflow",wcag:"1.4.10",context:`Page has horizontal scrollbar at ${A}px width. WCAG 1.4.10 requires content to reflow without horizontal scrolling at 320 CSS pixels (equivalent to 1280px at 400% zoom).`,needsAI:!1,fixValue:"Fix elements causing horizontal overflow at narrow viewports"}),x},320)}finally{await f.setViewport({width:m,height:p}).catch(()=>{});}}};var wM=()=>{let d=[],f=document.querySelectorAll("video");for(let m of f){if(m.autoplay&&!m.muted&&d.push({selector:typeof uniqueSel=="function"?uniqueSel(m):"video",attribute:"muted",currentValue:"autoplay without muted",issueType:"unsafe_autoplay",wcag:"1.4.2",context:"Video autoplays with sound. Either mute by default, provide a mechanism to pause, or limit to 3 seconds.",needsAI:false,fixValue:"true"}),!(m.offsetParent!==null&&getComputedStyle(m).display!=="none"))continue;let b=m.getBoundingClientRect();if(b.width===0&&b.height===0||m.error)continue;let A=/mute|unmute|sound|volume|audio|play|pause/i,x=!!m.parentElement?.querySelector('button, [role="button"]')||!!m.getAttribute("id")&&!!document.querySelector('[aria-controls~="'+(m.getAttribute("id")||"").replace(/"/g,"")+'"]');for(let E=m.parentElement?.parentElement||null,L=0;E&&!x&&L<3;E=E.parentElement,L++)x=Array.from(E.querySelectorAll('button, [role="button"]')).some(I=>A.test((I.getAttribute("aria-label")||"")+" "+(I.getAttribute("title")||"")+" "+(I.textContent||"")));if((m.muted||m.hasAttribute("muted"))&&(m.loop||m.hasAttribute("loop"))&&!m.hasAttribute("controls")&&!x)continue;let T=m.querySelectorAll("track"),k=Array.from(T).find(E=>E.kind==="captions"||E.kind==="subtitles"),D=Array.from(T).find(E=>E.kind==="descriptions");m.src||m.querySelector("source")?.src||"";let C=typeof uniqueSel=="function"?uniqueSel(m):"video";k||d.push({selector:C,attribute:"data-captions-missing",currentValue:"",issueType:"missing_captions",wcag:"1.2.2",context:`Video element has no <track kind="captions">. Provide synchronized captions for all prerecorded audio content. Page language: ${(document.documentElement.getAttribute("lang")||"").trim()||"not declared"}; the caption track's srclang and label follow the spoken language, which only the audio settles.`,needsAI:false,fixValue:'Add a <track kind="captions" src="captions.vtt" srclang="[spoken language]" label="[language name]" default> element',needsReview:true,reviewReason:"cannot verify an audio track in-page \u2014 confirm the video has speech content before adding captions (silent videos need none)"}),D||d.push({selector:C,attribute:"data-audio-description",currentValue:"",issueType:"missing_audio_description",wcag:"1.2.5",context:"Video has no audio description track. For prerecorded video with meaningful visual content not described in the audio, provide an audio description track or a text transcript.",needsAI:true,needsReview:true,reviewReason:"needs a human to judge whether the video shows information its audio does not describe"});}let h=document.querySelectorAll("audio");for(let m of h){let p=typeof uniqueSel=="function"?uniqueSel(m):"audio";m.closest("figure, div, section")?.querySelector('a[href*="transcript"], [class*="transcript"]')||d.push({selector:p,attribute:"data-transcript-missing",currentValue:"",issueType:"missing_transcript",wcag:"1.2.1",context:"Audio element has no associated transcript. Provide a text transcript for all prerecorded audio-only content.",needsAI:true}),m.autoplay&&!m.muted&&d.push({selector:p,attribute:"muted",currentValue:"autoplay without muted",issueType:"unsafe_autoplay",wcag:"1.4.2",context:"Audio autoplays with sound. Provide a way to pause/stop/mute, or limit to 3 seconds.",needsAI:false,fixValue:"true"});}return d},Cg={name:"mediaAlternatives",cap:50,async detect(d){return (await d.evaluate(wM)).slice(0,50)}};var xM=()=>{let d=[],f=document.querySelector('meta[http-equiv="refresh"]');if(f){let R=f.getAttribute("content")||"",v=parseInt(R,10);!isNaN(v)&&v>0&&v<72e3&&d.push({selector:`meta[http-equiv="refresh"][content*="${R.trim().slice(0,20)}"]`,attribute:"data-auto-refresh",currentValue:R,issueType:"auto_refresh",wcag:"2.2.1",context:`Page auto-refreshes after ${v}s. Users must be able to turn off, adjust, or extend time limits (WCAG 2.2.1).`,needsAI:false,manualFix:true});}let h=document.querySelectorAll("[accesskey]");for(let R of h){let v=R.getAttribute("accesskey")||"";if(v.length===1){let _=typeof uniqueSel=="function"?uniqueSel(R):R.tagName.toLowerCase();d.push({selector:_,attribute:"accesskey",currentValue:v,issueType:"character_key_shortcut",wcag:"2.1.4",context:`Single character accesskey "${v}". Must allow users to remap or disable single-character shortcuts. Consider using modifier key combinations instead.`,needsAI:false,fixValue:"Provide a mechanism to remap or turn off the shortcut, or use modifier keys"});}}let m=document.querySelectorAll("select");for(let R of m){let v=R.hasAttribute("onchange"),_=R.getAttribute("onchange")||"";if(v&&/submit|location|href|navigate|window\./i.test(_)){let F=typeof uniqueSel=="function"?uniqueSel(R):"select";d.push({selector:F,attribute:"onchange",currentValue:_.slice(0,80),issueType:"on_input_change",wcag:"3.2.2",context:"Select element changes context on input (navigates or submits). Add an explicit submit button instead of auto-submitting on selection change.",needsAI:false,fixValue:"Add a submit button; remove auto-navigation from onchange"});}}let p=document.querySelectorAll("[ontouchstart], [ontouchmove], [ongesturestart], [ongesturechange]");for(let R of p)if(!(R.hasAttribute("onclick")||R.hasAttribute("onkeydown")||R.hasAttribute("onkeyup"))){let _=typeof uniqueSel=="function"?uniqueSel(R):R.tagName.toLowerCase();d.push({selector:_,attribute:"data-pointer-gesture",currentValue:"touch/gesture handler without keyboard alternative",issueType:"pointer_gesture",wcag:"2.5.1",context:"Element has touch/gesture handler but no keyboard or click alternative. All multipoint/path-based gestures must have single-pointer alternatives.",needsAI:true});}let b=document.querySelectorAll("[onmousedown]");for(let R of b){let v=R.hasAttribute("onmouseup"),_=R.tagName.toLowerCase();if(!v&&_!=="a"&&_!=="button"&&_!=="input"){let F=typeof uniqueSel=="function"?uniqueSel(R):_;d.push({selector:F,attribute:"data-pointer-cancellation",currentValue:"mousedown action without mouseup",issueType:"pointer_cancellation",wcag:"2.5.2",context:"Element fires action on mouse down-event. Use click or mouseup instead so users can cancel by moving the pointer away before releasing.",needsAI:false,fixValue:"Move action from onmousedown to onclick or onmouseup"});}}let A=/devicemotion|deviceorientation|accelerometer|gyroscope/i,x=/addEventListener\(\s*['"](?:devicemotion|deviceorientation)['"]\s*,\s*(?:\(\s*\)\s*=>|function\s*\(\s*\))\s*\{\s*(?:[A-Za-z_$][\w$]*\s*(?:\+\+|--)\s*;?\s*)+\}\s*\)/gi,T=/addEventListener\(\s*['"](?:click|keydown|keyup|input|change|pointerup|touchend)['"]/i,k=/(?:disable|turn off|switch off|stop|pause|deactivate|opt.?out)[^.]{0,40}(?:motion|shake|tilt|orientation|sensor|gyro|accelerometer)|(?:motion|shake|tilt|orientation|sensor)[^.]{0,40}(?:disable|turn off|switch off|opt.?out)/i;function D(){let R=document.querySelectorAll('label, button, [role="button"], [role="switch"], input[type="button"], input[type="checkbox"]');for(let v of Array.from(R)){let _=(v.textContent||"")+" "+(v.getAttribute("aria-label")||"")+" "+(v.getAttribute("value")||"");if(k.test(_))return true}return false}function w(R){return !A.test(R.replace(x,""))||T.test(R)?true:D()}let C=document.querySelectorAll("script:not([src]):not([data-wa-injected])");for(let R of C){let v=R.textContent||"";if(A.test(v)&&!w(v)){let _=[],F=R;for(;F&&F!==document.body&&F!==document.documentElement;){let z=F.parentElement,X=F.tagName.toLowerCase(),te=z?Array.from(z.children).filter(Z=>Z.tagName===F.tagName):[],ee=te.indexOf(F)+1;_.unshift(ee>1||te.length>1?X+":nth-of-type("+ee+")":X),F=z;}let P=F===document.body?"body":F===document.documentElement?"html":"",B=(P?P+" > ":"")+_.join(" > ");d.push({selector:B||"script",attribute:"data-motion-actuation",currentValue:"Uses device motion/orientation API",issueType:"motion_actuation",wcag:"2.5.4",context:"Page uses device motion/orientation. Any functionality operated by device motion must also be available via UI controls, and motion actuation must be disableable.",needsAI:true});break}}let E=document.querySelectorAll("form"),L='input:not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]), select, textarea',I=/\bcc-|card.?(?:number|num|no\b)|cardnumber|\bcvv|\bcvc|\bcsc\b|security.?code|\bexpir|\biban\b|routing|account.?(?:number|no\b)|sort.?code|\bbilling\b|transaction-(?:amount|currency)/i,N=/card|payment/i,q=/\b(?:pay|buy|purchase|donate|subscribe and pay|place (?:your |my )?order|complete (?:order|purchase|payment)|confirm (?:order|purchase|payment)|check ?out)\b/i,H=/\b(?:delete|remove|close|deactivate|cancel|terminate)\b[^.]{0,30}\b(?:account|profile|subscription|membership|data|records?)\b/i,$=/\b(?:e-?)?sign\b(?![\s\u00a0-]*(?:up|in|on|out)\b)|\bagree and (?:submit|continue|sign)\b/i,U=/\b(?:save|update|change)\b/i,K=/e-?mail|name|phone|tel\b|zip|postal|company|organi[sz]ation|country/i;for(let R of E){let v=Array.from(R.querySelectorAll(L)),_=He=>[He.getAttribute("name"),He.getAttribute("id"),He.getAttribute("autocomplete"),He.getAttribute("placeholder"),He.getAttribute("aria-label")].join(" "),F=Array.from(R.querySelectorAll('button, input[type="submit"], input[type="image"]')).filter(He=>He.tagName!=="BUTTON"||!He.getAttribute("type")||(He.getAttribute("type")||"").toLowerCase()==="submit").map(He=>(He.getAttribute("value")||"")+" "+(He.textContent||"")+" "+(He.getAttribute("aria-label")||"")).join(" . "),P=v.some(He=>I.test(_(He)))||Array.from(R.querySelectorAll("iframe")).some(He=>N.test((He.getAttribute("title")||"")+" "+(He.getAttribute("name")||""))),B=v.some(He=>/signature/i.test(_(He))),z=P||q.test(F),X=H.test(F),te=B||$.test(F),ee=v.length>0&&v.some(He=>(He.getAttribute("type")||"").toLowerCase()==="email"||/e-?mail/i.test(_(He)))&&v.every(He=>{let Mt=He.tagName.toLowerCase()==="input"?(He.getAttribute("type")||"text").toLowerCase():He.tagName.toLowerCase();return Mt==="email"||Mt==="checkbox"||Mt==="tel"?true:Mt==="text"||Mt==="search"?K.test(_(He)+" "+(He.closest("label")?.textContent||"")):false}),Z=(R.textContent||"").toLowerCase(),ie=/payment|credit card|billing|purchase|\border\b|checkout|bank|account number/i.test(Z),be=/\bagree|terms|contract|binding|signature|consent|waiver/i.test(Z),de=/delete.*account|remove.*data|cancel.*account/i.test(Z),ke=z||X||te,De=ee&&(U.test(F)||de),Be=!ke&&(!ee&&(ie||be||de)||De);if(!ke&&!Be)continue;let _e=!!R.querySelector('[type="checkbox"][required], [class*="confirm"], [id*="confirm"], [name*="confirm"]'),Ee=!!R.querySelector('[class*="review"], [class*="summary"], [id*="review"]');if(_e||Ee)continue;let bt=typeof uniqueSel=="function"?uniqueSel(R):"form",kt=ke?z?"financial":X?"data-deletion":"legal":De?de?"data-deletion":"data-modification":ie?"financial":be?"legal":"data-deletion";d.push({selector:bt,attribute:"data-error-prevention",currentValue:kt,issueType:"error_prevention_missing",wcag:"3.3.4",context:`${kt.charAt(0).toUpperCase()+kt.slice(1)} form lacks a confirmation/review step. For ${kt} transactions, provide: (1) a review step before submission, (2) ability to check/correct input, or (3) ability to reverse the submission.`,needsAI:true,...Be?{needsReview:true,reviewReason:De&&de?"form text is about deleting an account or data and its submit is generic \u2014 confirm whether submitting it deletes stored user data":De?"form saves contact/account details \u2014 confirm whether submitting it changes stored user data that cannot be reviewed or reversed":`form text mentions ${kt} topics but its controls show no ${kt} transaction (no payment fields, pay/order/delete submit, or signature) \u2014 confirm whether submitting it commits the user`}:{}});}return d},Sg={name:"timingAndInput",async detect(d){return d.evaluate(xM)}};var DM=()=>{let d=[],f=document.querySelectorAll('nav, [role="navigation"]');for(let p of f){if(!p.offsetParent||p.closest('footer, aside, [role="contentinfo"], [role="complementary"]')||p.parentElement?.closest('nav, [role="navigation"]'))continue;let b=p.getBoundingClientRect();if(b.top<=window.innerHeight)continue;let A=typeof uniqueSel=="function"?uniqueSel(p):"nav";d.push({selector:A,attribute:"data-nav-position",currentValue:`top: ${Math.round(b.top)}px`,issueType:"inconsistent_navigation",wcag:"3.2.3",context:"Primary navigation appears below the visible viewport on this page. WCAG 3.2.3 (Consistent Navigation) is a cross-page criterion and cannot be confirmed from a single page \u2014 manually verify this navigation appears in the same relative order across pages that share this template.",needsAI:true,needsReview:true,reviewReason:"Consistent Navigation (3.2.3) is a cross-page criterion; single-page position alone cannot confirm a violation."});}let h=document.querySelectorAll('[class*="blink" i], [class*="flash" i], [class*="strobe" i], blink, marquee');for(let p of h){if(!p.offsetParent)continue;let b=p.getBoundingClientRect();if(b.width<1||b.height<1||!(p.textContent||"").trim()&&!p.querySelector("img, svg, video, canvas, picture")&&getComputedStyle(p).backgroundImage==="none")continue;let A=typeof uniqueSel=="function"?uniqueSel(p):p.tagName.toLowerCase();d.push({selector:A,attribute:"data-flashing",currentValue:p.tagName.toLowerCase(),issueType:"flashing_content",wcag:"2.3.1",context:"Element may produce flashing content. Content must not flash more than 3 times per second. Remove blinking/flashing effects or ensure they are below the threshold.",needsAI:true});}let m=document.querySelectorAll('img[src*=".gif"]');for(let p of m){if(!p.offsetParent||p.width<25||p.height<25)continue;let b=p.getBoundingClientRect();if(b.width>100&&b.height>100){let A=typeof uniqueSel=="function"?uniqueSel(p):"img";d.push({selector:A,attribute:"data-animated-gif",currentValue:(p.src||"").split("/").pop()?.slice(0,40)||"",issueType:"animated_gif_no_pause",wcag:"2.2.2",context:"Animated GIF detected. If this GIF is animated and loops continuously, provide a pause mechanism. Also verify it does not flash more than 3 times per second (WCAG 2.3.1).",needsAI:true});}}return d},kg={name:"navigationAndWayfinding",async detect(d){return d.evaluate(DM)}};var Tg={name:"flashDetection",async detect(d){let f=[];if(!d.screenshot)return f;let m=await d.evaluate(()=>{let D=document.documentElement.style.getPropertyValue("--wa-animations-frozen")==="1";if(D){let w=document.querySelectorAll("*");for(let C of w)C.style.removeProperty("animation-play-state"),C.style.removeProperty("transition");}return D}),p=8,b=120,A=9,x=3,T=[];for(let k=0;k<p;k++){let D=await d.evaluate(w=>{let C=window.innerWidth,E=window.innerHeight,L=3,I=3,N=[];for(let q=0;q<I;q++)for(let H=0;H<L;H++){let $=Math.floor((H+.5)*(C/L)),U=Math.floor((q+.5)*(E/I)),K=document.elementFromPoint($,U);if(!K){N.push(0);continue}let v=getComputedStyle(K).backgroundColor||"rgba(0,0,0,0)",_=typeof parseCssColor=="function"?parseCssColor(v):null;if(!_){N.push(0);continue}let F=.2126*_[0]+.7152*_[1]+.0722*_[2];N.push(F);}return N},A);T.push(D),k<p-1&&await new Promise(w=>setTimeout(w,b));}m&&await d.evaluate(()=>{let k=document.querySelectorAll("*");for(let D of k)D.style.setProperty("animation-play-state","paused","important"),D.style.setProperty("transition","none","important");});for(let k=0;k<A;k++){let D=0,w=T[0][k],C=null;for(let I=1;I<p;I++){let N=T[I][k];if(Math.abs(N-w)>25){let H=N>w?"up":"down";C&&H!==C&&D++,C=H;}w=N;}let E=p*b/1e3,L=D/E;if(L>=x){let I=k%3,N=Math.floor(k/3);f.push({selector:"body",attribute:"data-flash-detected",currentValue:`${L.toFixed(1)} flashes/sec in region (${I},${N})`,issueType:"flashing_content",wcag:"2.3.1",context:`Content flashes ${L.toFixed(1)} times/second in screen region (row ${N}, col ${I}). WCAG requires no more than 3 flashes per second. This can trigger seizures in users with photosensitive epilepsy.`,needsAI:false,fixValue:"Remove or reduce flashing to below 3 per second, or ensure the flashing area is below the 21,824 sq pixel threshold"});}}return f}};var Rg={name:"reducedMotion",async detect(d){let f=[],h=await d.evaluate(()=>{let m=false,p=false;for(let A of document.styleSheets)try{for(let x of A.cssRules){let T=x.cssText||"";/animation|transition|@keyframes/i.test(T)&&!/prefers-reduced-motion/.test(T)&&(m=!0),x instanceof CSSMediaRule&&/prefers-reduced-motion/i.test(x.conditionText||x.media?.mediaText||"")&&(p=!0);}}catch{}let b=document.querySelectorAll('[class*="animate"], [class*="slide"], [class*="fade"], [class*="bounce"], [class*="spin"], [class*="pulse"]');return b.length>0&&(m=true),{hasAnimations:m,hasReducedMotionQuery:p,animatedCount:b.length}});return h.hasAnimations&&!h.hasReducedMotionQuery&&f.push({selector:"html",attribute:"data-reduced-motion",currentValue:`${h.animatedCount} animated elements, no @media (prefers-reduced-motion) query`,issueType:"motion_without_reduced_motion",wcag:"2.3.3",context:'Page has animations/transitions but no @media (prefers-reduced-motion: reduce) query. Users who set "Reduce motion" in their OS settings will still see all animations. Add: @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }',needsAI:false,fixValue:"@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }"}),f}};var AM=()=>{let d="[class*=asw-], [class*=userway], [class*=acsb], [class*=audioeye], [class*=EquallyAI]",h=[],m=/^(0+(\.0+)?|false|off|no|none|disabled?)$/i,p=v=>v!==null&&!m.test(v.trim()),b=v=>{let _=parseFloat((v||"").trim());return Number.isFinite(_)&&_>0},A=/^(carousel|slider|slideshow|slides|slick|swiper|splide|flickity|owl|flexslider|glide|layerslider|ls|rotator|gallery)$/i,x=v=>v.split(/[\s_-]+/).filter(Boolean),T=v=>{if((v.getAttribute("aria-roledescription")||"").trim().toLowerCase()==="carousel")return true;let _=typeof v.className=="string"?v.className:v.getAttribute("class")||"";return x(_).some(F=>A.test(F))},k=/^(autoplay|autoPlay|auto_play|autoStart|autostart|auto_start)$/,D=v=>{let _=v.trim();if(!_.startsWith("{"))return "";let F;try{F=JSON.parse(_);}catch{try{F=JSON.parse(_.replace(/'/g,'"'));}catch{return ""}}if(!F||typeof F!="object")return "";for(let P of Object.keys(F)){if(!k.test(P))continue;let B=F[P];if(B===true||typeof B=="number"&&B>0||typeof B=="string"&&p(B)&&B.trim()!==""||B&&typeof B=="object")return `${P}: ${JSON.stringify(B).slice(0,40)}`}return ""},w=v=>{for(let P of ["data-autoplay","data-auto","data-autostart","data-bs-autoplay","data-auto-play"]){if(!v.hasAttribute(P))continue;let B=v.getAttribute(P)||"";if((B.trim()===""||p(B))&&(T(v)||U(v)>=2))return {attr:P,value:B}}let _=["data-interval","data-bs-interval"].some(P=>v.hasAttribute(P)&&m.test((v.getAttribute(P)||"").trim()));for(let P of ["data-ride","data-bs-ride"])if((v.getAttribute(P)||"").trim().toLowerCase()==="carousel"&&!_)return {attr:P,value:"carousel"};for(let P of ["data-interval","data-bs-interval"]){let B=v.getAttribute(P);if(b(B)&&T(v))return {attr:P,value:B||""}}let F=T(v);for(let P of Array.from(v.attributes)){if(!P.name.startsWith("data-")||!F&&!x(P.name.slice(5)).some(z=>A.test(z)))continue;let B=D(P.value);if(B)return {attr:P.name,value:B}}if((v.getAttribute("aria-roledescription")||"").trim().toLowerCase()==="carousel"){let P=/autoplay["']?\s*[:=]\s*["']?(false|0|off|no)\b/i;for(let B of Array.from(v.attributes)){if(/(^|-)autoplay$/i.test(B.name)&&(B.value.trim()===""||p(B.value)))return {attr:B.name,value:B.value.slice(0,60)};if(/autoplay/i.test(B.value)&&!P.test(B.value))return {attr:B.name,value:B.value.slice(0,60)}}}return null},C=/^(pause|stop|play|playpause|resume)$/i,E=/\b(pause|stop|play|resume)\b/i,L=v=>{let _=[v.getAttribute("aria-label")||"",v.getAttribute("title")||"",v.getAttribute("value")||"",(v.textContent||"").trim().slice(0,80)],F=(v.getAttribute("aria-labelledby")||"").trim();if(F)for(let P of F.split(/\s+/))_.push(document.getElementById(P)?.textContent||"");for(let P of Array.from(v.querySelectorAll("img[alt]")))_.push(P.getAttribute("alt")||"");return _.join(" ")},I=v=>{let _=v.getAttribute("class")||"";return x(_).some(F=>C.test(F))?true:v.matches('a, button, input, [role="button"], [role="switch"], [role="checkbox"], [tabindex]')?E.test(L(v)):false},N=/^(section|article|main|nav|aside|header|footer|form|dialog)$/i,q=v=>T(v)||w(v)!==null||Array.from(v.querySelectorAll("*")).some(_=>T(_)||w(_)!==null),H=v=>{if(v.querySelector("[aria-pressed]"))return true;let _=[v];for(let B of Array.from(v.parentElement?.children||[]))B===v||N.test(B.tagName)||q(B)||_.push(B);let F=v.getAttribute("id"),P=B=>{let z=[...(B.getAttribute("aria-controls")||"").split(/\s+/),(B.getAttribute("data-bs-target")||B.getAttribute("data-target")||"").replace(/^#/,"")].filter(Boolean);return z.length>0&&!z.includes(F||"")};for(let B of _){if(B!==v&&I(B)&&!P(B))return true;for(let z of Array.from(B.querySelectorAll("*")))if(I(z)&&!P(z))return true}if(F){let B=typeof CSS<"u"&&CSS.escape?CSS.escape(F):F.replace(/["\\]/g,"\\$&");for(let z of Array.from(document.querySelectorAll(`[aria-controls~="${B}"], [data-target="#${B}"], [data-bs-target="#${B}"]`)))if(I(z))return true}return false},$=/^(slide|cell)$/i,U=v=>{let _=z=>x(z.getAttribute("class")||"").some(X=>$.test(X))&&!/(^|[\s_-])cloned?([\s_-]|$)/i.test(z.getAttribute("class")||""),F=Array.from(v.querySelectorAll("[class]")).filter(_),P=F.filter(z=>!F.some(X=>X!==z&&X.contains(z)));if(!P.length)return 0;let B=P.length;for(let z of P){let X=Array.from(z.parentElement?.children||[]).filter(te=>te.tagName===z.tagName&&!/(^|[\s_-])cloned?([\s_-]|$)/i.test(te.getAttribute("class")||""));B=Math.max(B,X.length);}return B},K=new Set,R=(v,_)=>{if(h.length>=10||K.has(v)||(K.add(v),v.closest(d))||v.closest('[aria-hidden="true"], [hidden], template, noscript')||typeof isVisible=="function"&&!isVisible(v)||U(v)===1||H(v))return;let F=typeof uniqueSel=="function"?uniqueSel(v):v.tagName.toLowerCase();h.push({selector:F,attribute:_.attr,currentValue:_.value.slice(0,100),issueType:"carousel_autoplay_no_pause",wcag:"2.2.2",context:`slider markup declares autoplay (${_.attr}="${_.value.slice(0,60)}") and no pause / stop control sits in or beside it`,message:"carousel starts automatically and has no pause or stop control",needsAI:false,manualFix:true,reviewReason:"add a visible pause / stop control for the slider (or turn autoplay off); no attribute write fixes this",outerHtml:v.cloneNode(false).outerHTML.slice(0,300)});};for(let v of Array.from(document.body?document.body.querySelectorAll("*"):[])){if(h.length>=10)break;if(!v.attributes.length)continue;if(v.hasAttribute("data-swiper-autoplay")&&b(v.getAttribute("data-swiper-autoplay"))){let F=v.closest('.swiper, .swiper-container, [class*="swiper"]:not(.swiper-slide):not(.swiper-wrapper)')||v.parentElement?.parentElement||v;R(F,{attr:"data-swiper-autoplay",value:v.getAttribute("data-swiper-autoplay")||""});continue}let _=w(v);_&&R(v,_);}return h},Fg={name:"carouselAutoplay",cap:10,async detect(d){return d.evaluate(AM)}};var Vg=[yg,cg,gg,Oh,tg,eg,$h,fg,Uh,bg,Wh,mg,Nh,ug,rg,zh,og,Yh,lg,ng,wg,xg,ig,Hh,Vh,ag,pg,vg,jh,hg,qh,sg,Dg,Ag,_g,Eg,Cg,Sg,kg,Tg,Rg,Fg],XM=[Ph,Bh,Gh,dg];function $g(d,f,h){d?.push({tool:f,kind:"engine-failed",detail:`detector threw, its findings are absent: ${h?.message??String(h)}`});}async function Vu(d,f,h,m){let p=f??[],b=[];try{let{detectPlatform:H}=await Promise.resolve().then(()=>(Bu(),qu));b=await H(d);}catch{}try{let{UNIQUE_SELECTOR_JS:H,IS_VISIBLE_JS:$,ACCESSIBLE_NAME_JS:U,WIDGET_SKIP_JS:K,IS_HIDDEN_FROM_AT_JS:R,IS_TRACKING_PIXEL_JS:v,NEARBY_CONTEXT_JS:_}=await Promise.resolve().then(()=>(Lg(),Mg)),{ICON_LABELS_JS:F}=await Promise.resolve().then(()=>(Og(),Pg)),{COLOR_MATH_JS:P}=await Promise.resolve().then(()=>(qg(),Ng)),z=`if(typeof __name==='undefined'){var __name=function(t,v){return t};var __defProp=Object.defineProperty;}
384
384
  `+[H,$,U,K,R,v,_,F,P].join(`
385
- `),{inject:X}=await Promise.resolve().then(()=>(Vr(),bn));try{await X(d,{tool:"detector-helpers",content:z});}catch{await d.evaluate(`(0,eval)(${JSON.stringify(z)})`);}}catch(H){console.warn("[webability] helper injection failed:",H.message),(h??[]).push("color:kernel-injection-failed");}let A=[],x="";try{let{applyPlatformTemplates:H}=await Promise.resolve().then(()=>(Bu(),qu)),$=b;x=$.filter(U=>U!=="universal"&&U!=="universal_iframe").join(", "),A=await H(d,$);}catch{}let{guardDetectorState:T}=await Promise.resolve().then(()=>(Vr(),bn)),k=globalThis.process?.env?.WA_STRICT_STATE==="1",D={strict:k,bugs:m?.internalBugs},w=await T(d,"detectors:parallel",h??[],()=>Promise.allSettled((m?.experimental?[...Vg,...XM]:Vg).map(async H=>{try{let $=await H.detect(d);return H.cap&&$.length>=H.cap&&p.push({detector:H.name,cap:H.cap}),$}catch($){return $g(m?.internalBugs,H.name,$),[]}})),D),C=[];m?.skipFocusMutating&&(h??[]).push("focus:mutating-detectors-skipped (live-tab scan; focus visibility and focus obscured were not checked)");let E=[...m?.skipFocusMutating?[]:[Jh,Xh],...m?.extraSerialDetectors??[]];for(let H of E){let $=[];try{$=await T(d,H.name,h??[],()=>H.detect(d).catch(U=>($g(m?.internalBugs,H.name,U),[])),D);}catch(U){if(k)throw U}try{H.cap&&$.length>=H.cap&&p.push({detector:H.name,cap:H.cap}),C=C.concat($);}catch{}}let L=[...w.flatMap(H=>H.status==="fulfilled"?H.value:[]),...C];if(x)for(let H of L)H.needsAI&&(H.context=Lh(H.context,x));let I=[...A,...L],N=YM(I),q=["wp-ada-compliance","webability-widget","webability-a11y","asw-","userway","acsb","audioeye","equallyai"];return N.filter(H=>{let $=H.selector.toLowerCase();return $.trim()?!q.some(U=>$.includes(U)):false})}async function JM(d){try{return await d.evaluate(()=>{let f=getComputedStyle(document.documentElement),h={};for(let T of f)T.startsWith("--")&&/color|bg|background|text|primary|secondary|accent/i.test(T)&&(h[T]=f.getPropertyValue(T).trim());let m={},p={},b=document.querySelectorAll("body *:not(script):not(style):not(noscript)"),A=Math.min(b.length,500);for(let T=0;T<A;T++){let k=getComputedStyle(b[T]);if(k.display==="none"||k.visibility==="hidden")continue;let D=k.backgroundColor,w=k.color;D&&D!=="rgba(0, 0, 0, 0)"&&(m[D]=(m[D]||0)+1),w&&(p[w]=(p[w]||0)+1);}let x=T=>Object.entries(T).sort((k,D)=>D[1]-k[1]).slice(0,8).map(([k,D])=>({color:k,count:D}));return {cssVars:h,topBgColors:x(m),topTextColors:x(p)}})}catch{return {cssVars:{},topBgColors:[],topTextColors:[]}}}function YM(d){let f=new Set;return d.filter(h=>{let m=`${h.selector}::${h.issueType}`;return f.has(m)?false:(f.add(m),true)})}var jg="1.16.0";var $u=["wcag2a","wcag2aa","wcag21aa","wcag22aa"];function ju(d){return d.includes("wcag21aa")||d.includes("wcag22aa")||d.includes("wcag134")?{"css-orientation-lock":{enabled:true}}:{}}function zg(d,f){return f==="AAA"&&!d.includes("wcag2aaa")?[...d,"wcag2aaa"]:d}var Zo={"1.1.1":"A","1.2.1":"A","1.2.2":"A","1.2.3":"A","1.3.1":"A","1.3.2":"A","1.3.3":"A","1.4.1":"A","1.4.2":"A","2.1.1":"A","2.1.2":"A","2.1.4":"A","2.2.1":"A","2.2.2":"A","2.3.1":"A","2.4.1":"A","2.4.2":"A","2.4.3":"A","2.4.4":"A","2.5.1":"A","2.5.2":"A","2.5.3":"A","2.5.4":"A","3.1.1":"A","3.2.1":"A","3.2.2":"A","3.2.6":"A","3.3.1":"A","3.3.2":"A","3.3.7":"A","4.1.2":"A","1.2.4":"AA","1.2.5":"AA","1.3.4":"AA","1.3.5":"AA","1.4.3":"AA","1.4.4":"AA","1.4.5":"AA","1.4.10":"AA","1.4.11":"AA","1.4.12":"AA","1.4.13":"AA","2.4.5":"AA","2.4.6":"AA","2.4.7":"AA","2.4.11":"AA","2.5.7":"AA","2.5.8":"AA","3.1.2":"AA","3.2.3":"AA","3.2.4":"AA","3.3.3":"AA","3.3.4":"AA","3.3.8":"AA","4.1.3":"AA","1.2.6":"AAA","1.2.7":"AAA","1.2.8":"AAA","1.2.9":"AAA","1.3.6":"AAA","1.4.6":"AAA","1.4.7":"AAA","1.4.8":"AAA","1.4.9":"AAA","2.1.3":"AAA","2.2.3":"AAA","2.2.4":"AAA","2.2.5":"AAA","2.2.6":"AAA","2.3.2":"AAA","2.3.3":"AAA","2.4.8":"AAA","2.4.9":"AAA","2.4.10":"AAA","2.4.12":"AAA","2.4.13":"AAA","2.5.5":"AAA","2.5.6":"AAA","3.1.3":"AAA","3.1.4":"AAA","3.1.5":"AAA","3.1.6":"AAA","3.2.5":"AAA","3.3.5":"AAA","3.3.6":"AAA","3.3.9":"AAA"};function Gg(d){return Zo[d]}var di={A:1,AA:2,AAA:3};function zu(d){let f=String(d.wcag||"").split(/[,\s]+/).filter(m=>/^\d+\.\d+\.\d+$/.test(m));if(f.length===0)return d.level??"AA";let h;for(let m of f){let p=Gg(m);p&&(!h||di[p]<di[h])&&(h=p);}return h}function Ln(d,f="AA"){let h=di[f]??di.AA;return d.filter(m=>{let p=zu(m);return !!p&&di[p]<=h})}var KM=new Set(["new_window_link","external_link_warning","download_link_warning"]);function Ug(d){let f=KM.has(d.issueType)?"minor":d.needsAI?"serious":"moderate",h=d.attribute==="style",m=d.attribute.startsWith("data-"),p=h&&d.fixValue?ZM(d.fixValue):d.fixValue;return {id:`wa-${d.issueType}-${fi(d.selector)}`,source:"webability",type:d.issueType,wcag:d.wcag,level:zu({wcag:d.wcag})??"AA",impact:f,message:QM(d,p,m),selector:d.selector,html:d.outerHtml,...d.needsReview?{confidence:"needs_review"}:{},...d.reviewReason?{reviewReason:d.reviewReason}:{},fix:{attribute:d.attribute,currentValue:d.currentValue,suggestedValue:p,needsManualReview:d.needsAI||h||m||!!d.needsReview||!!d.manualFix}}}function ZM(d){let f=d.trim();if(!f)return "";let h=f.endsWith(";"),p=f.split(";").map(b=>{let x=b.toLowerCase().lastIndexOf("!important");return x===-1?b.trim():b.slice(0,x).trim()}).filter(b=>b.length>0);return p.length===0?"":p.join(";")+(h?";":"")}function QM(d,f,h){if(d.message)return d.message;let m=d.issueType.replace(/_/g," "),p=f??d.fixValue;return h?p?`${m}: ${p}`:d.currentValue?`${m}: ${d.currentValue}`:d.context?`${m}: ${d.context}`:m:p?`${m}: set ${d.attribute}="${p}"`:d.currentValue?`${m}: ${d.attribute} is "${d.currentValue}"`:`${m}: missing ${d.attribute}`}function aa(d){return Array.isArray(d)?d.flat(1/0).filter(h=>typeof h=="string").join(" >>> "):typeof d=="string"?d:""}function fi(d){let f=0;for(let h=0;h<d.length;h++)f=(f<<5)-f+d.charCodeAt(h)|0;return Math.abs(f).toString(36)}function Gu(d){return d==="critical"||d==="serious"||d==="moderate"||d==="minor"?d:"moderate"}function Uu(d,f=[]){return {total:d.length,critical:d.filter(h=>h.impact==="critical").length,serious:d.filter(h=>h.impact==="serious").length,moderate:d.filter(h=>h.impact==="moderate").length,minor:d.filter(h=>h.impact==="minor").length,incomplete:0}}function Qo(d){let f=/^wcag(\d)(\d)(\d{1,2})$/.exec(d);return f?`${f[1]}.${f[2]}.${f[3]}`:""}function Wu(d){for(let f of d){let h=Qo(f);if(h)return h}return ""}function Xu(d){return d.includes("wcag2aaa")?"AAA":d.includes("wcag2aa")||d.includes("wcag21aa")||d.includes("wcag22aa")?"AA":"A"}async function Ju(d,f){try{let{AxeBuilder:h}=await import('@axe-core/playwright'),m=typeof d.mainFrame=="function"?d:d.axePage?.()??d;return await new h({page:m}).options({rules:ju(f)}).withTags(f).analyze()}catch{return eL(d,f)}}async function eL(d,f){let h=await Promise.resolve().then(()=>Xo(mi())),m=h.source??h.default?.source;if(!m)throw new Error("axe-core source unavailable");try{await d.evaluate(m);}catch{let{inject:b}=await Promise.resolve().then(()=>(Vr(),bn));await b(d,{tool:"axe",content:m});}return await d.evaluate(({wcagTags:b,rules:A})=>new Promise((x,T)=>{let k=window;if(!k.axe)return T(new Error("axe-core not loaded"));k.axe.run(document,{runOnly:{type:"tag",values:b},rules:A,resultTypes:["violations","incomplete"]}).then(x).catch(T);}),{wcagTags:f,rules:ju(f)})}function Yu(d){let f=[],h=[];for(let m of d)m.confidence==="needs_review"||rL(m)?h.push(m):f.push(tL(m));return {verdicts:f,undecided:h}}function tL(d){if(d.confidence===void 0&&d.reviewReason===void 0)return d;let{confidence:f,reviewReason:h,...m}=d;return m}function rL(d){let f=(d.type||"").toLowerCase(),h=d.wcag||"",m=d.html||"",p=(d.message||"").toLowerCase();if((f==="contrast_insufficient"||f==="color-contrast"||h==="1.4.3"||h==="1.4.11")&&nL(m))return "background uses gradient or image";if(f==="image_of_text"||h==="1.4.5"){let b=Xg(m,"src").toLowerCase();b.startsWith("data:")&&(b=b.split(",")[0]);let A=Xg(m,"alt").toLowerCase();if(/\b(logo|brand|wordmark|hero|banner|footer|marketing|promo|cover)\b/.test(b))return "brand imagery";if(A.length>0&&/\b(logo|brand|product screenshot|dashboard)\b/.test(A))return "branded imagery"}return (f==="inconsistent_navigation"||p.includes("inconsistent navigation"))&&(/<footer/i.test(m)||/<aside/i.test(m))?"footer/aside nav":""}function nL(d){return /background(-image)?\s*:\s*(?:linear-gradient|radial-gradient|conic-gradient|url\()/i.test(d)}function Xg(d,f){let h=new RegExp(`\\b${f}\\s*=\\s*"([^"]*)"`,"i"),m=d.match(h);return m?m[1]:""}Vr();var Jg=60,Yg=3,Kg=120,Zg=1200,Qg=300,ev=2e5,tv=8e3,aL=new Set(["bgImage","bgGradient","bgOverlap","elmPartiallyObscured","elmPartiallyObscuring"]),iL="*,*::before,*::after{color:transparent!important;-webkit-text-fill-color:transparent!important;text-shadow:none!important;text-decoration-color:transparent!important;caret-color:transparent!important}";function oL(d){let{selectors:f,maxBoxes:h,maxW:m,maxH:p,maxArea:b}=d,A=document.documentElement.scrollWidth,x=document.documentElement.scrollHeight,T=document.createElement("canvas");T.width=T.height=1;let k=T.getContext("2d",{willReadFrequently:true}),D=N=>{try{k.clearRect(0,0,1,1),k.fillStyle="#000",k.fillStyle=N,k.fillRect(0,0,1,1);let q=k.getImageData(0,0,1,1).data;return [q[0],q[1],q[2],q[3]]}catch{return null}},w={},C=document.querySelectorAll("video,canvas,iframe,embed,object");if(C.length>200){for(let N of f)w[N]=null;return w}let E=Array.from(C).map(N=>N.getBoundingClientRect()),L=window.scrollX,I=window.scrollY;for(let N of f){w[N]=null;let q=null;try{q=document.querySelector(N);}catch{continue}if(!q)continue;let H=getComputedStyle(q);if(H.visibility!=="visible"||H.display==="none"||H.webkitBackgroundClip==="text"||H.backgroundClip==="text")continue;let $=false,U=0;for(let Z=q;Z;Z=Z.parentElement){if(++U>64){$=true;break}let ie=getComputedStyle(Z);parseFloat(ie.opacity)<1&&($=true),(ie.mixBlendMode!=="normal"||ie.filter!=="none")&&($=true);}if($)continue;let K=D(H.color);if(!K||K[3]<255)continue;let R=parseFloat(H.fontSize),v=parseInt(H.fontWeight,10)>=700,_=R>=24||v&&R>=18.66,F=[],P=q.getBoundingClientRect();if(P.height>p*h||P.width>m*2)continue;let B=document.createTreeWalker(q,NodeFilter.SHOW_TEXT),z,X=0,te=false;for(;!te&&(z=B.nextNode());){if(++X>50){te=true;break}if(z.parentElement!==q)continue;let Z=z.textContent||"";if(Z.length>2e3){te=true;break}if(!Z.trim())continue;let ie=document.createRange();ie.selectNodeContents(z);let be=ie.getClientRects();if(be.length>h){te=true;break}for(let de=0;de<be.length;de++){let ke=be[de];if(!(ke.width<2||ke.height<2)&&(F.push({x:Math.round(ke.left+L),y:Math.round(ke.top+I),w:Math.max(1,Math.round(ke.width)),h:Math.max(1,Math.round(ke.height))}),F.length>h)){te=true;break}}}te||F.length===0||F.length>h||F.some(Z=>Z.w>m||Z.h>p||Z.w*Z.h>b||Z.x<0||Z.y<0||Z.x+Z.w>A||Z.y+Z.h>x)||F.some(Z=>E.some(ie=>Z.x<ie.right+L&&Z.x+Z.w>ie.left+L&&Z.y<ie.bottom+I&&Z.y+Z.h>ie.top+I))||(w[N]={fg:`rgb(${K[0]},${K[1]},${K[2]})`,threshold:_?3:4.5,boxes:F});}return w}async function sL(d){let{b64:f,fg:h}=d,m=atob(f),p=new Uint8Array(m.length);for(let $=0;$<m.length;$++)p[$]=m.charCodeAt($);let b=await createImageBitmap(new Blob([p],{type:"image/png"})),A=document.createElement("canvas");A.width=b.width,A.height=b.height;let x=A.getContext("2d",{willReadFrequently:true});x.drawImage(b,0,0);let T=x.getImageData(0,0,A.width,A.height).data,k=$=>{let U=$/255;return U<=.03928?U/12.92:Math.pow((U+.055)/1.055,2.4)},D=($,U,K)=>.2126*k($)+.7152*k(U)+.0722*k(K),w=h.match(/\d+/g).map(Number),C=D(w[0],w[1],w[2]),E=Math.max(1,Math.floor(Math.sqrt(A.width*A.height/1500))),L=0,I=1/0,N="",q="",H=0;for(let $=0;$<A.height;$+=E)for(let U=0;U<A.width;U+=E){let K=($*A.width+U)*4;if(T[K+3]<255)continue;let R=D(T[K],T[K+1],T[K+2]),v=Math.max(C,R),_=Math.min(C,R),F=(v+.05)/(_+.05);F>L&&(L=F,q=`rgb(${T[K]},${T[K+1]},${T[K+2]})`),F<I&&(I=F,N=`rgb(${T[K]},${T[K+1]},${T[K+2]})`),H++;}return H===0?null:{best:L,worst:I,worstBg:N,bestBg:q}}var es=class extends Error{};function br(d,f){let h=f-Date.now();if(h<=0)return Promise.reject(new es("pixel pass deadline"));let m,p=new Promise((b,A)=>{m=setTimeout(()=>A(new es("pixel pass deadline")),h);});return Promise.race([d,p]).finally(()=>clearTimeout(m))}async function Ku(d,f){let h=d.screenshot;if(typeof h!="function"||f.length===0)return [];let m=Array.from(new Set(f)).slice(0,Jg),p=[],b=false,A=Date.now()+tv;try{await br(d.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),A);let x=await br(d.evaluate(oL,{selectors:m,maxBoxes:Yg,maxW:Zg,maxH:Qg,maxArea:ev}),A);await br(Ko(d,{tool:"contrast-pixels",css:iL}),A),b=!0;let T=0;for(let k of m){let D=x[k];if(!D)continue;if(Date.now()>A||T+D.boxes.length>Kg)break;let w=0,C=1/0,E="",L="",I=!0;for(let N of D.boxes){T++;let q=await br(h.call(d,{clip:{x:N.x,y:N.y,width:N.w,height:N.h},fullPage:!0,type:"png",animations:"disabled"}),A),H=globalThis.Buffer,$=H?H.from(q).toString("base64"):"",U=await br(d.evaluate(sL,{b64:$,fg:D.fg}),A);if(!U){I=!1;break}U.best>w&&(w=U.best,L=U.bestBg),U.worst<C&&(C=U.worst,E=U.worstBg);}I&&p.push({selector:k,fail:w<D.threshold*.97,bestRatio:w,worstRatio:C,...E?{worstBg:E}:{},...L?{bestBg:L}:{},threshold:D.threshold,fg:D.fg});}}catch(x){globalThis.process?.env?.WA_DEBUG_PIXELS&&console.error("pixel judge failed",x);}finally{if(b)try{await Promise.race([d.evaluate(()=>document.querySelectorAll('style[data-wa-injected^="contrast-pixels:"]').forEach(x=>x.remove())),new Promise(x=>setTimeout(x,1e3))]);}catch{}}return p}function lL(d){let{selectors:f,maxBoxes:h,maxW:m,maxH:p,maxArea:b}=d,A=document.documentElement.scrollWidth,x=document.documentElement.scrollHeight,T=window.scrollX,k=window.scrollY,D={};for(let w of f){D[w]=null;let C=null;try{C=document.querySelector(w);}catch{continue}if(!C)continue;let E=getComputedStyle(C);if(E.visibility!=="visible"||E.display==="none"||!(E.webkitBackgroundClip==="text"||E.backgroundClip==="text"))continue;let L=false,I=0;for(let _=C;_;_=_.parentElement){if(++I>64){L=true;break}let F=getComputedStyle(_);(parseFloat(F.opacity)<1||F.mixBlendMode!=="normal"||F.filter!=="none")&&(L=true);}if(L)continue;let N=parseFloat(E.fontSize),q=parseInt(E.fontWeight,10)>=700,H=N>=24||q&&N>=18.66,$=[],U=document.createTreeWalker(C,NodeFilter.SHOW_TEXT),K,R=0,v=false;for(;!v&&(K=U.nextNode());){if(++R>50){v=true;break}if(!(K.textContent||"").trim())continue;let _=document.createRange();_.selectNodeContents(K);let F=_.getClientRects();for(let P=0;P<F.length;P++){let B=F[P];if(!(B.width<2||B.height<2)&&($.push({x:Math.round(B.left+T),y:Math.round(B.top+k),w:Math.max(1,Math.round(B.width)),h:Math.max(1,Math.round(B.height))}),$.length>h)){v=true;break}}}v||$.length===0||$.some(_=>_.w>m||_.h>p||_.w*_.h>b||_.x<0||_.y<0||_.x+_.w>A||_.y+_.h>x)||(D[w]={threshold:H?3:4.5,boxes:$});}return D}async function uL(d){let f=async C=>{let E=atob(C),L=new Uint8Array(E.length);for(let H=0;H<E.length;H++)L[H]=E.charCodeAt(H);let I=await createImageBitmap(new Blob([L],{type:"image/png"})),N=document.createElement("canvas");N.width=I.width,N.height=I.height;let q=N.getContext("2d",{willReadFrequently:true});return q.drawImage(I,0,0),{w:N.width,h:N.height,d:q.getImageData(0,0,N.width,N.height).data}},h=await f(d.painted),m=await f(d.backdrop);if(h.w!==m.w||h.h!==m.h)return null;let p=C=>{let E=C/255;return E<=.03928?E/12.92:Math.pow((E+.055)/1.055,2.4)},b=(C,E,L)=>.2126*p(C)+.7152*p(E)+.0722*p(L),A=h.w,x=h.h,T=new Uint8Array(A*x);for(let C=0;C<A*x;C++){let E=C*4;T[C]=Math.abs(h.d[E]-m.d[E])+Math.abs(h.d[E+1]-m.d[E+1])+Math.abs(h.d[E+2]-m.d[E+2])>48?1:0;}let k=2,D=[];for(let C=k;C<x-k;C++)for(let E=k;E<A-k;E++){let L=C*A+E;if(!T[L])continue;let I=true;for(let $=-k;$<=k&&I;$++)for(let U=-k;U<=k;U++)if(!T[L+$*A+U]){I=false;break}if(!I)continue;let N=L*4,q=b(h.d[N],h.d[N+1],h.d[N+2]),H=b(m.d[N],m.d[N+1],m.d[N+2]);D.push({ratio:(Math.max(q,H)+.05)/(Math.min(q,H)+.05),fg:`rgb(${h.d[N]},${h.d[N+1]},${h.d[N+2]})`,bg:`rgb(${m.d[N]},${m.d[N+1]},${m.d[N+2]})`});}if(D.length<40)return null;D.sort((C,E)=>C.ratio-E.ratio);let w=D[Math.floor(D.length*.02)];return {worst:w.ratio,best:D[D.length-1].ratio,worstFg:w.fg,worstBg:w.bg,core:D.length}}async function cL(d,f){let h=d.screenshot;if(typeof h!="function"||f.length===0)return [];let m=Array.from(new Set(f)).slice(0,Jg),p=[],b=false,A=Date.now()+tv;try{await br(d.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),A);let x=await br(d.evaluate(lL,{selectors:m,maxBoxes:Yg,maxW:Zg,maxH:Qg,maxArea:ev}),A);await br(Ko(d,{tool:"contrast-gradient-text",css:"[data-wa-gt]{background-image:none!important;background-color:transparent!important}"}),A),b=!0;let T=0;for(let k of m){let D=x[k];if(!D)continue;if(Date.now()>A||T+D.boxes.length*2>Kg)break;let w=1/0,C=0,E="",L="",I=!0,N=globalThis.Buffer;for(let q of D.boxes){T+=2;let H={x:q.x,y:q.y,width:q.w,height:q.h},$=await br(h.call(d,{clip:H,fullPage:!0,type:"png",animations:"disabled"}),A);await br(d.evaluate(R=>{document.querySelector(R)?.setAttribute("data-wa-gt","1");},k),A);let U;try{U=await br(h.call(d,{clip:H,fullPage:!0,type:"png",animations:"disabled"}),A);}finally{await d.evaluate(R=>{document.querySelector(R)?.removeAttribute("data-wa-gt");},k).catch(()=>{});}let K=await br(d.evaluate(uL,{painted:N?N.from($).toString("base64"):"",backdrop:N?N.from(U).toString("base64"):""}),A);if(!K){I=!1;break}K.worst<w&&(w=K.worst,E=K.worstFg,L=K.worstBg),K.best>C&&(C=K.best);}!I||!isFinite(w)||p.push({selector:k,fail:w<D.threshold*.97,bestRatio:C,worstRatio:w,worstBg:L,threshold:D.threshold,fg:E,gradientText:!0});}}catch(x){globalThis.process?.env?.WA_DEBUG_PIXELS&&console.error("gradient text judge failed",x);}finally{if(b)try{await Promise.race([d.evaluate(()=>{document.querySelectorAll('style[data-wa-injected^="contrast-gradient-text:"]').forEach(x=>x.remove()),document.querySelectorAll("[data-wa-gt]").forEach(x=>x.removeAttribute("data-wa-gt"));}),new Promise(x=>setTimeout(x,1e3))]);}catch{}}return p}function dL(d,f){let{confidence:h,reviewReason:m,...p}=d;return {...p,id:d.id.replace("axe-incomplete-","axe-"),impact:"serious",message:f.gradientText?`contrast: gradient text \u2014 worst stop ${f.fg} is ${f.worstRatio.toFixed(2)}:1 on ${f.worstBg??"its backdrop"}, needs ${f.threshold}:1 (measured from the painted glyph pixels)`:`contrast: ${f.fg} text on its rendered background is at best ${f.bestRatio.toFixed(2)}:1 (measured from pixels, every background pixel behind the text fails), needs ${f.threshold}:1`}}async function rv(d,f,h,m){let p=f.filter(D=>D.wcag!=="1.4.3"||!D.selector?false:D.source==="axe-core"?aL.has(h.get(D.id)??""):D.type==="contrast_insufficient"&&/gradient or image|gradient-clipped/.test(D.reviewReason??""));if(p.length===0)return [];let b=D=>/gradient-clipped/.test(D.reviewReason??""),A=[...await Ku(d,p.filter(D=>!b(D)).map(D=>D.selector)),...await cL(d,p.filter(b).map(D=>D.selector))];if(m)for(let D of A)m.set(D.selector,D);globalThis.process?.env?.WA_DEBUG_PIXELS&&console.error(`pixel judge: ${p.length} candidates, ${A.length} measured, ${A.filter(D=>D.fail).length} fail`);let x=new Map(A.filter(D=>D.fail).map(D=>[D.selector,D])),T=[],k=new Set;for(let D of p){let w=x.get(D.selector);!w||k.has(D.selector)||(k.add(D.selector),T.push(dL(D,w)));}return T}function fL(d){d=d.replace("#",""),d.length===3&&(d=d[0]+d[0]+d[1]+d[1]+d[2]+d[2]);let f=parseInt(d,16);return [f>>16&255,f>>8&255,f&255]}function pL(d,f,h){return "#"+[d,f,h].map(m=>Math.round(m).toString(16).padStart(2,"0")).join("")}function Zu(d){let f=d/255;return f<=.03928?f/12.92:Math.pow((f+.055)/1.055,2.4)}function ia(d,f,h){return .2126*Zu(d)+.7152*Zu(f)+.0722*Zu(h)}function Qu(d,f){let h=Math.max(d,f),m=Math.min(d,f);return (h+.05)/(m+.05)}function en(d){if(d.startsWith("#"))return fL(d);let f=d.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);return f?[parseInt(f[1]),parseInt(f[2]),parseInt(f[3])]:null}function Kt(d,f){let h=en(d),m=en(f);return !h||!m?0:Qu(ia(...h),ia(...m))}function oa(d,f,h=4.5){let m=en(d),p=en(f);if(!m||!p)return null;let b=ia(...p),A=Qu(ia(...m),b);if(A>=h)return null;let T=ia(...m)>b,k=0,D=1,w=m;for(let L=0;L<20;L++){let I=(k+D)/2,N=T?[m[0]*(1-I),m[1]*(1-I),m[2]*(1-I)]:[m[0]+(255-m[0])*I,m[1]+(255-m[1])*I,m[2]+(255-m[2])*I],q=ia(N[0],N[1],N[2]);Qu(q,b)>=h?(w=N,D=I):k=I;}let C=pL(w[0],w[1],w[2]),E=Kt(C,f);return {currentColor:d,suggestedColor:C,currentRatio:Math.round(A*100)/100,suggestedRatio:Math.round(E*100)/100,requiredRatio:h,bgColor:f}}var mL=30,hL=10,lv=2e4,gL=30,vL=400*1024,uv="https://openrouter.ai/api/v1",cv="anthropic/claude-haiku-4.5",tc="deepseek/deepseek-v4-flash",nv=400,av=125,ec=160,bL=2e3,hi=new Map;function yL(){hi.clear();}function wL(d){let f=0;for(let h=0;h<d.length;h++)f=(f<<5)-f+d.charCodeAt(h)|0;return Math.abs(f).toString(36)}var rc=d=>d.wcag||d.type,iv=(d,f,h)=>`${d}|${f.selector}|${rc(f)}|${wL(h)}`,nc=()=>!!globalThis.process?.env?.WA_DEBUG_JUDGE;function xL(d){let{selectors:f,maxHtml:h}=d,m={elements:{}},p=[],b=N=>/\(\s*prefers-reduced-motion\s*(:\s*reduce\s*)?\)/i.test(N)&&!/^\s*not\b/i.test(N),A=N=>{let q=N.split(",").map(H=>H.trim()).filter(Boolean);return q.length?q.every(H=>{let $=H.match(/^(-?[\d.]+)(ms|s)$/i);return $?parseFloat($[1])*($[2].toLowerCase()==="s"?1e3:1)<=10:false}):false},x=(N,q,H)=>{if(!(H>8))for(let $ of Array.from(N)){let U=$.media?.mediaText,K=q||typeof U=="string"&&b(U),R=$.style,v=$.selectorText;if(K&&R&&typeof v=="string"){let P=R.getPropertyValue("animation-name").trim(),B=/^none(\s*,\s*none)*$/i.test(P)||A(R.getPropertyValue("animation-duration"))||/^paused/i.test(R.getPropertyValue("animation-play-state").trim()),z=/^none(\s*,\s*none)*$/i.test(R.getPropertyValue("transition-property").trim())||A(R.getPropertyValue("transition-duration"));(B||z)&&p.push({selector:v,anim:B,trans:z});}let _=$.cssRules;_&&_.length&&x(_,K,H+1);let F=$.styleSheet;if(F)try{x(F.cssRules,K||b($.media?.mediaText||""),H+1);}catch{}}};try{for(let N of Array.from(document.styleSheets))try{x(N.cssRules,b(N.media?.mediaText||""),0);}catch{}}catch{}let T=(N,q)=>{try{return N.matches(q)}catch{return false}},k=N=>N.split(",").map(q=>{let H=q.trim().match(/^(-?[\d.]+)(ms|s)$/i);return H?parseFloat(H[1])*(H[2].toLowerCase()==="s"?1e3:1):0}),D=N=>{let q=N.cloneNode(true);q.querySelectorAll("script, style").forEach($=>$.remove());let H=(q.textContent||"").replace(/\s+/g," ").trim();if(!H){for(let $ of Array.from(N.querySelectorAll("img[alt], [aria-label]")))if(H=($.getAttribute("alt")||$.getAttribute("aria-label")||"").trim(),H)break}return H},w=N=>{let q=(N.getAttribute("aria-label")||"").trim();if(q)return q;let $=(N.getAttribute("aria-labelledby")||"").split(/\s+/).filter(Boolean).map(R=>{let v=document.getElementById(R);return v?(v.textContent||"").replace(/\s+/g," ").trim():""}).filter(Boolean).join(" ");if($)return $;let U=D(N);if(U)return U;let K=N instanceof HTMLInputElement&&/^(submit|button|reset|image)$/i.test(N.type)?(N.value||N.alt||"").trim():"";return K||(N.getAttribute("title")||"").trim()},C='a[href], button, input:not([type="hidden"]), select, textarea, summary, [role="button"], [role="link"], [role="menuitem"], [role="tab"], [role="img"], [tabindex]:not([tabindex="-1"])',E=window.scrollX||0,L=window.scrollY||0,I=[];for(let N of f){let q=null;try{q=document.querySelector(N);}catch{}if(!q){m.elements[N]={found:false};continue}let H=I.indexOf(q);H<0&&(H=I.push(q)-1);let $=getComputedStyle(q),U=q.getBoundingClientRect(),K=q.tagName.toLowerCase(),R={found:true,elementKey:H,tag:K,html:(q.outerHTML||"").slice(0,h),rect:{x:U.left+E,y:U.top+L,w:U.width,h:U.height},role:(q.getAttribute("role")||"").toLowerCase(),ariaHidden:q.getAttribute("aria-hidden")==="true"||!!q.closest('[aria-hidden="true"]'),hidden:$.display==="none"||$.visibility==="hidden"||!!q.closest("[hidden]"),cssBackgroundImage:/url\(/i.test($.backgroundImage||""),reducedMotionHandled:false,nearText:"",fg:$.color,bg:$.backgroundColor,fontSize:parseFloat($.fontSize)||0,fontWeight:parseInt($.fontWeight,10)||400};if(K==="img"){let z=q;R.img={src:(z.currentSrc||z.getAttribute("src")||"").slice(0,300),alt:z.getAttribute("alt"),naturalW:z.naturalWidth||0,naturalH:z.naturalHeight||0,attrW:parseInt(z.getAttribute("width")||"0",10)||0,attrH:parseInt(z.getAttribute("height")||"0",10)||0};}if(R.cssBackgroundImage){let z=q.closest(C);z&&(R.control={tag:z.tagName.toLowerCase(),name:w(z).slice(0,120)});}if(!/^(img|video|canvas|iframe|object|embed|svg)$/.test(K)){let z=$.animationName.split(",").some(ie=>ie.trim()&&ie.trim()!=="none")&&k($.animationDuration).some(ie=>ie>10),X=k($.transitionDuration).some(ie=>ie>10)&&$.transitionProperty.trim()!=="none",te=p.filter(ie=>T(q,ie.selector)),ee=!z||te.some(ie=>ie.anim),Z=!X||te.some(ie=>ie.trans);R.reducedMotionHandled=(z||X)&&ee&&Z;}let v=q.closest('a[href], button, [role="button"], [role="link"]');if(v&&v!==q){let z=v.cloneNode(true);z.querySelectorAll("img, svg").forEach(ee=>ee.remove());let X=(z.textContent||"").replace(/\s+/g," ").trim(),te=(v.getAttribute("aria-label")||"").trim();R.parentInteractive={tag:v.tagName.toLowerCase(),text:(X||te).slice(0,120)};}let _=z=>{let X=z.cloneNode(true);return X.querySelectorAll("script, style").forEach(te=>te.remove()),(X.textContent||"").replace(/\s+/g," ").trim()},F=q.matches('a[href], [role="link"]'),P=_(q),B=q.parentElement;if(F&&(B=q.closest("p, li, td, th, dd, dt, figcaption, blockquote")||q.parentElement),B){let z=_(B),X=F&&P?z.indexOf(P):-1,te=X>120?X-120:0;R.nearText=(te?"\u2026":"")+z.slice(te,te+240);}m.elements[N]=R;}return m}function DL(d,f){let h=(d.type||"").toLowerCase(),m=d.wcag||"";return h==="decorative_image_with_title"?"generic":m==="1.1.1"&&(f?.tag==="img"||/alt|image/.test(h))?"alt":m==="1.4.3"||m==="1.4.6"||h==="color-contrast"||h==="contrast_insufficient"||h==="contrast_enhanced"?"contrast":m==="2.2.2"||m==="2.3.3"||/motion|animation|reduced_motion/.test(h)?"motion":"generic"}function ac(d){return !!d&&d.tag!=="img"&&d.cssBackgroundImage&&!d.img}var AL=/\b(needs?|requires?|for)\s+(a\s+)?(human|manual)?\s*review\b|\bhuman review\b|\bmanual review\b|\bincomplete\b/gi;function _L(d){let f=String(d??"").replace(/\s+/g," ").replace(AL,"judged").trim();if(f.length<=ec)return f;let h=f.slice(0,ec-1),m=h.lastIndexOf(" ");return (m>ec/2?h.slice(0,m):h).replace(/[\s,;:–—-]+$/,"")+"\u2026"}function EL(d){let f=String(d??"").replace(/\s+/g," ").trim();if(f=f.replace(/^(an?\s+|the\s+)?(image|picture|photo|photograph|graphic|icon|illustration|screenshot)\s+(of|showing|depicting)(\s+|$)(an?\s+|the\s+)?/i,""),f=f.replace(/^["'“”]+|["'“”]+$/g,"").trim(),f.length>av){f=f.slice(0,av);let h=f.lastIndexOf(" ");h>60&&(f=f.slice(0,h)),f=f.replace(/[\s,;:–—-]+$/,"");}return f&&(f=f[0].toUpperCase()+f.slice(1)),f}function sa(d){let f=d.match(/\d+(\.\d+)?/g);return !f||f.length<3?d:"#"+f.slice(0,3).map(h=>Math.round(Number(h)).toString(16).padStart(2,"0")).join("")}var dv=/^#?([0-9a-f]{6})$/i;function CL(d){let f=String(d??"").trim().match(dv);return f?"#"+f[1].toLowerCase():null}function SL(d){let{confidence:f,reviewReason:h,...m}=d;return {...m,id:d.id.replace("axe-incomplete-","axe-")}}function kL(d){let f=d;if(typeof d=="string"){let p=d.replace(/```json\s*/gi,"").replace(/```/g,"").match(/\[[\s\S]*\]/);if(!p)return null;try{f=JSON.parse(p[0]);}catch{return null}}else d&&typeof d=="object"&&Array.isArray(d.verdicts)&&(f=d.verdicts);if(!Array.isArray(f))return null;let h=[];for(let m of f){if(!m||typeof m!="object")continue;let{id:p,verdict:b,reason:A,fix:x}=m;if(typeof p!="string"||b!=="pass"&&b!=="violation")continue;let T=x&&typeof x=="object"?x:void 0;h.push({id:p,verdict:b,reason:typeof A=="string"?A:void 0,fix:T?{attribute:typeof T.attribute=="string"?T.attribute:void 0,value:typeof T.value=="string"?T.value:void 0}:void 0});}return h}var la=class extends Error{},fv=`You are the final accessibility judge for a WCAG scanner. Automated engines could not decide the findings below. You MUST decide each one: "pass" (not a violation) or "violation". There is no third option \u2014 never answer "unsure", never defer to a human.
385
+ `),{inject:X}=await Promise.resolve().then(()=>(Vr(),bn));try{await X(d,{tool:"detector-helpers",content:z});}catch{await d.evaluate(`(0,eval)(${JSON.stringify(z)})`);}}catch(H){console.warn("[webability] helper injection failed:",H.message),(h??[]).push("color:kernel-injection-failed");}let A=[],x="";try{let{applyPlatformTemplates:H}=await Promise.resolve().then(()=>(Bu(),qu)),$=b;x=$.filter(U=>U!=="universal"&&U!=="universal_iframe").join(", "),A=await H(d,$);}catch{}let{guardDetectorState:T}=await Promise.resolve().then(()=>(Vr(),bn)),k=globalThis.process?.env?.WA_STRICT_STATE==="1",D={strict:k,bugs:m?.internalBugs},w=await T(d,"detectors:parallel",h??[],()=>Promise.allSettled((m?.experimental?[...Vg,...XM]:Vg).map(async H=>{try{let $=await H.detect(d);return H.cap&&$.length>=H.cap&&p.push({detector:H.name,cap:H.cap}),$}catch($){return $g(m?.internalBugs,H.name,$),[]}})),D),C=[];m?.skipFocusMutating&&(h??[]).push("focus:mutating-detectors-skipped (live-tab scan; focus visibility and focus obscured were not checked)");let E=[...m?.skipFocusMutating?[]:[Jh,Xh],...m?.extraSerialDetectors??[]];for(let H of E){let $=[];try{$=await T(d,H.name,h??[],()=>H.detect(d).catch(U=>($g(m?.internalBugs,H.name,U),[])),D);}catch(U){if(k)throw U}try{H.cap&&$.length>=H.cap&&p.push({detector:H.name,cap:H.cap}),C=C.concat($);}catch{}}let L=[...w.flatMap(H=>H.status==="fulfilled"?H.value:[]),...C];if(x)for(let H of L)H.needsAI&&(H.context=Lh(H.context,x));let I=[...A,...L],N=YM(I),q=["wp-ada-compliance","webability-widget","webability-a11y","asw-","userway","acsb","audioeye","equallyai"];return N.filter(H=>{let $=H.selector.toLowerCase();return $.trim()?!q.some(U=>$.includes(U)):false})}async function JM(d){try{return await d.evaluate(()=>{let f=getComputedStyle(document.documentElement),h={};for(let T of f)T.startsWith("--")&&/color|bg|background|text|primary|secondary|accent/i.test(T)&&(h[T]=f.getPropertyValue(T).trim());let m={},p={},b=document.querySelectorAll("body *:not(script):not(style):not(noscript)"),A=Math.min(b.length,500);for(let T=0;T<A;T++){let k=getComputedStyle(b[T]);if(k.display==="none"||k.visibility==="hidden")continue;let D=k.backgroundColor,w=k.color;D&&D!=="rgba(0, 0, 0, 0)"&&(m[D]=(m[D]||0)+1),w&&(p[w]=(p[w]||0)+1);}let x=T=>Object.entries(T).sort((k,D)=>D[1]-k[1]).slice(0,8).map(([k,D])=>({color:k,count:D}));return {cssVars:h,topBgColors:x(m),topTextColors:x(p)}})}catch{return {cssVars:{},topBgColors:[],topTextColors:[]}}}function YM(d){let f=new Set;return d.filter(h=>{let m=`${h.selector}::${h.issueType}`;return f.has(m)?false:(f.add(m),true)})}var jg="1.17.0";var $u=["wcag2a","wcag2aa","wcag21aa","wcag22aa"];function ju(d){return d.includes("wcag21aa")||d.includes("wcag22aa")||d.includes("wcag134")?{"css-orientation-lock":{enabled:true}}:{}}function zg(d,f){return f==="AAA"&&!d.includes("wcag2aaa")?[...d,"wcag2aaa"]:d}var Zo={"1.1.1":"A","1.2.1":"A","1.2.2":"A","1.2.3":"A","1.3.1":"A","1.3.2":"A","1.3.3":"A","1.4.1":"A","1.4.2":"A","2.1.1":"A","2.1.2":"A","2.1.4":"A","2.2.1":"A","2.2.2":"A","2.3.1":"A","2.4.1":"A","2.4.2":"A","2.4.3":"A","2.4.4":"A","2.5.1":"A","2.5.2":"A","2.5.3":"A","2.5.4":"A","3.1.1":"A","3.2.1":"A","3.2.2":"A","3.2.6":"A","3.3.1":"A","3.3.2":"A","3.3.7":"A","4.1.2":"A","1.2.4":"AA","1.2.5":"AA","1.3.4":"AA","1.3.5":"AA","1.4.3":"AA","1.4.4":"AA","1.4.5":"AA","1.4.10":"AA","1.4.11":"AA","1.4.12":"AA","1.4.13":"AA","2.4.5":"AA","2.4.6":"AA","2.4.7":"AA","2.4.11":"AA","2.5.7":"AA","2.5.8":"AA","3.1.2":"AA","3.2.3":"AA","3.2.4":"AA","3.3.3":"AA","3.3.4":"AA","3.3.8":"AA","4.1.3":"AA","1.2.6":"AAA","1.2.7":"AAA","1.2.8":"AAA","1.2.9":"AAA","1.3.6":"AAA","1.4.6":"AAA","1.4.7":"AAA","1.4.8":"AAA","1.4.9":"AAA","2.1.3":"AAA","2.2.3":"AAA","2.2.4":"AAA","2.2.5":"AAA","2.2.6":"AAA","2.3.2":"AAA","2.3.3":"AAA","2.4.8":"AAA","2.4.9":"AAA","2.4.10":"AAA","2.4.12":"AAA","2.4.13":"AAA","2.5.5":"AAA","2.5.6":"AAA","3.1.3":"AAA","3.1.4":"AAA","3.1.5":"AAA","3.1.6":"AAA","3.2.5":"AAA","3.3.5":"AAA","3.3.6":"AAA","3.3.9":"AAA"};function Gg(d){return Zo[d]}var di={A:1,AA:2,AAA:3};function zu(d){let f=String(d.wcag||"").split(/[,\s]+/).filter(m=>/^\d+\.\d+\.\d+$/.test(m));if(f.length===0)return d.level??"AA";let h;for(let m of f){let p=Gg(m);p&&(!h||di[p]<di[h])&&(h=p);}return h}function Ln(d,f="AA"){let h=di[f]??di.AA;return d.filter(m=>{let p=zu(m);return !!p&&di[p]<=h})}var KM=new Set(["new_window_link","external_link_warning","download_link_warning"]);function Ug(d){let f=KM.has(d.issueType)?"minor":d.needsAI?"serious":"moderate",h=d.attribute==="style",m=d.attribute.startsWith("data-"),p=h&&d.fixValue?ZM(d.fixValue):d.fixValue;return {id:`wa-${d.issueType}-${fi(d.selector)}`,source:"webability",type:d.issueType,wcag:d.wcag,level:zu({wcag:d.wcag})??"AA",impact:f,message:QM(d,p,m),selector:d.selector,html:d.outerHtml,...d.needsReview?{confidence:"needs_review"}:{},...d.reviewReason?{reviewReason:d.reviewReason}:{},fix:{attribute:d.attribute,currentValue:d.currentValue,suggestedValue:p,needsManualReview:d.needsAI||h||m||!!d.needsReview||!!d.manualFix}}}function ZM(d){let f=d.trim();if(!f)return "";let h=f.endsWith(";"),p=f.split(";").map(b=>{let x=b.toLowerCase().lastIndexOf("!important");return x===-1?b.trim():b.slice(0,x).trim()}).filter(b=>b.length>0);return p.length===0?"":p.join(";")+(h?";":"")}function QM(d,f,h){if(d.message)return d.message;let m=d.issueType.replace(/_/g," "),p=f??d.fixValue;return h?p?`${m}: ${p}`:d.currentValue?`${m}: ${d.currentValue}`:d.context?`${m}: ${d.context}`:m:p?`${m}: set ${d.attribute}="${p}"`:d.currentValue?`${m}: ${d.attribute} is "${d.currentValue}"`:`${m}: missing ${d.attribute}`}function aa(d){return Array.isArray(d)?d.flat(1/0).filter(h=>typeof h=="string").join(" >>> "):typeof d=="string"?d:""}function fi(d){let f=0;for(let h=0;h<d.length;h++)f=(f<<5)-f+d.charCodeAt(h)|0;return Math.abs(f).toString(36)}function Gu(d){return d==="critical"||d==="serious"||d==="moderate"||d==="minor"?d:"moderate"}function Uu(d,f=[]){return {total:d.length,critical:d.filter(h=>h.impact==="critical").length,serious:d.filter(h=>h.impact==="serious").length,moderate:d.filter(h=>h.impact==="moderate").length,minor:d.filter(h=>h.impact==="minor").length,incomplete:0}}function Qo(d){let f=/^wcag(\d)(\d)(\d{1,2})$/.exec(d);return f?`${f[1]}.${f[2]}.${f[3]}`:""}function Wu(d){for(let f of d){let h=Qo(f);if(h)return h}return ""}function Xu(d){return d.includes("wcag2aaa")?"AAA":d.includes("wcag2aa")||d.includes("wcag21aa")||d.includes("wcag22aa")?"AA":"A"}async function Ju(d,f){try{let{AxeBuilder:h}=await import('@axe-core/playwright'),m=typeof d.mainFrame=="function"?d:d.axePage?.()??d;return await new h({page:m}).options({rules:ju(f)}).withTags(f).analyze()}catch{return eL(d,f)}}async function eL(d,f){let h=await Promise.resolve().then(()=>Xo(mi())),m=h.source??h.default?.source;if(!m)throw new Error("axe-core source unavailable");try{await d.evaluate(m);}catch{let{inject:b}=await Promise.resolve().then(()=>(Vr(),bn));await b(d,{tool:"axe",content:m});}return await d.evaluate(({wcagTags:b,rules:A})=>new Promise((x,T)=>{let k=window;if(!k.axe)return T(new Error("axe-core not loaded"));k.axe.run(document,{runOnly:{type:"tag",values:b},rules:A,resultTypes:["violations","incomplete"]}).then(x).catch(T);}),{wcagTags:f,rules:ju(f)})}function Yu(d){let f=[],h=[];for(let m of d)m.confidence==="needs_review"||rL(m)?h.push(m):f.push(tL(m));return {verdicts:f,undecided:h}}function tL(d){if(d.confidence===void 0&&d.reviewReason===void 0)return d;let{confidence:f,reviewReason:h,...m}=d;return m}function rL(d){let f=(d.type||"").toLowerCase(),h=d.wcag||"",m=d.html||"",p=(d.message||"").toLowerCase();if((f==="contrast_insufficient"||f==="color-contrast"||h==="1.4.3"||h==="1.4.11")&&nL(m))return "background uses gradient or image";if(f==="image_of_text"||h==="1.4.5"){let b=Xg(m,"src").toLowerCase();b.startsWith("data:")&&(b=b.split(",")[0]);let A=Xg(m,"alt").toLowerCase();if(/\b(logo|brand|wordmark|hero|banner|footer|marketing|promo|cover)\b/.test(b))return "brand imagery";if(A.length>0&&/\b(logo|brand|product screenshot|dashboard)\b/.test(A))return "branded imagery"}return (f==="inconsistent_navigation"||p.includes("inconsistent navigation"))&&(/<footer/i.test(m)||/<aside/i.test(m))?"footer/aside nav":""}function nL(d){return /background(-image)?\s*:\s*(?:linear-gradient|radial-gradient|conic-gradient|url\()/i.test(d)}function Xg(d,f){let h=new RegExp(`\\b${f}\\s*=\\s*"([^"]*)"`,"i"),m=d.match(h);return m?m[1]:""}Vr();var Jg=60,Yg=3,Kg=120,Zg=1200,Qg=300,ev=2e5,tv=8e3,aL=new Set(["bgImage","bgGradient","bgOverlap","elmPartiallyObscured","elmPartiallyObscuring"]),iL="*,*::before,*::after{color:transparent!important;-webkit-text-fill-color:transparent!important;text-shadow:none!important;text-decoration-color:transparent!important;caret-color:transparent!important}";function oL(d){let{selectors:f,maxBoxes:h,maxW:m,maxH:p,maxArea:b}=d,A=document.documentElement.scrollWidth,x=document.documentElement.scrollHeight,T=document.createElement("canvas");T.width=T.height=1;let k=T.getContext("2d",{willReadFrequently:true}),D=N=>{try{k.clearRect(0,0,1,1),k.fillStyle="#000",k.fillStyle=N,k.fillRect(0,0,1,1);let q=k.getImageData(0,0,1,1).data;return [q[0],q[1],q[2],q[3]]}catch{return null}},w={},C=document.querySelectorAll("video,canvas,iframe,embed,object");if(C.length>200){for(let N of f)w[N]=null;return w}let E=Array.from(C).map(N=>N.getBoundingClientRect()),L=window.scrollX,I=window.scrollY;for(let N of f){w[N]=null;let q=null;try{q=document.querySelector(N);}catch{continue}if(!q)continue;let H=getComputedStyle(q);if(H.visibility!=="visible"||H.display==="none"||H.webkitBackgroundClip==="text"||H.backgroundClip==="text")continue;let $=false,U=0;for(let Z=q;Z;Z=Z.parentElement){if(++U>64){$=true;break}let ie=getComputedStyle(Z);parseFloat(ie.opacity)<1&&($=true),(ie.mixBlendMode!=="normal"||ie.filter!=="none")&&($=true);}if($)continue;let K=D(H.color);if(!K||K[3]<255)continue;let R=parseFloat(H.fontSize),v=parseInt(H.fontWeight,10)>=700,_=R>=24||v&&R>=18.66,F=[],P=q.getBoundingClientRect();if(P.height>p*h||P.width>m*2)continue;let B=document.createTreeWalker(q,NodeFilter.SHOW_TEXT),z,X=0,te=false;for(;!te&&(z=B.nextNode());){if(++X>50){te=true;break}if(z.parentElement!==q)continue;let Z=z.textContent||"";if(Z.length>2e3){te=true;break}if(!Z.trim())continue;let ie=document.createRange();ie.selectNodeContents(z);let be=ie.getClientRects();if(be.length>h){te=true;break}for(let de=0;de<be.length;de++){let ke=be[de];if(!(ke.width<2||ke.height<2)&&(F.push({x:Math.round(ke.left+L),y:Math.round(ke.top+I),w:Math.max(1,Math.round(ke.width)),h:Math.max(1,Math.round(ke.height))}),F.length>h)){te=true;break}}}te||F.length===0||F.length>h||F.some(Z=>Z.w>m||Z.h>p||Z.w*Z.h>b||Z.x<0||Z.y<0||Z.x+Z.w>A||Z.y+Z.h>x)||F.some(Z=>E.some(ie=>Z.x<ie.right+L&&Z.x+Z.w>ie.left+L&&Z.y<ie.bottom+I&&Z.y+Z.h>ie.top+I))||(w[N]={fg:`rgb(${K[0]},${K[1]},${K[2]})`,threshold:_?3:4.5,boxes:F});}return w}async function sL(d){let{b64:f,fg:h}=d,m=atob(f),p=new Uint8Array(m.length);for(let $=0;$<m.length;$++)p[$]=m.charCodeAt($);let b=await createImageBitmap(new Blob([p],{type:"image/png"})),A=document.createElement("canvas");A.width=b.width,A.height=b.height;let x=A.getContext("2d",{willReadFrequently:true});x.drawImage(b,0,0);let T=x.getImageData(0,0,A.width,A.height).data,k=$=>{let U=$/255;return U<=.03928?U/12.92:Math.pow((U+.055)/1.055,2.4)},D=($,U,K)=>.2126*k($)+.7152*k(U)+.0722*k(K),w=h.match(/\d+/g).map(Number),C=D(w[0],w[1],w[2]),E=Math.max(1,Math.floor(Math.sqrt(A.width*A.height/1500))),L=0,I=1/0,N="",q="",H=0;for(let $=0;$<A.height;$+=E)for(let U=0;U<A.width;U+=E){let K=($*A.width+U)*4;if(T[K+3]<255)continue;let R=D(T[K],T[K+1],T[K+2]),v=Math.max(C,R),_=Math.min(C,R),F=(v+.05)/(_+.05);F>L&&(L=F,q=`rgb(${T[K]},${T[K+1]},${T[K+2]})`),F<I&&(I=F,N=`rgb(${T[K]},${T[K+1]},${T[K+2]})`),H++;}return H===0?null:{best:L,worst:I,worstBg:N,bestBg:q}}var es=class extends Error{};function br(d,f){let h=f-Date.now();if(h<=0)return Promise.reject(new es("pixel pass deadline"));let m,p=new Promise((b,A)=>{m=setTimeout(()=>A(new es("pixel pass deadline")),h);});return Promise.race([d,p]).finally(()=>clearTimeout(m))}async function Ku(d,f){let h=d.screenshot;if(typeof h!="function"||f.length===0)return [];let m=Array.from(new Set(f)).slice(0,Jg),p=[],b=false,A=Date.now()+tv;try{await br(d.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),A);let x=await br(d.evaluate(oL,{selectors:m,maxBoxes:Yg,maxW:Zg,maxH:Qg,maxArea:ev}),A);await br(Ko(d,{tool:"contrast-pixels",css:iL}),A),b=!0;let T=0;for(let k of m){let D=x[k];if(!D)continue;if(Date.now()>A||T+D.boxes.length>Kg)break;let w=0,C=1/0,E="",L="",I=!0;for(let N of D.boxes){T++;let q=await br(h.call(d,{clip:{x:N.x,y:N.y,width:N.w,height:N.h},fullPage:!0,type:"png",animations:"disabled"}),A),H=globalThis.Buffer,$=H?H.from(q).toString("base64"):"",U=await br(d.evaluate(sL,{b64:$,fg:D.fg}),A);if(!U){I=!1;break}U.best>w&&(w=U.best,L=U.bestBg),U.worst<C&&(C=U.worst,E=U.worstBg);}I&&p.push({selector:k,fail:w<D.threshold*.97,bestRatio:w,worstRatio:C,...E?{worstBg:E}:{},...L?{bestBg:L}:{},threshold:D.threshold,fg:D.fg});}}catch(x){globalThis.process?.env?.WA_DEBUG_PIXELS&&console.error("pixel judge failed",x);}finally{if(b)try{await Promise.race([d.evaluate(()=>document.querySelectorAll('style[data-wa-injected^="contrast-pixels:"]').forEach(x=>x.remove())),new Promise(x=>setTimeout(x,1e3))]);}catch{}}return p}function lL(d){let{selectors:f,maxBoxes:h,maxW:m,maxH:p,maxArea:b}=d,A=document.documentElement.scrollWidth,x=document.documentElement.scrollHeight,T=window.scrollX,k=window.scrollY,D={};for(let w of f){D[w]=null;let C=null;try{C=document.querySelector(w);}catch{continue}if(!C)continue;let E=getComputedStyle(C);if(E.visibility!=="visible"||E.display==="none"||!(E.webkitBackgroundClip==="text"||E.backgroundClip==="text"))continue;let L=false,I=0;for(let _=C;_;_=_.parentElement){if(++I>64){L=true;break}let F=getComputedStyle(_);(parseFloat(F.opacity)<1||F.mixBlendMode!=="normal"||F.filter!=="none")&&(L=true);}if(L)continue;let N=parseFloat(E.fontSize),q=parseInt(E.fontWeight,10)>=700,H=N>=24||q&&N>=18.66,$=[],U=document.createTreeWalker(C,NodeFilter.SHOW_TEXT),K,R=0,v=false;for(;!v&&(K=U.nextNode());){if(++R>50){v=true;break}if(!(K.textContent||"").trim())continue;let _=document.createRange();_.selectNodeContents(K);let F=_.getClientRects();for(let P=0;P<F.length;P++){let B=F[P];if(!(B.width<2||B.height<2)&&($.push({x:Math.round(B.left+T),y:Math.round(B.top+k),w:Math.max(1,Math.round(B.width)),h:Math.max(1,Math.round(B.height))}),$.length>h)){v=true;break}}}v||$.length===0||$.some(_=>_.w>m||_.h>p||_.w*_.h>b||_.x<0||_.y<0||_.x+_.w>A||_.y+_.h>x)||(D[w]={threshold:H?3:4.5,boxes:$});}return D}async function uL(d){let f=async C=>{let E=atob(C),L=new Uint8Array(E.length);for(let H=0;H<E.length;H++)L[H]=E.charCodeAt(H);let I=await createImageBitmap(new Blob([L],{type:"image/png"})),N=document.createElement("canvas");N.width=I.width,N.height=I.height;let q=N.getContext("2d",{willReadFrequently:true});return q.drawImage(I,0,0),{w:N.width,h:N.height,d:q.getImageData(0,0,N.width,N.height).data}},h=await f(d.painted),m=await f(d.backdrop);if(h.w!==m.w||h.h!==m.h)return null;let p=C=>{let E=C/255;return E<=.03928?E/12.92:Math.pow((E+.055)/1.055,2.4)},b=(C,E,L)=>.2126*p(C)+.7152*p(E)+.0722*p(L),A=h.w,x=h.h,T=new Uint8Array(A*x);for(let C=0;C<A*x;C++){let E=C*4;T[C]=Math.abs(h.d[E]-m.d[E])+Math.abs(h.d[E+1]-m.d[E+1])+Math.abs(h.d[E+2]-m.d[E+2])>48?1:0;}let k=2,D=[];for(let C=k;C<x-k;C++)for(let E=k;E<A-k;E++){let L=C*A+E;if(!T[L])continue;let I=true;for(let $=-k;$<=k&&I;$++)for(let U=-k;U<=k;U++)if(!T[L+$*A+U]){I=false;break}if(!I)continue;let N=L*4,q=b(h.d[N],h.d[N+1],h.d[N+2]),H=b(m.d[N],m.d[N+1],m.d[N+2]);D.push({ratio:(Math.max(q,H)+.05)/(Math.min(q,H)+.05),fg:`rgb(${h.d[N]},${h.d[N+1]},${h.d[N+2]})`,bg:`rgb(${m.d[N]},${m.d[N+1]},${m.d[N+2]})`});}if(D.length<40)return null;D.sort((C,E)=>C.ratio-E.ratio);let w=D[Math.floor(D.length*.02)];return {worst:w.ratio,best:D[D.length-1].ratio,worstFg:w.fg,worstBg:w.bg,core:D.length}}async function cL(d,f){let h=d.screenshot;if(typeof h!="function"||f.length===0)return [];let m=Array.from(new Set(f)).slice(0,Jg),p=[],b=false,A=Date.now()+tv;try{await br(d.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),A);let x=await br(d.evaluate(lL,{selectors:m,maxBoxes:Yg,maxW:Zg,maxH:Qg,maxArea:ev}),A);await br(Ko(d,{tool:"contrast-gradient-text",css:"[data-wa-gt]{background-image:none!important;background-color:transparent!important}"}),A),b=!0;let T=0;for(let k of m){let D=x[k];if(!D)continue;if(Date.now()>A||T+D.boxes.length*2>Kg)break;let w=1/0,C=0,E="",L="",I=!0,N=globalThis.Buffer;for(let q of D.boxes){T+=2;let H={x:q.x,y:q.y,width:q.w,height:q.h},$=await br(h.call(d,{clip:H,fullPage:!0,type:"png",animations:"disabled"}),A);await br(d.evaluate(R=>{document.querySelector(R)?.setAttribute("data-wa-gt","1");},k),A);let U;try{U=await br(h.call(d,{clip:H,fullPage:!0,type:"png",animations:"disabled"}),A);}finally{await d.evaluate(R=>{document.querySelector(R)?.removeAttribute("data-wa-gt");},k).catch(()=>{});}let K=await br(d.evaluate(uL,{painted:N?N.from($).toString("base64"):"",backdrop:N?N.from(U).toString("base64"):""}),A);if(!K){I=!1;break}K.worst<w&&(w=K.worst,E=K.worstFg,L=K.worstBg),K.best>C&&(C=K.best);}!I||!isFinite(w)||p.push({selector:k,fail:w<D.threshold*.97,bestRatio:C,worstRatio:w,worstBg:L,threshold:D.threshold,fg:E,gradientText:!0});}}catch(x){globalThis.process?.env?.WA_DEBUG_PIXELS&&console.error("gradient text judge failed",x);}finally{if(b)try{await Promise.race([d.evaluate(()=>{document.querySelectorAll('style[data-wa-injected^="contrast-gradient-text:"]').forEach(x=>x.remove()),document.querySelectorAll("[data-wa-gt]").forEach(x=>x.removeAttribute("data-wa-gt"));}),new Promise(x=>setTimeout(x,1e3))]);}catch{}}return p}function dL(d,f){let{confidence:h,reviewReason:m,...p}=d;return {...p,id:d.id.replace("axe-incomplete-","axe-"),impact:"serious",message:f.gradientText?`contrast: gradient text \u2014 worst stop ${f.fg} is ${f.worstRatio.toFixed(2)}:1 on ${f.worstBg??"its backdrop"}, needs ${f.threshold}:1 (measured from the painted glyph pixels)`:`contrast: ${f.fg} text on its rendered background is at best ${f.bestRatio.toFixed(2)}:1 (measured from pixels, every background pixel behind the text fails), needs ${f.threshold}:1`}}async function rv(d,f,h,m){let p=f.filter(D=>D.wcag!=="1.4.3"||!D.selector?false:D.source==="axe-core"?aL.has(h.get(D.id)??""):D.type==="contrast_insufficient"&&/gradient or image|gradient-clipped/.test(D.reviewReason??""));if(p.length===0)return [];let b=D=>/gradient-clipped/.test(D.reviewReason??""),A=[...await Ku(d,p.filter(D=>!b(D)).map(D=>D.selector)),...await cL(d,p.filter(b).map(D=>D.selector))];if(m)for(let D of A)m.set(D.selector,D);globalThis.process?.env?.WA_DEBUG_PIXELS&&console.error(`pixel judge: ${p.length} candidates, ${A.length} measured, ${A.filter(D=>D.fail).length} fail`);let x=new Map(A.filter(D=>D.fail).map(D=>[D.selector,D])),T=[],k=new Set;for(let D of p){let w=x.get(D.selector);!w||k.has(D.selector)||(k.add(D.selector),T.push(dL(D,w)));}return T}function fL(d){d=d.replace("#",""),d.length===3&&(d=d[0]+d[0]+d[1]+d[1]+d[2]+d[2]);let f=parseInt(d,16);return [f>>16&255,f>>8&255,f&255]}function pL(d,f,h){return "#"+[d,f,h].map(m=>Math.round(m).toString(16).padStart(2,"0")).join("")}function Zu(d){let f=d/255;return f<=.03928?f/12.92:Math.pow((f+.055)/1.055,2.4)}function ia(d,f,h){return .2126*Zu(d)+.7152*Zu(f)+.0722*Zu(h)}function Qu(d,f){let h=Math.max(d,f),m=Math.min(d,f);return (h+.05)/(m+.05)}function en(d){if(d.startsWith("#"))return fL(d);let f=d.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);return f?[parseInt(f[1]),parseInt(f[2]),parseInt(f[3])]:null}function Kt(d,f){let h=en(d),m=en(f);return !h||!m?0:Qu(ia(...h),ia(...m))}function oa(d,f,h=4.5){let m=en(d),p=en(f);if(!m||!p)return null;let b=ia(...p),A=Qu(ia(...m),b);if(A>=h)return null;let T=ia(...m)>b,k=0,D=1,w=m;for(let L=0;L<20;L++){let I=(k+D)/2,N=T?[m[0]*(1-I),m[1]*(1-I),m[2]*(1-I)]:[m[0]+(255-m[0])*I,m[1]+(255-m[1])*I,m[2]+(255-m[2])*I],q=ia(N[0],N[1],N[2]);Qu(q,b)>=h?(w=N,D=I):k=I;}let C=pL(w[0],w[1],w[2]),E=Kt(C,f);return {currentColor:d,suggestedColor:C,currentRatio:Math.round(A*100)/100,suggestedRatio:Math.round(E*100)/100,requiredRatio:h,bgColor:f}}var mL=30,hL=10,lv=2e4,gL=30,vL=400*1024,uv="https://openrouter.ai/api/v1",cv="anthropic/claude-haiku-4.5",tc="deepseek/deepseek-v4-flash",nv=400,av=125,ec=160,bL=2e3,hi=new Map;function yL(){hi.clear();}function wL(d){let f=0;for(let h=0;h<d.length;h++)f=(f<<5)-f+d.charCodeAt(h)|0;return Math.abs(f).toString(36)}var rc=d=>d.wcag||d.type,iv=(d,f,h)=>`${d}|${f.selector}|${rc(f)}|${wL(h)}`,nc=()=>!!globalThis.process?.env?.WA_DEBUG_JUDGE;function xL(d){let{selectors:f,maxHtml:h}=d,m={elements:{}},p=[],b=N=>/\(\s*prefers-reduced-motion\s*(:\s*reduce\s*)?\)/i.test(N)&&!/^\s*not\b/i.test(N),A=N=>{let q=N.split(",").map(H=>H.trim()).filter(Boolean);return q.length?q.every(H=>{let $=H.match(/^(-?[\d.]+)(ms|s)$/i);return $?parseFloat($[1])*($[2].toLowerCase()==="s"?1e3:1)<=10:false}):false},x=(N,q,H)=>{if(!(H>8))for(let $ of Array.from(N)){let U=$.media?.mediaText,K=q||typeof U=="string"&&b(U),R=$.style,v=$.selectorText;if(K&&R&&typeof v=="string"){let P=R.getPropertyValue("animation-name").trim(),B=/^none(\s*,\s*none)*$/i.test(P)||A(R.getPropertyValue("animation-duration"))||/^paused/i.test(R.getPropertyValue("animation-play-state").trim()),z=/^none(\s*,\s*none)*$/i.test(R.getPropertyValue("transition-property").trim())||A(R.getPropertyValue("transition-duration"));(B||z)&&p.push({selector:v,anim:B,trans:z});}let _=$.cssRules;_&&_.length&&x(_,K,H+1);let F=$.styleSheet;if(F)try{x(F.cssRules,K||b($.media?.mediaText||""),H+1);}catch{}}};try{for(let N of Array.from(document.styleSheets))try{x(N.cssRules,b(N.media?.mediaText||""),0);}catch{}}catch{}let T=(N,q)=>{try{return N.matches(q)}catch{return false}},k=N=>N.split(",").map(q=>{let H=q.trim().match(/^(-?[\d.]+)(ms|s)$/i);return H?parseFloat(H[1])*(H[2].toLowerCase()==="s"?1e3:1):0}),D=N=>{let q=N.cloneNode(true);q.querySelectorAll("script, style").forEach($=>$.remove());let H=(q.textContent||"").replace(/\s+/g," ").trim();if(!H){for(let $ of Array.from(N.querySelectorAll("img[alt], [aria-label]")))if(H=($.getAttribute("alt")||$.getAttribute("aria-label")||"").trim(),H)break}return H},w=N=>{let q=(N.getAttribute("aria-label")||"").trim();if(q)return q;let $=(N.getAttribute("aria-labelledby")||"").split(/\s+/).filter(Boolean).map(R=>{let v=document.getElementById(R);return v?(v.textContent||"").replace(/\s+/g," ").trim():""}).filter(Boolean).join(" ");if($)return $;let U=D(N);if(U)return U;let K=N instanceof HTMLInputElement&&/^(submit|button|reset|image)$/i.test(N.type)?(N.value||N.alt||"").trim():"";return K||(N.getAttribute("title")||"").trim()},C='a[href], button, input:not([type="hidden"]), select, textarea, summary, [role="button"], [role="link"], [role="menuitem"], [role="tab"], [role="img"], [tabindex]:not([tabindex="-1"])',E=window.scrollX||0,L=window.scrollY||0,I=[];for(let N of f){let q=null;try{q=document.querySelector(N);}catch{}if(!q){m.elements[N]={found:false};continue}let H=I.indexOf(q);H<0&&(H=I.push(q)-1);let $=getComputedStyle(q),U=q.getBoundingClientRect(),K=q.tagName.toLowerCase(),R={found:true,elementKey:H,tag:K,html:(q.outerHTML||"").slice(0,h),rect:{x:U.left+E,y:U.top+L,w:U.width,h:U.height},role:(q.getAttribute("role")||"").toLowerCase(),ariaHidden:q.getAttribute("aria-hidden")==="true"||!!q.closest('[aria-hidden="true"]'),hidden:$.display==="none"||$.visibility==="hidden"||!!q.closest("[hidden]"),cssBackgroundImage:/url\(/i.test($.backgroundImage||""),reducedMotionHandled:false,nearText:"",fg:$.color,bg:$.backgroundColor,fontSize:parseFloat($.fontSize)||0,fontWeight:parseInt($.fontWeight,10)||400};if(K==="img"){let z=q;R.img={src:(z.currentSrc||z.getAttribute("src")||"").slice(0,300),alt:z.getAttribute("alt"),naturalW:z.naturalWidth||0,naturalH:z.naturalHeight||0,attrW:parseInt(z.getAttribute("width")||"0",10)||0,attrH:parseInt(z.getAttribute("height")||"0",10)||0};}if(R.cssBackgroundImage){let z=q.closest(C);z&&(R.control={tag:z.tagName.toLowerCase(),name:w(z).slice(0,120)});}if(!/^(img|video|canvas|iframe|object|embed|svg)$/.test(K)){let z=$.animationName.split(",").some(ie=>ie.trim()&&ie.trim()!=="none")&&k($.animationDuration).some(ie=>ie>10),X=k($.transitionDuration).some(ie=>ie>10)&&$.transitionProperty.trim()!=="none",te=p.filter(ie=>T(q,ie.selector)),ee=!z||te.some(ie=>ie.anim),Z=!X||te.some(ie=>ie.trans);R.reducedMotionHandled=(z||X)&&ee&&Z;}let v=q.closest('a[href], button, [role="button"], [role="link"]');if(v&&v!==q){let z=v.cloneNode(true);z.querySelectorAll("img, svg").forEach(ee=>ee.remove());let X=(z.textContent||"").replace(/\s+/g," ").trim(),te=(v.getAttribute("aria-label")||"").trim();R.parentInteractive={tag:v.tagName.toLowerCase(),text:(X||te).slice(0,120)};}let _=z=>{let X=z.cloneNode(true);return X.querySelectorAll("script, style").forEach(te=>te.remove()),(X.textContent||"").replace(/\s+/g," ").trim()},F=q.matches('a[href], [role="link"]'),P=_(q),B=q.parentElement;if(F&&(B=q.closest("p, li, td, th, dd, dt, figcaption, blockquote")||q.parentElement),B){let z=_(B),X=F&&P?z.indexOf(P):-1,te=X>120?X-120:0;R.nearText=(te?"\u2026":"")+z.slice(te,te+240);}m.elements[N]=R;}return m}function DL(d,f){let h=(d.type||"").toLowerCase(),m=d.wcag||"";return h==="decorative_image_with_title"?"generic":m==="1.1.1"&&(f?.tag==="img"||/alt|image/.test(h))?"alt":m==="1.4.3"||m==="1.4.6"||h==="color-contrast"||h==="contrast_insufficient"||h==="contrast_enhanced"?"contrast":m==="2.2.2"||m==="2.3.3"||/motion|animation|reduced_motion/.test(h)?"motion":"generic"}function ac(d){return !!d&&d.tag!=="img"&&d.cssBackgroundImage&&!d.img}var AL=/\b(needs?|requires?|for)\s+(a\s+)?(human|manual)?\s*review\b|\bhuman review\b|\bmanual review\b|\bincomplete\b/gi;function _L(d){let f=String(d??"").replace(/\s+/g," ").replace(AL,"judged").trim();if(f.length<=ec)return f;let h=f.slice(0,ec-1),m=h.lastIndexOf(" ");return (m>ec/2?h.slice(0,m):h).replace(/[\s,;:–—-]+$/,"")+"\u2026"}function EL(d){let f=String(d??"").replace(/\s+/g," ").trim();if(f=f.replace(/^(an?\s+|the\s+)?(image|picture|photo|photograph|graphic|icon|illustration|screenshot)\s+(of|showing|depicting)(\s+|$)(an?\s+|the\s+)?/i,""),f=f.replace(/^["'“”]+|["'“”]+$/g,"").trim(),f.length>av){f=f.slice(0,av);let h=f.lastIndexOf(" ");h>60&&(f=f.slice(0,h)),f=f.replace(/[\s,;:–—-]+$/,"");}return f&&(f=f[0].toUpperCase()+f.slice(1)),f}function sa(d){let f=d.match(/\d+(\.\d+)?/g);return !f||f.length<3?d:"#"+f.slice(0,3).map(h=>Math.round(Number(h)).toString(16).padStart(2,"0")).join("")}var dv=/^#?([0-9a-f]{6})$/i;function CL(d){let f=String(d??"").trim().match(dv);return f?"#"+f[1].toLowerCase():null}function SL(d){let{confidence:f,reviewReason:h,...m}=d;return {...m,id:d.id.replace("axe-incomplete-","axe-")}}function kL(d){let f=d;if(typeof d=="string"){let p=d.replace(/```json\s*/gi,"").replace(/```/g,"").match(/\[[\s\S]*\]/);if(!p)return null;try{f=JSON.parse(p[0]);}catch{return null}}else d&&typeof d=="object"&&Array.isArray(d.verdicts)&&(f=d.verdicts);if(!Array.isArray(f))return null;let h=[];for(let m of f){if(!m||typeof m!="object")continue;let{id:p,verdict:b,reason:A,fix:x}=m;if(typeof p!="string"||b!=="pass"&&b!=="violation")continue;let T=x&&typeof x=="object"?x:void 0;h.push({id:p,verdict:b,reason:typeof A=="string"?A:void 0,fix:T?{attribute:typeof T.attribute=="string"?T.attribute:void 0,value:typeof T.value=="string"?T.value:void 0}:void 0});}return h}var la=class extends Error{},fv=`You are the final accessibility judge for a WCAG scanner. Automated engines could not decide the findings below. You MUST decide each one: "pass" (not a violation) or "violation". There is no third option \u2014 never answer "unsure", never defer to a human.
386
386
 
387
387
  Rules:
388
388
  - Images (1.1.1): "pass" when the image is decorative, purely presentational, a spacer/tracking pixel, or is named by the text of its enclosing link/button. Otherwise "violation" with fix.attribute="alt" and a concrete alt text written from the image and its context: \u2264125 characters, no "image of"/"picture of" prefix, no file names.