@webability/core 1.17.2 → 1.18.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.cjs CHANGED
@@ -433,7 +433,7 @@ See: https://github.com/dequelabs/axe-core/blob/master/doc/context.md`));}functi
433
433
  `).join(`
434
434
  `);return fe}}},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:tv);});var Rv={};yr(Rv,{dismissModals:()=>Tv});async function Tv(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}}},tP),await new Promise(f=>setTimeout(f,500));}var tP,fc=br(()=>{tP=['[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 as={};yr(as,{focusOnlyObscuredIndexes:()=>iP,resetInteractionState:()=>rP,restoreInteractionState:()=>aP,snapshotInteractionState:()=>nP});async function rP(d){try{await d.evaluate(()=>{try{document.activeElement?.blur?.();}catch{}try{window.scrollTo({left:0,top:0,behavior:"instant"});}catch{}});}catch{}}async function nP(d){try{await d.evaluate(()=>{let f=window;f.__waCallerState={el:document.activeElement,x:window.scrollX,y:window.scrollY};});}catch{}}async function aP(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 oP(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 iP(d,f){let h=f.map(A=>{let S=[...A.any??[],...A.none??[]].flatMap(D=>D.relatedNodes??[]);if(!S.length)return null;let R=S.map(D=>oP(D.target));return R.every(D=>!!D)?R: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 S=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||""))},R={};for(let D of A){let w=null;try{w=document.querySelector(D);}catch{w=null;}if(!w){R[D]=!1;continue}let C=w.closest(x);if(C&&C!==document.body&&C!==document.documentElement){R[D]=!0;continue}if(w===document.activeElement){try{w.blur();}catch{}R[D]=S(w);continue}R[D]=S(w);}return R},{sels:m,own:Zi});}catch{return new Set}let b=new Set;return h.forEach((A,x)=>{A&&A.length&&A.every(S=>p[S]===true)&&b.add(x);}),b}var os=br(()=>{Vr();});var ca={};yr(ca,{dedupeByElementIdentity:()=>dP,deduplicateIssues:()=>sP});function sP(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=lP(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 lP(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 dP(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 _={};for(let L of D){let I=null;try{I=document.querySelector(L);}catch{}if(!I){let q=L.replace(/:(?:focus-visible|focus-within|focus|hover|active)$/,"");if(q!==L)try{I=document.querySelector(q);}catch{}}if(I){let q=I.closest("table");_[L]={el:C.get(I),table:q?C.get(q):-1,doc:I===document.documentElement||I===document.body};}}return _},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:cP.has(D.wcag||"")?`doc::${C}`:`doc::${C}::${D.type}`,owner:true}:w.table>=0&&uP.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),_=b(w),L=C?.owner?0:1,I=_?.owner?0:1;return L-I||(p[D.source]??3)-(p[w.source]??3)}),x=new Map,S=[];for(let D of A){let w=b(D);if(!w){S.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 R=new Set([...x.values(),...S]);return f.filter(D=>R.has(D))}var uP,cP,da=br(()=>{uP=/^missing_table_header$|^td-has-header$|^th-has-data-cells$|^h43|^h63/,cP=new Set(["2.4.1","3.1.1","2.4.2"]);});var Mv={};yr(Mv,{parseGif:()=>Fv,playsOverFiveSeconds:()=>Iv,verifyAnimatedGifs:()=>fP});function Fv(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,S=()=>{for(;h<d.length;){let R=d[h++];if(R===0)return;h+=R;}};for(;h<d.length;){let R=d[h++];if(R===59)break;if(R===33){let D=d[h++];if(D===249)A=(d[h+2]??0)|(d[h+3]??0)<<8,h+=1+(d[h]??4),S();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),S();}else S();}else if(R===44){let D=d[h+8]??0;h+=9,D&128&&(h+=3*(1<<(D&7)+1)),h+=1,S(),p++,b+=A<2?10:A,A=0;}else break}return {frames:p,seconds:b/100,loops:x}}function Iv(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 fP(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+")")(),S={};return await Promise.all(b.map(async R=>{S[R]=null;try{let D=document.querySelector(R),w=D&&(D.currentSrc||D.src);if(!w)return;let C=new AbortController,_=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;S[R]=x(new Uint8Array(await L.arrayBuffer()));}finally{clearTimeout(_);}}catch{}})),S},{sels:m,parserSrc:Fv.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(!Iv(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 Lv=br(()=>{});var pc={};yr(pc,{scopeIssuesToRoot:()=>pP});async function pP(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},S=null;try{S=document.querySelector(b);}catch{return {invalid:!0,matched:!1,within:{}}}if(!S)return {invalid:!1,matched:!1,within:{}};let R={};for(let D of A){let w=x(D);R[D]=w?w===S||S.contains(w):!0;}return {invalid:!1,matched:!0,within:R}},{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 mc=br(()=>{});var Nu=new Set(["adjacent_redundant_link","missing_button_type","decorative_image_with_title","nested_landmark"]),lo={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"},uo={mobile:{width:375,height:667},tablet:{width:768,height:1024},desktop:{width:1280,height:720}};function Bh(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 NI=()=>{let d="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye]",h=[],m=new Set;function p(x){let S=(x.textContent||"").trim().replace(/\s+/g,""),R=x.querySelector("img, svg, picture")!==null,D=x.querySelector("i[class], span[class]")!==null;if(S.length>0&&!R&&!D)return false;if(R){let w=x.querySelectorAll("img"),C="";w.forEach(I=>{C+=(I.getAttribute("alt")||"").trim();});let _=S.replace(/\s+/g,""),L=C.replace(/\s+/g,"");return _===""||_===L}return false}function b(x){let S=x.nextElementSibling;for(;S;){if(isVisible(S))return S;S=S.nextElementSibling;}return null}return document.querySelectorAll("a[href]").forEach(x=>{if(h.length>=50||x.closest(d)||!isVisible(x)||m.has(x))return;let S=x.getAttribute("href");if(!S||S==="#")return;let R=b(x);if(!R||R.tagName!=="A"||R.getAttribute("href")!==S||m.has(R)||x.getAttribute("aria-hidden")==="true"||R.getAttribute("aria-hidden")==="true")return;let w=p(x),C=p(R);if(!w&&!C)return;let _=w?x:R,L=w?R:x;m.add(_),m.add(L);let I=uniqueSel(_),q=_.outerHTML.slice(0,300),B=(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:S,imageLink:true,adjacentLinkText:B,suggestion:'Add aria-hidden="true" and tabindex="-1" to the image-only link'}),needsAI:false,fixValue:"true",outerHtml:q}),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:S}),needsAI:false,fixValue:"-1",outerHtml:q});}),h},Hh={name:"adjacentLinks",cap:50,async detect(d){return d.evaluate(NI)}};var qI=()=>{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 _=getComputedStyle(w);if(_.display==="none"||_.visibility==="hidden"||_.visibility==="collapse")return !0}catch{}w=w.parentElement,C++;}return false}function S(D){let w=D.tagName,C=D.getAttribute("tabindex");if(C!==null){let _=parseInt(C,10);if(!isNaN(_)&&_>=0)return true;if(!isNaN(_)&&_<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(S(D)&&w.push(D),D.querySelectorAll("a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]").forEach(_=>{S(_)&&w.push(_);}),w.length!==0)for(let _ of w){if(b.length>=p)return;let L=uniqueSel(_),I=L+"\0tabindex";if(A.has(I))continue;A.add(I);let q=x(_),B=!q;b.push({selector:L,attribute:"tabindex",currentValue:_.getAttribute("tabindex")||"",issueType:"aria_hidden_focusable",wcag:"4.1.2",context:JSON.stringify({tag:_.tagName.toLowerCase(),parentHidden:D.tagName.toLowerCase(),collapsed:q,suggestion:q?"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",...q?{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.'}:{},...B?{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:(_.outerHTML||"").slice(0,300)});}}),b},Vh={name:"ariaHiddenFocusable",cap:50,async detect(d){return d.evaluate(qI)}};var BI=()=>{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 S of x){if(h.length>=50)break;if(m.has(S)||S.closest(d))continue;let R=S.className&&typeof S.className=="string"?S.className:"",D=S.getAttribute("id")||"";if(!A.test(R)&&!A.test(D)||S.getAttribute("aria-live"))continue;let w=S.getAttribute("role")||"";if(["alert","status","log","timer","marquee"].includes(w)||!b(S))continue;m.add(S);let C=uniqueSel(S),_=A.test(R)?"class":"id",L=_==="class"?R.slice(0,60):D;h.push({selector:C,attribute:"aria-live",currentValue:"",issueType:"aria_live",wcag:"4.1.3",context:_+": "+L+" | pattern: "+A.source,needsAI:false,fixValue:"polite"});}}return h},$h={name:"ariaLive",cap:50,async detect(d){return d.evaluate(BI)}};var HI=()=>{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 S of p){let R=x.getAttribute(S);if(!R||!R.trim())continue;let D=R.trim().split(/\s+/).filter(O=>O.length>0);if(D.length===0||!D.every(O=>!document.getElementById(O)))continue;let C=x.getAttribute("aria-label");if(C&&C.trim())continue;let _=getAccessibleName(x);if(_&&_.trim())continue;let L=uniqueSel(x),I=L+"\0"+S;if(m.has(I))continue;m.add(I);let{nearbyHeading:q,parentTag:B,parentRole:V}=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:S,brokenIds:D,nearbyHeading:q,parentTag:B,parentRole:V,suggestion:`All IDs in ${S}="${R}" are missing from the DOM. Element has no accessible name. Generate an aria-label.`}),needsAI:true,outerHtml:(x.outerHTML||"").slice(0,300)});}}),h},jh={name:"brokenAriaReferences",cap:50,async detect(d){return d.evaluate(HI)}};var VI=()=>{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),S=A||x||"(no label)",R=S.toLowerCase();h.some(w=>R.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: "+S,needsAI:false,fixValue:"button",outerHtml:(b.outerHTML||"").slice(0,300)});}return f},zh={name:"buttonType",cap:50,async detect(d){return d.evaluate(VI)}};var $I=()=>{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,q=m.hasAttribute("controls"),B=m.hasAttribute("loop")||m.loop,V=/mute|unmute|sound|volume|audio|play|pause/i,O=!!m.parentElement?.querySelector('button, [role="button"]')||!!m.getAttribute("id")&&!!document.querySelector('[aria-controls~="'+(m.getAttribute("id")||"").replace(/"/g,"")+'"]');for(let z=m.parentElement?.parentElement||null,W=0;z&&!O&&W<3;z=z.parentElement,W++)O=Array.from(z.querySelectorAll('button, [role="button"]')).some(T=>V.test((T.getAttribute("aria-label")||"")+" "+(T.getAttribute("title")||"")+" "+(T.textContent||"")));if(I&&B&&!q&&!O)continue}let b=m.querySelectorAll("track"),A=false;for(let I of Array.from(b)){let q=(I.getAttribute("kind")||"").toLowerCase();if(q==="captions"||q==="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 S=x.toLowerCase();if(S.startsWith("blob:")||S.startsWith("data:")||S.startsWith("about:")||S.startsWith("javascript:")||S.endsWith(".m3u8")||S.includes(".m3u8?")||S.endsWith(".mpd")||S.includes(".mpd?"))continue;let R=x;try{R=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:""},_=[];_.push("media: "+m.tagName.toLowerCase()),_.push("src: "+R.slice(0,200)),w&&_.push("title: "+w.slice(0,80)),C.nearbyHeading&&_.push("heading: "+C.nearbyHeading),_.push("parent: "+C.parentTag);let L=p;f.push({selector:D,attribute:"data-needs-captions",currentValue:"",issueType:"missing_captions",wcag:"1.2.2",context:_.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:R,outerHtml:(m.outerHTML||"").slice(0,300)});}return f},Gh={name:"captions",cap:20,async detect(d){return d.evaluate($I)}};var jI=()=>{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 S=(A.textContent||"").trim();if(!S)continue;let R=b.get(x);if(R===void 0){R=0;let z=document.createTreeWalker(x,NodeFilter.SHOW_TEXT),W;for(;W=z.nextNode();){let T=W.parentElement;!T||T.closest("a")||T.closest(m)===x&&(typeof isVisible=="function"&&!isVisible(T)||(R+=(W.textContent||"").trim().length));}b.set(x,R);}if(R<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 z=document.createTreeWalker(A,NodeFilter.SHOW_TEXT),W,T=false;for(;W=z.nextNode();){if(!/[\p{L}\p{N}]/u.test(W.textContent||""))continue;T=true;let v=false;for(let E=W.parentElement;E&&E!==A;E=E.parentElement){let F=getComputedStyle(E),P=(F.textDecorationColor||"").replace(/\s/g,"");if((F.textDecorationLine||"").includes("underline")&&P!=="transparent"&&!/^rgba\([^)]*,0(?:\.0+)?\)$/.test(P)){v=true;break}let H=(F.borderBottomColor||"").replace(/\s/g,""),j=H==="transparent"||/^rgba\([^)]*,0(?:\.0+)?\)$/.test(H);if((F.borderBottomStyle||"none")!=="none"&&parseFloat(F.borderBottomWidth||"0")>0&&!j){v=true;break}}if(!v)return false}return T})())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 B=typeof uniqueSel=="function"?uniqueSel(A):"",V=typeof getNearbyContext=="function"?getNearbyContext(A):{parentTag:A.tagName.toLowerCase(),nearbyHeading:""},O=[];O.push("link: "+S.slice(0,40)),O.push("color: "+D.color),O.push("parent-color: "+w.color),V.nearbyHeading&&O.push("heading: "+V.nearbyHeading),O.push("parent: "+V.parentTag),h.push({selector:B,attribute:"style",currentValue:D.textDecoration||"",issueType:"color_only_link",wcag:"1.4.1",context:O.join(" | "),needsAI:false,fixValue:"text-decoration: underline !important;",outerHtml:(A.outerHTML||"").slice(0,300)});}return h},Uh={name:"colorOnly",cap:40,async detect(d){return d.evaluate(jI)}};var zI=()=>{let d=[],f=v=>typeof parseCssColor=="function"?parseCssColor(v):null,h=(v,E,F)=>typeof relLuminance=="function"?relLuminance(v,E,F):0,m=(v,E)=>typeof contrastRatio=="function"?contrastRatio(v,E):1;function p(v){let E=String(v.backgroundImage||"none");if(E==="none")return false;if(/gradient\(/i.test(E))return true;if(!/url\(/i.test(E))return false;let F=String(v.backgroundRepeat||"").toLowerCase(),P=String(v.backgroundSize||"").toLowerCase(),H=F.split(",").map(X=>X.trim()).some(X=>X!==""&&X!=="no-repeat"),j=/cover|contain|100%/.test(P);return H||j}let b=new Map;function A(v){let E=[],F=false;for(let P=v;P&&P.nodeType===1;P=P.parentElement){let H=b.get(P);if(H!==void 0){F=H;break}if(E.push(P),parseFloat(getComputedStyle(P).opacity||"1")<1){F=true;break}}for(let P of E)b.set(P,F);return F}let x=new Map;function S(v){let E=x.get(v);if(E)return E;E=[];let F=Array.from(v.children);for(let P=0;P<F.length;P++){let H=getComputedStyle(F[P]);H.position==="static"||H.display==="none"||H.visibility!=="visible"||parseFloat(H.opacity||"1")<=0||E.push({el:F[P],z:H.zIndex==="auto"?0:parseInt(H.zIndex,10)||0,i:P});}return x.set(v,E),E}function R(v){if(v===document.documentElement)return true;let E=getComputedStyle(v);return !!(E.position==="fixed"||E.position==="sticky"||E.zIndex!=="auto"&&E.position!=="static"||E.zIndex!=="auto"&&v.parentElement&&/flex|grid/.test(getComputedStyle(v.parentElement).display||"")||parseFloat(E.opacity||"1")<1||E.transform&&E.transform!=="none"||E.filter&&E.filter!=="none"||E.isolation==="isolate"||E.mixBlendMode&&E.mixBlendMode!=="normal"||/paint|strict|content/.test(E.contain||""))}function D(v,E,F,P){let H=S(v);if(!H.length||H.length===1&&H[0].el===E)return [];let j=-1/0;for(let te=F;te&&te!==v;te=te.parentElement){let se=getComputedStyle(te);if(se.position==="static")continue;let ue=se.zIndex==="auto"?0:parseInt(se.zIndex,10)||0;ue>j&&(j=ue);}let X=Array.prototype.indexOf.call(v.children,E),Q=[];for(let te of H){if(te.el===E||!(te.z<0?R(v):j>te.z||j===te.z&&te.i<X))continue;let ue=te.el.getBoundingClientRect();ue.left>P.left+1||ue.top>P.top+1||ue.right<P.right-1||ue.bottom<P.bottom-1||Q.push(te);}return Q.sort((te,se)=>se.z-te.z||se.i-te.i),Q.map(te=>te.el)}function w(v){try{let F=document.createRange(),P=null;for(let H of Array.from(v.childNodes)){if(H.nodeType!==3||!(H.textContent||"").trim())continue;F.selectNodeContents(H);let j=F.getBoundingClientRect();j.width<=0||j.height<=0||(P=P?{left:Math.min(P.left,j.left),top:Math.min(P.top,j.top),right:Math.max(P.right,j.right),bottom:Math.max(P.bottom,j.bottom)}:{left:j.left,top:j.top,right:j.right,bottom:j.bottom});}if(P)return P}catch{}let E=v.getBoundingClientRect();return {left:E.left,top:E.top,right:E.right,bottom:E.bottom}}function C(v,E){let F=document.documentElement,P=null,H=[{acc:[0,0,0],cover:0},{acc:[0,0,0],cover:0},{acc:[0,0,0],cover:0}],j=Math.max(0,Math.min(1,E[3]));H[0].acc=[E[0]*j,E[1]*j,E[2]*j],H[0].cover=j,H[2].cover=1;let X=1,Q=()=>H.some(be=>be.cover<1-1e-9),te=(be,Ee=1)=>{if(!Q())return true;let we=f(be.backgroundColor||""),Se=p(be);for(let bt of H){if(bt.cover>=1-1e-9)continue;if(Se)return false;if(!we)continue;let kt=Math.max(0,Math.min(1,we[3]))*Ee;if(kt<=0)continue;let He=kt*(1-bt.cover);bt.acc[0]+=we[0]*He,bt.acc[1]+=we[1]*He,bt.acc[2]+=we[2]*He,bt.cover+=He;}return true},se=be=>{let Ee=Math.max(0,Math.min(1,parseFloat(be.opacity||"1")));if(!(Ee>=1)){for(let we of H)we.acc=we.acc.map(Se=>Se*Ee),we.cover*=Ee;X*=Ee;}},ue=v,oe=null;for(;ue&&ue!==F&&!(!Q()&&!A(ue));){let be=getComputedStyle(ue);if(oe&&S(ue).length){P||(P=w(v));for(let Ee of D(ue,oe,v,P)){let we=getComputedStyle(Ee);if(!te(we,Math.max(0,Math.min(1,parseFloat(we.opacity||"1")))))return null}}if(!te(be))return null;se(be),oe=ue,ue=ue.parentElement;}if(ue===F){let be=getComputedStyle(F);if(!te(be))return null;se(be);}for(let be of H){let Ee=1-be.cover;Ee>0&&(be.acc=be.acc.map(we=>we+255*Ee),be.cover=1);}let ie=be=>[Math.round(Math.min(255,be.acc[0])),Math.round(Math.min(255,be.acc[1])),Math.round(Math.min(255,be.acc[2]))],Ce=H[2].acc.map(be=>Math.min(255,be));return {fg:ie(H[0]),bg:ie(H[1]),k:X,rest:Ce}}function _(v,E,F){return "#"+[v,E,F].map(P=>{let H=Math.max(0,Math.min(255,Math.round(P))).toString(16);return H.length===1?"0"+H:H}).join("")}let L=.1;function I(v,E,F,P=1,H=[0,0,0]){let j=h(E[0],E[1],E[2])>.5;for(let X of [F+L,F]){let Q=q(v,E,X,j,P,H)||q(v,E,X,!j,P,H);if(Q)return Q}return null}function q(v,E,F,P,H,j){let X=0,Q=1,te=null;for(let se=0;se<20;se++){let ue=(X+Q)/2,oe=P?[v[0]*(1-ue),v[1]*(1-ue),v[2]*(1-ue)]:[v[0]+(255-v[0])*ue,v[1]+(255-v[1])*ue,v[2]+(255-v[2])*ue],ie=[Math.round(oe[0]),Math.round(oe[1]),Math.round(oe[2])],Ce=[ie[0]*H+j[0],ie[1]*H+j[1],ie[2]*H+j[2]];m(Ce,E)>=F?(te=ie,Q=ue):X=ue;}return te}let B=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 V(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&&B.has(P))return true}let E=v.closest("label");if(E){let F=E.control;if(F&&(F.disabled||F.getAttribute("aria-disabled")==="true"))return true}return false}let O=document.createTreeWalker(document.body,4),z=new Set,W=[],T=O.nextNode();for(;T;){let v=(T.textContent||"").trim();if(v.length>=2||/[\p{L}\p{N}]/u.test(v)){let E=T.parentElement;E&&!z.has(E)&&(z.add(E),W.push(E));}T=O.nextNode();}for(let v of W){if(isWidget(v)||isHiddenFromAT(v)||!isVisible(v)||V(v))continue;let E=getComputedStyle(v),F=f(E.webkitTextFillColor||E.color||"");if(!F)continue;if(F[3]<.5){let He=E.webkitBackgroundClip||E.backgroundClip||"",Mt=E.backgroundImage||"";if(String(He).includes("text")&&/gradient\(/i.test(Mt)){let xr=Array.from(v.childNodes).filter(Bt=>Bt.nodeType===3).map(Bt=>(Bt.textContent||"").trim()).join("");xr&&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(xr.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(E.fontSize||"16"),H=parseInt(E.fontWeight||"400",10),X=P>=24||P>=18.66&&H>=700?3:4.5,Q=Array.from(v.childNodes).filter(He=>He.nodeType===3).map(He=>(He.textContent||"").trim()).join("");if(!Q||!hasRenderedText(v))continue;let te=_(F[0],F[1],F[2]),se=uniqueSel(v),ue=C(v,F),oe=ue?ue.bg:null;if(oe===null){d.push({selector:se,attribute:"style",currentValue:te,message:"contrast: text "+te+" 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="+te+" bg=<gradient-or-image> needs="+X+" text="+JSON.stringify(Q.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 ie=ue,Ce=m(ie.fg,oe);if(Ce>=X)continue;let be=I([F[0],F[1],F[2]],oe,X,ie.k,ie.rest);if(!be)continue;let Ee=_(be[0],be[1],be[2]),we=_(oe[0],oe[1],oe[2]),Se=_(ie.fg[0],ie.fg[1],ie.fg[2]),bt=Se===te?"":" (shown as "+Se+" after opacity/alpha)",kt="color:"+Ee+" !important;";d.push({selector:se,attribute:"style",currentValue:te,message:"contrast: "+te+bt+" on "+we+" is "+Ce.toFixed(2)+":1, needs "+X+":1 \u2014 e.g. color "+Ee,issueType:"contrast_insufficient",wcag:"1.4.3",context:"fg="+Se+" bg="+we+" ratio="+Ce.toFixed(2)+" needs="+X+" text="+JSON.stringify(Q.slice(0,40)),needsAI:false,fixValue:kt,outerHtml:v.outerHTML.slice(0,200)});}return d},Wh={name:"contrast",async detect(d){return d.evaluate(zI)}};var GI=()=>{let d="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye]",h=[],m=document.querySelectorAll("marquee, blink");for(let S of Array.from(m)){if(h.length>=30)break;if(S.closest(d))continue;let R=typeof uniqueSel=="function"?uniqueSel(S):S.tagName.toLowerCase();h.push({selector:R,attribute:"aria-hidden",currentValue:S.getAttribute("aria-hidden")||"",issueType:"motion_uncontrollable",wcag:"2.2.2",context:`deprecated ${S.tagName.toLowerCase()} element \u2014 uncontrollable motion`,needsAI:false,manualFix:true,fixValue:"true",outerHtml:(S.outerHTML||"").slice(0,300)});}let p=document.querySelectorAll('img[src*=".gif" i], img[src$=".gif" i]');for(let S of Array.from(p)){if(h.length>=30)break;if(S.closest(d))continue;let R=S.getAttribute("src")||"";if(!/\.gif(\?|#|$)/i.test(R)||typeof isVisible=="function"&&!isVisible(S))continue;let D=S.getBoundingClientRect();if(D.width<=40&&D.height<=40)continue;let w=typeof uniqueSel=="function"?uniqueSel(S):"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: ${R.split("/").pop()?.slice(0,60)||R.slice(-60)}`,needsAI:true,outerHtml:(S.outerHTML||"").slice(0,300)});}let b=document.querySelectorAll('meta[http-equiv="refresh"], meta[http-equiv="Refresh"], meta[http-equiv="REFRESH"]');for(let S of Array.from(b)){if(h.length>=30)break;let R=(S.getAttribute("content")||"").trim(),D=parseInt((R.split(/[;,]/)[0]||"").trim(),10);!Number.isFinite(D)||D<=0||h.push({selector:`meta[http-equiv="refresh"][content*="${R.slice(0,20)}"]`,attribute:"data-auto-refresh",currentValue:R,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:(S.outerHTML||"").slice(0,200)});}try{let S=!1,R=!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 _=C.cssText||"";if(/animation[^;]*\binfinite\b/i.test(_)&&/(keyframes|animation-name)/i.test(_+" "+(C.name||""))&&(S=!0),/prefers-reduced-motion[^{]*\(\s*reduce\s*\)/i.test(_)&&(R=!0),C.cssRules)for(let L of Array.from(C.cssRules)){let I=L.cssText||"";/animation[^;]*\binfinite\b/i.test(I)&&(S=!0);}}}S&&!R&&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 S of Array.from(x)){if(h.length>=30)break;if(S.closest(d)||S.tagName==="BODY"||S.tagName==="HTML")continue;let R=S.className&&typeof S.className=="string"?S.className:"";if(!A.test(R)||typeof isVisible=="function"&&!isVisible(S))continue;let w=getComputedStyle(S).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 _=typeof uniqueSel=="function"?uniqueSel(S):"";h.push({selector:_,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:(S.outerHTML||"").slice(0,300)});}return h},Xh={name:"cssAnimations",cap:30,async detect(d){return d.evaluate(GI)}};var UI=()=>{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"),S=0;for(let R=0;R<x.length;R++){let D=parseInt(x[R].getAttribute("colspan")||"1",10);S+=isNaN(D)||D<1?1:D;}return S}function p(A){let x=A.querySelectorAll("tr"),S=[];for(let R=0;R<x.length;R++){let D=x[R];D.closest("table")===A&&S.push(D);}return S}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 S=p(x);if(S.length<=1)continue;let R=S[0],D=m(R);if(D<=1)continue;let w=uniqueSel(x),C=getNearbyContext(x),_=x.querySelectorAll("img, svg, picture").length>=2;if(_&&!(x.textContent||"").trim()){if(x.querySelector("input, select, textarea, button")&&(_=false),_&&x.querySelector("th, thead, caption, [scope], [headers]")&&(_=false),_){let v=Array.from(x.querySelectorAll("img")).map(E=>(E.getAttribute("alt")||"").trim().toLowerCase()).filter(Boolean);new Set(v).size<v.length&&(_=false);}}else if(_){let v=x.querySelectorAll("td, th"),E=0;for(let F=0;F<v.length&&_;F++){let P=v[F];if(P.closest("table")!==x)continue;let H=(P.textContent||"").trim(),j=!!P.querySelector("img, svg, picture");if(!H&&!j)continue;E++;let X=P.querySelectorAll("a[href]");_=P.tagName==="TD"&&X.length===1&&j&&(X[0].textContent||"").trim()===H;}E<2&&(_=false);}if(_){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:S.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 q=L&&L.querySelector("tr")!==null,B=false;for(let v=0;v<S.length&&!B;v++){let E=S[v].children;for(let F=0;F<E.length&&!B;F++){let P=E[F],H=(P.tagName||"").toLowerCase();if(H!=="td"&&H!=="th")continue;if(H==="th"){B=true;break}let j=(P.getAttribute("headers")||"").trim();if(!j)continue;let X=j.split(/\s+/);for(let Q=0;Q<X.length;Q++){let te=document.getElementById(X[Q]);if(te&&(te.tagName||"").toLowerCase()==="th"&&te.closest("table")===x){B=true;break}}}}if(!q&&!B&&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:S.length,cols:D,nearbyHeading:C.nearbyHeading}),needsAI:false,fixValue:"wrap-first-row",outerHtml:(x.outerHTML||"").slice(0,300)}),D>2){let v=R.querySelectorAll("th, td"),E=v.length>0;for(let F=0;F<v.length;F++)if((v[F].tagName||"").toLowerCase()!=="td"){E=false;break}if(E)for(let F=0;F<v.length&&!(f.length>=30);F++){let P=v[F],H=uniqueSel(P),j=(P.textContent||"").trim().slice(0,60);f.push({selector:H,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:j,colIndex:F,nearbyHeading:C.nearbyHeading}),needsAI:false,fixValue:"columnheader",outerHtml:(P.outerHTML||"").slice(0,300)});}}let V=[],O=[],z=new Map;for(let v=0;v<S.length;v++){let E=S[v],F=0;for(let P=0;P<E.children.length;P++){let H=E.children[P],j=(H.tagName||"").toLowerCase();if(j!=="td"&&j!=="th")continue;for(;V.some(se=>se.lane===F&&se.untilRow>v);)F++;let X=parseInt(H.getAttribute("colspan")||"1",10);(isNaN(X)||X<1)&&(X=1);let Q={rowIdx:v,lane:F,span:X,headers:(H.getAttribute("headers")||"").trim()};j==="td"?O.push(Q):z.set(H,Q);let te=parseInt(H.getAttribute("rowspan")||"1",10)||1;if(te>1)for(let se=0;se<X;se++)V.push({lane:F+se,untilRow:v+te});F+=X;}}let W=(v,E)=>E.lane<v.lane+v.span&&E.lane+E.span>v.lane,T=x.querySelectorAll("th");for(let v=0;v<T.length&&!(f.length>=30);v++){let E=T[v];if(E.closest("table")!==x)continue;let F=(E.getAttribute("scope")||"").trim().toLowerCase();if(F==="col"||F==="row"||F==="colgroup"||F==="rowgroup")continue;let P=false;if((E.getAttribute("headers")||"").trim())P=true;else {let ie=(E.getAttribute("id")||"").trim();if(ie)for(let Ce=0;Ce<O.length;Ce++){let be=O[Ce].headers;if(be&&be.split(/\s+/).indexOf(ie)!==-1){P=true;break}}}if(P)continue;let H=E.closest("tr"),j=E.closest("thead")!==null,X=false;H&&S.length>0&&S[0]===H&&(X=true);let Q=false;if(H){let ie=H.querySelectorAll("th, td");ie.length>0&&ie[0]===E&&(Q=true);}let te="col";j||X?te="col":Q&&(te="row");let se=z.get(E);if(!P&&se){if(te==="row")P=O.some(ie=>ie.rowIdx===se.rowIdx&&!ie.headers&&ie.lane>=se.lane+se.span);else if(P=O.some(ie=>ie.rowIdx>se.rowIdx&&!ie.headers&&W(se,ie)),!P)for(let ie=0;ie<T.length;ie++){let Ce=z.get(T[ie]);if(!Ce||Ce.rowIdx<=se.rowIdx||!W(se,Ce))continue;let be=S[Ce.rowIdx],Ee=be?be.children:[];if(Ee.length>0&&Ee[0]===T[ie]&&T[ie].closest("table")===x){P=true;break}}}if(P)continue;let ue=uniqueSel(E),oe=(E.textContent||"").trim().slice(0,60);f.push({selector:ue,attribute:"scope",currentValue:F,issueType:"missing_table_scope",wcag:"1.3.1",context:JSON.stringify({reason:"<th> missing scope attribute",inferred:te,inThead:j,firstRow:X,firstCol:Q,headerText:oe}),needsAI:false,fixValue:te,outerHtml:(E.outerHTML||"").slice(0,300)});}}return f},Jh={name:"dataTables",cap:30,async detect(d){return d.evaluate(UI)}};var WI=()=>{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},Yh={name:"decorativeImageTitle",cap:30,async detect(d){return d.evaluate(WI)}};var XI=()=>{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=R=>{let D=R.computedRole;if(typeof D=="string")return D.toLowerCase();let w=(R.getAttribute("role")||"").trim().toLowerCase().split(/\s+/);for(let C of w)if(b.indexOf(C)>=0)return C;return R.hasAttribute("href")?"link":"generic"},x=R=>{let D=A(R);if(D==="link"||R.hasAttribute("href"))return true;if(D&&D!=="generic")return false;let w=R.getAttribute("tabindex");if(w===null)return false;let C=parseInt(w,10);return !isNaN(C)&&C>=0},S=document.querySelectorAll("a");for(let R of S){if(p.length>=50)break;if(!x(R)||R.closest(d)||R.getAttribute("aria-hidden")==="true"||R.getAttribute("role")==="presentation"||R.closest('[aria-hidden="true"]')||!isVisible(R))continue;let D=getAccessibleName(R);if(D&&D.length>0&&!h.test(D)&&!f.test(D))continue;let w=R.querySelectorAll("img[alt]"),C="";for(let T of w){let v=(T.getAttribute("alt")||"").trim();v&&(C+=v+" ");}if(C.trim())continue;let _=R.getAttribute("aria-labelledby");if(_&&typeof __resolveIdRefs=="function"&&__resolveIdRefs(_))continue;let L=uniqueSel(R),I=R.getAttribute("href")||"",q=(R.textContent||"").trim(),B=getNearbyContext(R),V="";q&&h.test(q)?V="[whitespace only]":q&&f.test(q)&&(V=q);let O=(document.documentElement.getAttribute("lang")||"").trim(),z=[];R.closest("nav")&&z.push("inside nav"),B.nearbyHeading&&z.push("heading: "+B.nearbyHeading),I&&z.push("href: "+I.slice(0,120)),z.push("parent: "+B.parentTag),O&&z.push("page language: "+O);let W={selector:L,attribute:"aria-label",currentValue:V,issueType:"empty_link",wcag:"2.4.4",context:z.join(" | "),needsAI:true,outerHtml:R.outerHTML.slice(0,300)};p.push(W);}return p},Kh={name:"emptyLinks",cap:50,async detect(d){return d.evaluate(XI)}};var JI=()=>{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 q=0;q<L.length;q++){let B=document.getElementById(L[q]);B&&(I+=" "+(B.textContent||""));}if(m(I))return m(I)}let _=m(D.getAttribute("title")||"");return _||""}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,_=w.querySelectorAll("legend");for(let O=0;O<_.length;O++)if(_[O].closest("fieldset")===w){C=_[O];break}let L=C!==null,I=C?m(C.textContent||""):"";if(L&&I){h.add(w);continue}let q=getNearbyContext(w),B=w.querySelectorAll("input, select, textarea"),V=uniqueSel(w);f.push({selector:V,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:B.length,nearbyHeading:q.nearbyHeading,parentTag:q.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")||"",_=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:_.nearbyHeading,parentTag:_.parentTag}),needsAI:true,outerHtml:(w.outerHTML||"").slice(0,300)}),h.add(w);}let x={},S=document.querySelectorAll('input[type="radio"], input[type="checkbox"]');for(let D=0;D<S.length;D++){let w=S[D];if(isWidget(w)||!isVisible(w)||isHiddenFromAT(w))continue;let C=w.getAttribute("name")||"";if(!C)continue;let _=w.closest("form"),L=_?_.getAttribute("id")||_.getAttribute("action")||_.tagName:"no-form",I=(w.getAttribute("type")||"").toLowerCase(),q=L+"::"+I+"::"+C;x[q]||(x[q]=[]),x[q].push(w);}let R=Object.keys(x);for(let D=0;D<R.length&&!(f.length>=30);D++){let w=x[R[D]];if(w.length<3)continue;let C=w[0],_=C.closest('fieldset, [role="group"], [role="radiogroup"]'),L=false;if(_){L=true;for(let z=1;z<w.length;z++)if(!_.contains(w[z])){L=false;break}}if(L&&_)continue;let I=C.parentElement;for(;I&&I!==document.body;){let z=true;for(let W=1;W<w.length;W++)if(!I.contains(w[W])){z=false;break}if(z)break;I=I.parentElement;}if(!I||I===document.body||h.has(I))continue;let q=(C.getAttribute("type")||"").toLowerCase(),B=C.getAttribute("name")||"",V=getNearbyContext(C),O=uniqueSel(I);f.push({selector:O,attribute:"role",currentValue:I.getAttribute("role")||"",issueType:"missing_fieldset_legend",wcag:"1.3.1",context:JSON.stringify({reason:"unwrapped "+q+" group ("+w.length+' inputs share name="'+B+'")',inputType:q,inputCount:w.length,name:B,nearbyHeading:V.nearbyHeading,parentTag:V.parentTag}),needsAI:false,fixValue:q==="radio"?"radiogroup":"group",outerHtml:(I.outerHTML||"").slice(0,300)}),h.add(I);}return f},Zh={name:"fieldsetLegend",cap:30,async detect(d){return d.evaluate(JI)}};var YI=()=>{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 S=[],R=new Set;document.querySelectorAll('a[href^="#"]').forEach(D=>{let w=D.getAttribute("href").slice(1);if(!w)return;let C=document.getElementById(w);C&&!R.has(C)&&(R.add(C),S.push(C));});for(let D of S){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(),_=Math.max(C.height,1);Math.max(0,Math.min(C.bottom,h)-Math.max(C.top,0))/Math.min(_,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},Qh={name:"focusObscured",async detect(d){return d.evaluate(YI)}};ra();var tg={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{}await Bu(d,{keepTracking:true,graceMs:2e3,quietMs:400,capMs:4e3});}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=D=>["Top","Right","Bottom","Left"].map(w=>{let C=D["border"+w+"Style"],_=parseFloat(D["border"+w+"Width"]||"0");return C!=="none"&&C!=="hidden"&&_>0?C+" "+_+" "+D["border"+w+"Color"]:"-"}).join("|"),x=document.querySelectorAll(b),S=Symbol.for("wa.prevFocus"),R=window[S]??null;try{delete window[S];}catch{}for(let D of x){if(p.length>=40)break;if(typeof isWidget=="function"&&isWidget(D)||typeof isHiddenFromAT=="function"&&isHiddenFromAT(D)||typeof isVisible=="function"&&!isVisible(D)||!D.offsetParent&&D.tagName!=="BODY")continue;let w=D.hasAttribute("style"),C=D.getAttribute("style"),_=["transition-property","transition-duration","transition-timing-function","transition-delay","transition-behavior"],L=D.style?_.map(H=>[H,D.style.getPropertyValue(H),D.style.getPropertyPriority(H)]):[];D.style&&(D.style.transition="none");let I=()=>{if(D.style){D.style.removeProperty("transition");for(let[H,j,X]of L)j&&D.style.setProperty(H,j,X);!w&&!D.getAttribute("style")?D.removeAttribute("style"):w&&C!==null&&C.trim()===""&&D.getAttribute("style")===""&&D.setAttribute("style",C);}},q=getComputedStyle(D),B=q.outline,V=q.outlineWidth,O=q.outlineStyle,z=q.boxShadow,W=A(q),T=q.backgroundColor;try{D.focus({preventScroll:!0});}catch{I();continue}if(document.activeElement!==D){I();continue}let v=()=>{let H=getComputedStyle(D),j=(H.outlineStyle||"").toLowerCase(),X=parseFloat(H.outlineWidth||"0"),Q=H.outline!==B,te=j!=="none"&&j!=="hidden"&&X>0,se=H.boxShadow!==z&&H.boxShadow!=="none"&&H.boxShadow!=="",ue=A(H)!==W,oe=H.backgroundColor!==T;return Q&&te||se||ue||oe},E=v(),F=typeof D.getAnimations=="function"&&D.getAnimations().some(H=>H.playState==="running"&&!("transitionProperty"in H));if(!E&&!F){let H=j=>typeof requestAnimationFrame=="function"?requestAnimationFrame(j):setTimeout(j,16);if(await new Promise(j=>setTimeout(()=>H(()=>j()),20)),document.activeElement!==D){I();continue}E=v();}if(I(),E||parseFloat(V)>0&&O!=="none")continue;let P=typeof uniqueSel=="function"?uniqueSel(D):D.tagName.toLowerCase();p.push({selector:P,pseudo:":focus-visible",attribute:"style",currentValue:O+" "+V,issueType:"focus_not_visible",wcag:"2.4.7",context:`${D.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:D.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{R&&R.isConnected&&R.focus({preventScroll:!0});}catch{}try{let D=Symbol.for("wa.prevScroll"),w=window[D];delete window[D],w&&window.scrollTo({left:w[0],top:w[1],behavior:"instant"});}catch{}try{let D=Symbol.for("wa.prevSelection"),w=window[D];delete window[D];let C=getSelection();if(C&&w){C.removeAllRanges();for(let _ of w)C.addRange(_);}}catch{}return p},f)}};var rM=()=>{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 _=0;_<h.length;_++)if(C.indexOf(h[_])!==-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 _=0;_<m.length;_++)if(C.indexOf(m[_])!==-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 _=(C.getAttribute("autocomplete")||"").trim().toLowerCase();if(b(C)){if(_==="new-password")continue;let V=uniqueSel(C);f.push({selector:V,attribute:"autocomplete",currentValue:_,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(_)continue;let I=C.form||C.closest("form"),q=p(I),B=uniqueSel(C);f.push({selector:B,attribute:"autocomplete",currentValue:"",issueType:"missing_autocomplete",wcag:"1.3.5",context:(q?"new/signup/change password form":"login form")+" | name: "+(C.getAttribute("name")||"")+" | id: "+(C.getAttribute("id")||""),needsAI:false,fixValue:q?"new-password":"current-password",outerHtml:(C.outerHTML||"").slice(0,300)});}let x=document.querySelectorAll("form"),S=/\*|\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 _=C.querySelectorAll("input[required], select[required], textarea[required]");if(!_.length)continue;let L=0;for(let O of _)isVisible(O)&&L++;if(L===0)continue;let I=C.querySelectorAll('input:not([type="hidden"]):not([type="submit"]):not([type="button"]), select, textarea'),q=0;for(let O of I)isVisible(O)&&q++;if(L>=q||(C.getAttribute("data-asw-required-hint")||"").trim())continue;let B=(C.textContent||"").trim();if(S.test(B))continue;let V=uniqueSel(C);f.push({selector:V,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 R='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 _=[];for(let O of C.querySelectorAll(D))isVisible(O)&&_.push(O);if(_.length===0||C.querySelector(R))continue;let L=C.getAttribute("id");if(L){let O=false;for(let z of document.querySelectorAll(R))if(z.getAttribute("form")===L){O=true;break}if(O)continue}if(((C.getAttribute("role")||"").toLowerCase()==="search"||!!C.closest('[role="search"]'))&&_.length===1)continue;let q=_.slice(0,4).map(O=>O.tagName.toLowerCase()+(O.tagName==="INPUT"?"["+(O.getAttribute("type")||"text")+"]":"")).join(", "),B=[];for(let O of C.querySelectorAll('button:not([type="reset" i]), input[type="button" i], [role="button"]')){if(B.length>=3)break;let z=O;if(!isVisible(z))continue;let W=((z.tagName==="INPUT"?z.getAttribute("value"):z.textContent)||z.getAttribute("aria-label")||"").trim().replace(/\s+/g," ").slice(0,30);B.push('"'+W+'"');}if(B.length&&!(C.getAttribute("action")||"").trim())continue;let V=B.length?" Buttons present that are not a submit control (type=button or role=button): "+B.join(", ")+".":"";f.push({selector:uniqueSel(C),attribute:"data-asw-submit-control",currentValue:"",issueType:"form_missing_submit",wcag:"3.2.2",context:`form with ${_.length} visible field(s) (${q}) and no submit control`,needsAI:true,needsReview:true,reviewReason:"WCAG 3.2.2 On Input: this form has "+_.length+" visible field(s) ("+q+") 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."+V,outerHtml:(C.outerHTML||"").slice(0,300)});}return f},rg={name:"formAttributes",cap:30,async detect(d){return d.evaluate(rM)}};var ag={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"},Ki=new Map(Object.entries(ag).map(([d,f])=>[d,new Set(f.split(" "))])),ng=(()=>{let d=new Map;for(let[h,m]of Object.entries(ag))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})(),nM=[["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]],fo;function aM(d){if(!/^[a-z]{2,3}$/.test(d))return false;if(fo===void 0)try{fo=new Intl.DisplayNames(["en"],{type:"language",fallback:"none"});}catch{fo=null;}if(!fo)return d.length===2;try{let f=fo.of(d);return !!f&&f.toLowerCase()!==d}catch{return false}}function Hu(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"?"":aM(f[1])?f[1]:""}function oM(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=Hu(m[0]);if(b)return b}let p=f.pathname.split("/").filter(Boolean)[0]||"";return h.test(p)?Hu(p):""}function iM(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 z=nM.map(([F,P])=>[F,(f.match(P)||[]).length]),W=z.find(([F])=>F==="ja")[1],T=z.find(([F])=>F==="zh")[1],v=W>=Math.max(5,(W+T)*.05)?[["ja",W+T]]:[["zh",T]],E=[...z.filter(([F])=>F!=="ja"&&F!=="zh"),...v].sort((F,P)=>P[1]-F[1]);if(E[0][1]/m>=.6)return {lean:E[0][0],confident:true,ruledOut:new Set(Ki.keys())}}let p=f.toLowerCase().match(/\p{L}+/gu)||[];if(!p.length)return h;let b={};for(let z of p){let W=ng.get(z);if(W)for(let[T,v]of W)b[T]=(b[T]||0)+v;}let A=new Map;for(let z of p)ng.has(z)&&A.set(z,(A.get(z)||0)+1);let x=new Map,S=new Map;for(let[z,W]of Ki){let T=0,v=0;for(let[E,F]of A)W.has(E)&&(T+=F,v++);x.set(z,T/p.length),S.set(z,v);}let R=p.length>=30,D=new Set(R?[...x].filter(([,z])=>z<.12).map(([z])=>z):[]),w=(z,W)=>{let T=Ki.get(z),v=Ki.get(W),E=0;for(let[F,P]of A)T.has(F)&&!v.has(F)&&(E+=P);return E},C=Object.entries(b).sort((z,W)=>W[1]-z[1]);if(!C.length)return {...h,ruledOut:D};let[_,L]=C[0],I=C[1]?.[1]||0,B=(R?[...x].filter(([z,W])=>z!==_&&W>=.12).map(([z])=>z):[]).every(z=>{let W=w(_,z);return W>=5&&W>=w(z,_)*2}),V=R&&L>=5&&(x.get(_)||0)>=.12&&(S.get(_)||0)>=6&&B,O=L>=2&&(V||L>=I*1.5)?_:null;return {lean:O,confident:!!O&&V,ruledOut:D}}function og(d){let f=[...new Set((d.declared||[]).map(Hu).filter(Boolean))],h=oM(d.url),m=iM(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 sM(){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],S=x.getAttribute("hreflang")||"";if(S&&S.toLowerCase()!=="x-default"&&x.href&&h(x.href)===h(f)){m=S;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 lM(d){if(!d)return [];let f=og(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 ig={name:"htmlLang",async detect(d){let f=await d.evaluate(sM);return lM(f)}};var uM=()=>{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 V=p;V;V=V.parentElement)if((V.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 S=getComputedStyle(p);if(p.getClientRects().length===0||S.visibility==="hidden"||S.visibility==="collapse"||(p.getAttribute("src")||"").trim().toLowerCase().indexOf("javascript:")===0)continue;let R="",D=(p.getAttribute("aria-labelledby")||"").trim();if(D){let V=D.split(/\s+/);for(let O=0;O<V.length;O++){let z=document.getElementById(V[O]);z&&(R+=" "+(z.textContent||""));}R=R.trim();}if(R||(R=(p.getAttribute("aria-label")||"").trim()),R)continue;let w=(p.getAttribute("title")||"").trim(),C=w.length===0;if(!C)continue;let _=(p.getAttribute("src")||"").toLowerCase(),L=uniqueSel(p),I=getNearbyContext(p),q=(document.documentElement.getAttribute("lang")||"").trim(),B="src: "+_.slice(0,120)+(I.nearbyHeading?" | heading: "+I.nearbyHeading:"")+(I.cardText?" | nearby text: "+I.cardText:"")+(q?" | page language: "+q:"");C&&h.push({selector:L,attribute:"title",currentValue:w,issueType:"missing_label",wcag:"4.1.2",context:B,needsAI:true,outerHtml:p.outerHTML.slice(0,300)});}return h},sg={name:"iframeTitle",cap:50,async detect(d){return d.evaluate(uM)}};var cM=()=>{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 S=x,R=(S.getAttribute("type")||"text").toLowerCase();if(f.includes(R)||S.getAttribute("autocomplete")||!isVisible(S))continue;let D="";if(p[R]&&(D=p[R]),!D){let C=(S.getAttribute("name")||"").toLowerCase(),_=(S.getAttribute("id")||"").toLowerCase(),L=(S.getAttribute("placeholder")||"").toLowerCase(),I=C+" "+_+" "+L;for(let q of b)if(I.includes(q.pattern)){D=q.autocomplete;break}}if(!D)continue;if(D==="country"){let C=false;if(S.tagName==="SELECT"){let _=Array.from(S.options).map(L=>(L.value||"").trim()).filter(Boolean);C=_.length>0&&_.every(L=>/^[A-Za-z]{2}$/.test(L));}C||(D="country-name");}let w=uniqueSel(S);m.push({selector:w,attribute:"autocomplete",currentValue:"",issueType:"identify_input_purpose",wcag:"1.3.5",context:"type: "+R+" | name: "+(S.getAttribute("name")||"")+" | id: "+(S.getAttribute("id")||""),needsAI:false,fixValue:D});}return m},lg={name:"inputPurpose",cap:50,async detect(d){return d.evaluate(cM)}};var dM=()=>{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 _=C.getBoundingClientRect();if(_.width===0&&_.height===0)return false;let L=-window.scrollX,I=-window.scrollY,q=document.documentElement,B=getComputedStyle(C).position;if(B==="fixed")return false;let V=B==="absolute";for(let O=C.parentElement;O&&O!==document.body&&O!==q;O=O.parentElement){let z=getComputedStyle(O);if(V){if(z.position==="static")continue;V=false;}if(/auto|scroll/.test(z.overflowX+" "+z.overflowY))return false;let W=z.overflowX==="hidden"||z.overflowX==="clip",T=z.overflowY==="hidden"||z.overflowY==="clip";if(!W&&!T)continue;let v=O.getBoundingClientRect();if(W&&(_.right<=v.left||_.left>=v.right)||T&&(_.bottom<=v.top||_.top>=v.bottom))return true;if(B=z.position,B==="fixed")return false;B==="absolute"&&(V=true);}return _.right<=L||_.bottom<=I||_.left>=L+q.scrollWidth||_.top>=I+q.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 S(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 _=C.parentElement?.closest(A);if(_){let L=0;for(let I of _.querySelectorAll(x))I!==C&&I.getAttribute("tabindex")?.trim()==="-1"&&L++;if(L>=2)return `${L} other controls in the same <${_.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 q=[...L.querySelectorAll(x)];if(q.length>=2&&q.every(B=>B.getAttribute("tabindex")?.trim()==="-1"))return 'a focusable ancestor owns focus and every control inside it carries tabindex="-1"';break}return ""}let R=document.querySelectorAll(m);for(let C of R){if(h.length>=30)break;if(C.closest(d)||!C.hasAttribute("tabindex"))continue;let _=C.getAttribute("tabindex")||"",L=parseInt(_,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 q=(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 E=(C.getAttribute("href")||"").trim();if(E&&!E.includes("#"))try{let F=new URL(E,document.baseURI),P=new URL(location.href);if(F.hash="",P.hash="",F.href===P.href)continue}catch{}}let V=typeof uniqueSel=="function"?uniqueSel(C):"",O=typeof getNearbyContext=="function"?getNearbyContext(C):{parentTag:C.tagName.toLowerCase(),nearbyHeading:""},z,W,T=L<0?S(C):"";L<0?(z="keyboard_trap",W="2.1.1"):(z="focus_order_disruption",W="2.4.3");let v=[];v.push("tabindex: "+L),v.push("tag: "+C.tagName.toLowerCase()),q&&v.push("role: "+q),O.nearbyHeading&&v.push("heading: "+O.nearbyHeading),v.push("parent: "+O.parentTag),T&&v.push('author tabindex="-1" looks intentional: '+T),h.push({selector:V,attribute:"tabindex",currentValue:String(L),issueType:z,wcag:W,context:v.join(" | "),needsAI:false,fixValue:"0",...T?{manualFix:true,reviewReason:`the author's tabindex="-1" looks intentional (${T}); 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 _=C.getAttribute("onblur")||"";!D.test(_)||w.test(_)||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:_.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},ug={name:"keyboardTrap",cap:30,async detect(d){return d.evaluate(dM)}};var fM=()=>{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 W=/(?:^|[\s_-])(?:icon|material-icons|material-symbols(?:-\w+)?|fa|fas|far|fab|fal|glyphicon|dashicons)(?:[\s_-]|$)/i,T=/icon|awesome|glyph|material symbols|dashicons/i,v=!1;try{v=T.test(getComputedStyle(p).fontFamily||"");}catch{}let E=Ne=>parseFloat(Ne||"0")||0,F=Ne=>{if(Ne.hasAttribute("hidden"))return !0;let Me=(Ne.getAttribute("style")||"").toLowerCase().replace(/\s+/g,"");if(/clip:rect\(0/.test(Me)||/clip-path:inset\((50|100)%/.test(Me))return !0;if(/position:(absolute|fixed)/.test(Me)){if(/(width|height):[01](px)?(;|!|$)/.test(Me))return !0;let nt=Me.match(/(?:left|top):(-\d+)/);if(nt&&parseInt(nt[1],10)<=-999)return !0}return !1},P=(Ne,Me)=>{if(Ne.hasAttribute("hidden")||E(Me.fontSize)===0)return !0;let nt=(Me.clip||"").replace(/\s+/g,"");if(/^rect\(0(px)?,?0(px)?,?0(px)?,?0(px)?\)$/.test(nt)||/inset\((50|100)%\)/.test(Me.clipPath||""))return !0;let _t=Ne.getBoundingClientRect();return !!(/hidden|clip/.test(Me.overflow||Me.overflowX+" "+Me.overflowY)&&(_t.width<=1||_t.height<=1)||(Me.position==="absolute"||Me.position==="fixed")&&(E(Me.left)<=-999||E(Me.top)<=-999||_t.right<=0||_t.bottom<=-window.scrollY))},H=!1,j='h1, h2, h3, h4, h5, h6, [role="heading"]',X=0;try{X=E(getComputedStyle(p).fontSize);}catch{}let Q=Ne=>{try{let Me=getComputedStyle(Ne);return {size:E(Me.fontSize),weight:parseInt(Me.fontWeight||"400",10)||400}}catch{return {size:0,weight:400}}},te=Ne=>{let Me=Ne.closest(j);return !!Me&&p.contains(Me)},se=Ne=>{for(let Me=Ne;Me&&Me!==p;Me=Me.parentElement)try{let nt=getComputedStyle(Me).display||"";if(nt&&!/^inline(?!-block)|^contents$/.test(nt))return Me}catch{return p}return p},ue=Ne=>Ne.split(/\s+/).filter(Me=>/[\p{L}\p{N}]/u.test(Me)).length,oe=document.createTreeWalker(p,NodeFilter.SHOW_TEXT),ie;for(;ie=oe.nextNode();){let Ne=ie.parentElement;if(!Ne)continue;let Me=(ie.textContent||"").trim();if(!Me||Ne===p&&v)continue;let nt=!1,_t=!1;for(let st=Ne;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(W.test(st.getAttribute("class")||"")||W.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(T.test(lt.fontFamily||"")){nt=!0;break}if(P(st,lt)){nt=!0;break}}catch{if(F(st)){nt=!0;break}st.tagName==="SPAN"&&(H=!0);}}!nt&&/[\p{L}\p{N}]/u.test(Me)&&x.push({text:Me,kbd:_t,p:Ne});}let Ce=0,be=x.length;for(;Ce<be&&x[Ce].kbd;)Ce++;for(;be>Ce&&x[be-1].kbd;)be--;let Ee=Ce<be?x.slice(Ce,be):x,we=Ee.map(Ne=>Q(Ne.p)),Se=Ee.map(Ne=>te(Ne.p)),bt=we.map(Ne=>Ne.size).filter(Ne=>Ne>0),kt=bt.length?Math.min(...bt):0,He=bt.length?Math.max(...bt):0,Mt=Math.min(...we.map(Ne=>Ne.weight)),xr=0;we.forEach((Ne,Me)=>{!Se[Me]&&Ne.weight<600&&Ne.size>xr&&(xr=Ne.size);});let Bt=Ee.map(Ne=>se(Ne.p)),Gt=Ne=>Ee.some((Me,nt)=>Bt[nt]===Bt[Ne]&&we[nt].weight<600&&!Se[nt]),Tt=Ee.map((Ne,Me)=>Se[Me]||He>kt&&we[Me].size>=He||we[Me].weight>=600&&Mt<600&&we[Me].size>=xr&&!Gt(Me)),rr=Ee.filter((Ne,Me)=>Tt[Me]),_e=Ee;if(rr.length&&rr.length<Ee.length){let Ne=ue(rr.map(st=>st.text).join(" ")),Me=(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&&we[lt].size>0&&we[lt].size<X},nt=st=>{let lt=Bt[st];if(rr.some($r=>lt.contains($r.p)))return !1;let Zt=ue(Ee.filter(($r,ot)=>!Tt[ot]&&Bt[ot]===lt).map($r=>$r.text).join(" "));return Zt>=5&&Zt>Ne},_t=Ee.filter((st,lt)=>Tt[lt]||!Me(st,lt)&&!nt(lt));_t.length&&(_e=_t);}for(let Ne of _e)A.push(Ne.text);b=H?"":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 R=/[\p{L}\p{N}\p{M}]/u,D=(p.getAttribute("aria-label")||"").trim().toLowerCase();if(!D){let W=p.getAttribute("aria-labelledby");W&&(D=(typeof __resolveIdRefs=="function"?__resolveIdRefs(W):"").toLowerCase());}if(!D)continue;let w=W=>{let T=W.toLowerCase().replace(/\([^)]*\)/g," ");return (/[\p{L}\p{N}]/u.test(T)?T:W.toLowerCase()).replace(/[\p{S}\u2026*]/gu," ").replace(/\s+/g," ").trim().normalize("NFC")},C=w(D),_=/[\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=(W,T)=>!W||!R.test(W)||_.test(W)||_.test(T),I=(W,T)=>{if(T<=0)return "";let v=W.charCodeAt(T-1);return v>=56320&&v<=57343&&T>=2?W.slice(T-2,T):W.charAt(T-1)},q=(W,T)=>{let v=W.codePointAt(T);return v===void 0?"":String.fromCodePoint(v)},B=W=>{let T=W.substring(0,40);if(!T)return true;let v=W.length>=40,E=q(T,0),F=I(T,T.length);for(let P=0;;){let H=C.indexOf(T,P);if(H<0)return false;if(L(I(C,H),E)&&(v||L(q(C,H+T.length),F)))return true;P=H+1;}};if(B(w(b))||A.length>1&&B(w(A.join(""))))continue;if(A.length>1){let W=true,T=0;for(let v of A){let E=w(v.toLowerCase());if(!E)continue;let F=E.slice(0,40),P=-1;for(let H=T;;){let j=C.indexOf(F,H);if(j<0)break;let X=L(I(C,j),q(F,0)),Q=F.length>=40||L(q(C,j+F.length),I(F,F.length));if(X&&Q){P=j;break}H=j+1;}if(P<0){W=false;break}T=P+F.length;}if(W)continue}let V=typeof uniqueSel=="function"?uniqueSel(p):"",O=typeof getNearbyContext=="function"?getNearbyContext(p):{parentTag:p.tagName.toLowerCase(),nearbyHeading:""},z=[];z.push("visible: "+b.slice(0,40)),z.push("aria-label: "+D.slice(0,60)),O.nearbyHeading&&z.push("heading: "+O.nearbyHeading),z.push("parent: "+O.parentTag),f.push({selector:V,attribute:"aria-label",currentValue:D,issueType:"label_in_name",wcag:"2.5.3",context:z.join(" | "),needsAI:true,outerHtml:(p.outerHTML||"").slice(0,300)});}return f},cg={name:"labelInName",cap:40,async detect(d){return d.evaluate(fM)}};var pM=()=>{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={},S=document.querySelectorAll("a[href]");for(let D=0;D<S.length;D++){let w=S[D];if(w.closest(d)||w.getAttribute("aria-hidden")==="true"||!isVisible(w))continue;let C=w.getAttribute("href")||"";if(!C)continue;let _=C.toLowerCase();if(_.charAt(0)==="#"||_.indexOf("javascript:")===0||_.indexOf("mailto:")===0||_.indexOf("tel:")===0)continue;let L=w.href||C,I=p(L);if(!I||A(w))continue;let q=(w.textContent||"").trim(),B=!!w.querySelector("img, svg, picture");if(!q&&B)continue;let V=b(w);if(!V)continue;let O=V.toLowerCase();O===_||O===L.toLowerCase()||(x[I]||(x[I]=[]),x[I].push(w));}let R=Object.keys(x);for(let D=0;D<R.length&&!(m.length>=30);D++){let w=x[R[D]];if(!w||w.length<2)continue;let C={},_="";for(let B=0;B<w.length;B++){let V=b(w[B]),O=V.toLowerCase();C[O]=true,V.length>_.length&&(_=V);}if(Object.keys(C).length<2)continue;let I=_.toLowerCase().trim();if(I.length<5)continue;let q=false;for(let B=0;B<h.length;B++)if(I===h[B]){q=true;break}if(!q)for(let B=0;B<w.length&&!(m.length>=30);B++){let V=w[B],O=b(V);if(O.toLowerCase()===I)continue;let z=uniqueSel(V);m.push({selector:z,attribute:"aria-label",currentValue:O,issueType:"link_consistency",wcag:"3.2.4",context:"Same href as "+w.length+' link(s) on this page with different text (e.g. "'+_.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:V.outerHTML.slice(0,300)});}}return m},dg={name:"linkConsistency",cap:30,async detect(d){return d.evaluate(pM)}};var mM=()=>{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 q=B=>{let V=B.split(".");if(V.length<=2)return B;let O=V[V.length-1],z=V[V.length-2],W=["co","com","net","org","ac","gov","edu"],T=O.length===2&&W.indexOf(z)>=0?3:2;return V.slice(-T).join(".")};return q(L)===q(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,q=I.indexOf("?");q>=0&&(I=I.slice(0,q));let B=I.indexOf("#");B>=0&&(I=I.slice(0,B)),I=I.toLowerCase();for(let V=0;V<h.length;V++){let O=h[V];if(I.length>=O.length&&I.slice(I.length-O.length)===O)return O}return ""}function S(L){let I=[],q=(L.getAttribute("aria-label")||"").trim();q&&I.push(q);let B=(L.getAttribute("title")||"").trim();B&&I.push(B);let V=L.getAttribute("aria-labelledby");if(V)try{let O=typeof __resolveIdRefs=="function"?__resolveIdRefs(V):"";O&&I.push(O);}catch{}return I.push((L.textContent||"").trim()),I.join(" ").toLowerCase()}function R(L,I,q){let B="";try{typeof getAccessibleName=="function"&&(B=(getAccessibleName(L)||"").trim());}catch{}let V=(I||q||B||L.textContent||"").replace(/\s+/g," ").trim();return V||(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"),_=C.length;for(let L=0;L<_&&!(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 q=I.getAttribute("href");if(q==null)continue;let B=String(q).trim();if(!B)continue;let V=B.toLowerCase(),O=S(I),z=(I.getAttribute("rel")||"").toLowerCase(),W=uniqueSel(I),T=(I.getAttribute("target")||"").toLowerCase(),v=(I.outerHTML||"").slice(0,300);if(B==="#"||V.indexOf("javascript:")===0||B.charAt(0)==="#"&&B.length>1)continue;let E=x(V);if(E){let j=I.hasAttribute&&I.hasAttribute("download"),X=O.indexOf(E)>=0||new RegExp("\\b"+E.slice(1)+"\\b").test(O)||O.indexOf("download")>=0;if(!j&&!X){let Q=R(I,(I.getAttribute("aria-label")||"").trim(),"");f.push({selector:W,attribute:"aria-label",currentValue:(I.getAttribute("aria-label")||"").trim(),issueType:"download_link_warning",wcag:"3.2.5",context:"download link \u2014 file type "+E+" | href: "+B.slice(0,120)+" | "+w(Q),needsAI:true,outerHtml:v});continue}}let F=A(B),P=V.indexOf("http://")===0||V.indexOf("https://")===0||V.indexOf("//")===0,H=!!F&&!!m&&!p(b(F),b(m));if(T==="_blank"){let j=z.indexOf("noopener")>=0||z.indexOf("noreferrer")>=0,X=O.indexOf("new window")>=0||O.indexOf("new tab")>=0||O.indexOf("opens in")>=0;if(!X){let Q=(I.getAttribute("aria-label")||"").trim(),te="",se=I.getAttribute("aria-labelledby")||"";if(!Q&&se)try{typeof __resolveIdRefs=="function"&&(te=(__resolveIdRefs(se)||"").trim());}catch{}let ue=R(I,Q,te),oe=[];j||oe.push("missing rel=noopener"),X||oe.push('missing "new window" hint'),oe.push("href: "+B.slice(0,120)),f.push({selector:W,attribute:"aria-label",currentValue:(I.getAttribute("aria-label")||"").trim(),issueType:"new_window_link",wcag:"3.2.5",context:oe.join(" | ")+" | opens in a new window | "+w(ue),needsAI:true,outerHtml:v});continue}}if(H&&P){let j=z.indexOf("external")>=0,X=O.indexOf("external")>=0||O.indexOf("opens in")>=0||O.indexOf("new window")>=0||O.indexOf("new tab")>=0;if(!j&&!X){let Q=(I.getAttribute("aria-label")||"").trim(),te="",se=I.getAttribute("aria-labelledby")||"";if(!Q&&se)try{typeof __resolveIdRefs=="function"&&(te=(__resolveIdRefs(se)||"").trim());}catch{}let ue=R(I,Q,te);f.push({selector:W,attribute:"aria-label",currentValue:(I.getAttribute("aria-label")||"").trim(),issueType:"external_link_warning",wcag:"3.2.5",context:"external: "+F+" (page: "+m+") | href: "+B.slice(0,120)+" | "+w(ue),needsAI:true,outerHtml:v});}}}return f},fg={name:"linkWarnings",cap:50,async detect(d){return d.evaluate(mM)}};var hM=()=>{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 R=A.parentElement;for(;R&&R!==document.body&&R!==document.documentElement;){if(R.getAttribute("aria-hidden")==="true")return;R=R.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},pg={name:"mainContentHidden",cap:10,async detect(d){return d.evaluate(hM)}};var gM=()=>{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 S=x.hasAttribute("controls"),R=x.hasAttribute("autoplay"),D=x.hasAttribute("muted"),w=R||!x.paused&&!x.ended,C=typeof isVisible=="function"?isVisible(x):true;if(!S&&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;R&&!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 S=x.hasAttribute("controls"),R=x.hasAttribute("autoplay"),D=R||!x.paused&&!x.ended;if(!S&&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;R&&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},mg={name:"mediaControls",cap:10,async detect(d){return d.evaluate(gM)}};var vM=()=>{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 _=w.getAttribute(C);if(_===null)return false;let L=parseFloat(_);return !isNaN(L)&&L<=1},S=document.querySelectorAll("img");for(let w of S){if(h.length>=50)break;if(w.closest(d)||w.closest("template, noscript, script"))continue;let C=w.getAttribute("src")||"",_=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 q=L||w.width,B=I||w.height,V=w.getBoundingClientRect(),O=!isVisible(w)||q<=2&&B<=2||V.width<=2&&V.height<=2||!!w.closest('[aria-hidden="true"]');if(O&&(_!==null||m.length>=50||A.test(C)))continue;let z=(w.getAttribute("aria-label")||"").trim(),W=(w.getAttribute("aria-labelledby")||"").trim();if(z||W)continue;if(_===null){let P=uniqueSel(w),H=getNearbyContext(w),j=[],X=w.closest("figure");if(X){let ue=X.querySelector("figcaption");ue&&j.push("figcaption: "+(ue.textContent||"").trim().slice(0,80));}H.nearbyHeading&&j.push("heading: "+H.nearbyHeading);let Q=w.closest("a");if(Q){let ue=Q.getAttribute("href")||"",oe=(Q.textContent||"").trim().replace(/\s+/g," ");oe&&j.push("link text: "+oe.slice(0,60)),ue&&j.push("link href: "+ue.slice(0,80));}C&&j.push("src: "+C.slice(0,120)),j.push("parent: "+H.parentTag);let te=C;try{te=new URL(C,document.baseURI).href;}catch{}(O?m:h).push({selector:P,attribute:"alt",currentValue:"",issueType:"missing_alt",wcag:"1.1.1",context:j.join(" | "),needsAI:true,imageSrc:te,outerHtml:w.outerHTML.slice(0,300)});continue}let T=(_||"").trim();if(T==="")continue;let v=/\.(jpg|jpeg|png|gif|webp|svg|bmp|ico)$/i.test(T),E=p.test(T),F=b.test(T);if(v||E||F){let P=uniqueSel(w),H=getNearbyContext(w),j=[];H.nearbyHeading&&j.push("heading: "+H.nearbyHeading),C&&j.push("src: "+C.slice(0,120)),j.push("parent: "+H.parentTag);let X=C;try{X=new URL(C,document.baseURI).href;}catch{}h.push({selector:P,attribute:"alt",currentValue:T,issueType:"missing_alt",wcag:"1.1.1",context:j.join(" | "),needsAI:true,imageSrc:X,outerHtml:w.outerHTML.slice(0,300)});}}let R=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"||!R.isVisible(w))continue;let _=w.getAttribute("data")||"",L=(w.getAttribute("type")||"").trim().toLowerCase(),I=L.startsWith("image/"),q=/\.(png|jpe?g|gif|webp|bmp|svg)(\?[^#]*)?(#.*)?$/i.test(_);if(!_||!(I||!L&&q)||(w.getAttribute("aria-label")||"").trim()||(w.getAttribute("title")||"").trim())continue;let B=(w.getAttribute("aria-labelledby")||"").trim();B&&B.split(/\s+/).some(V=>(document.getElementById(V)?.textContent||"").trim())||w.closest('a, button, [role="button"], [role="link"]')||h.push({selector:R.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: "+_.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"||!R.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 _=w.getBoundingClientRect();if(_.width<=30||_.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(B=>I.test(B)&&/\b(fillText|strokeText)\s*\(/.test(B))&&h.push({selector:R.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},hg={name:"missingAlt",cap:50,async detect(d){return d.evaluate(vM)}};var bM=()=>{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=_=>{if(getComputedStyle(_).visibility==="hidden")return false;for(let L=_;L&&L.nodeType===1;L=L.parentElement)if(getComputedStyle(L).display==="none")return false;return true},p=_=>Array.prototype.some.call(_.querySelectorAll("a:not([href])"),L=>m(L)&&!isHiddenFromAT(L)&&h.some(I=>L.hasAttribute(I))),b=_=>Array.prototype.some.call(_.querySelectorAll(f),L=>m(L)&&!isHiddenFromAT(L)),x=[];return document.querySelectorAll("div[onclick], span[onclick]").forEach(_=>{if(x.length>=50||_.closest(d)||!isVisible(_)||isHiddenFromAT(_)||b(_)||p(_))return;let L=_.getAttribute("role");if(L==="button"||L==="link"||L==="tab"||L==="menuitem"||L==="checkbox"||L==="radio")return;let I=uniqueSel(_),q=_.outerHTML.slice(0,300);x.push({selector:I,attribute:"role",currentValue:L||"",issueType:"missing_button_role",wcag:"4.1.2",context:JSON.stringify({tag:_.tagName.toLowerCase(),hasOnclick:true,currentTabindex:_.getAttribute("tabindex")}),needsAI:false,fixValue:"button",outerHtml:q}),_.getAttribute("tabindex")===null&&x.push({selector:I,attribute:"tabindex",currentValue:"",issueType:"missing_button_role",wcag:"4.1.2",context:JSON.stringify({tag:_.tagName.toLowerCase(),supplementary:'tabindex needed alongside role="button"'}),needsAI:false,fixValue:"0",outerHtml:q});}),document.querySelectorAll("a:not([href])").forEach(_=>{if(x.length>=50||_.closest(d)||!isVisible(_)||isHiddenFromAT(_)||_.getAttribute("role"))return;let I=_.hasAttribute("onclick"),q=_.getAttribute("data-action")||_.getAttribute("ng-click")||_.getAttribute("@click")||_.getAttribute("v-on:click");if(!I&&!q||b(_))return;let B=uniqueSel(_),V=_.outerHTML.slice(0,300);x.push({selector:B,attribute:"role",currentValue:"",issueType:"missing_button_role",wcag:"4.1.2",context:JSON.stringify({tag:"a",href:_.getAttribute("href")||"",hasOnclick:I}),needsAI:false,fixValue:"button",outerHtml:V});}),document.querySelectorAll("nav, ol, ul").forEach(_=>{if(x.length>=50||_.closest(d)||!isVisible(_)||isHiddenFromAT(_))return;let L=(_.className&&typeof _.className=="string"?_.className:"").toLowerCase(),I=(_.getAttribute("id")||"").toLowerCase();if(!L.includes("breadcrumb")&&!L.includes("crumb")&&!I.includes("breadcrumb")&&!I.includes("crumb"))return;let q=_.querySelectorAll("a");if(q.length<2)return;let B=(_.getAttribute("aria-label")||"").toLowerCase(),V=_.getAttribute("role");if(B.includes("breadcrumb")||B.includes("crumb")||V==="navigation"&&B)return;let O=uniqueSel(_);x.push({selector:O,attribute:"aria-label",currentValue:B,issueType:"missing_semantic_role",wcag:"4.1.2",context:JSON.stringify({tag:_.tagName.toLowerCase(),reason:"breadcrumb navigation missing aria-label",linkCount:q.length,pageLang:(document.documentElement.getAttribute("lang")||"").trim(),links:Array.prototype.slice.call(q,0,6).map(z=>(z.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(z=>z!==_).map(z=>(z.getAttribute("aria-label")||"").trim().slice(0,60))}),needsAI:true,outerHtml:_.outerHTML.slice(0,300)});}),document.querySelectorAll("form, section, div").forEach(_=>{if(x.length>=50||_.closest(d)||!isVisible(_)||isHiddenFromAT(_))return;let L=(_.className&&typeof _.className=="string"?_.className:"").toLowerCase(),I=(_.getAttribute("id")||"").toLowerCase();if(!L.includes("search")&&!I.includes("search")||!_.querySelector('input[type="search"], input[type="text"], input[name*="search"], input[placeholder*="earch"]'))return;let B=_.getAttribute("role");if(B==="search"||_.closest('[role="search"]')||_.querySelector('[role="search"]')||Array.prototype.some.call(_.querySelectorAll("form, section, div"),z=>{let W=(z.className&&typeof z.className=="string"?z.className:"").toLowerCase(),T=(z.getAttribute("id")||"").toLowerCase();return !W.includes("search")&&!T.includes("search")||z.getAttribute("role")==="search"?false:!!z.querySelector('input[type="search"], input[type="text"], input[name*="search"], input[placeholder*="earch"]')}))return;let O=uniqueSel(_);x.push({selector:O,attribute:"role",currentValue:B||"",issueType:"missing_semantic_role",wcag:"4.1.2",context:JSON.stringify({tag:_.tagName.toLowerCase(),reason:'search section missing role="search"'}),needsAI:false,fixValue:"search",outerHtml:_.outerHTML.slice(0,300)});}),document.querySelectorAll('[role="menu"], [role="menubar"]').forEach(_=>{if(_.closest(d))return;let L=_.getAttribute("role")||"menu",I=Array.from(_.querySelectorAll("a")).filter(B=>{if(!isVisible(B)||isHiddenFromAT(B))return false;let V=B.getAttribute("role");return V!=="menuitem"&&V!=="menuitemcheckbox"&&V!=="menuitemradio"});if(I.length===0)return;let q=uniqueSel(_);x.push({selector:q,attribute:"role",currentValue:L,issueType:"missing_semantic_role",wcag:"4.1.2",context:JSON.stringify({tag:_.tagName.toLowerCase(),reason:`${I.length} link(s) inside role="${L}" without menuitem roles`,sample:I.slice(0,3).map(B=>(B.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:_.outerHTML.slice(0,300)});}),x},gg={name:"missingRoles",cap:50,async detect(d){return d.evaluate(bM)}};var yM=()=>{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 S=x.parentElement,R=null;for(;S&&S!==document.body;){if(S.matches(b)){R=S;break}S=S.parentElement;}if((p==="banner"||p==="contentinfo")&&x.closest("article, section, aside, main, nav")||!R||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},vg={name:"nestedLandmarks",cap:30,async detect(d){return d.evaluate(yM)}};var wM=()=>{let f=[],h=T=>typeof parseCssColor=="function"?parseCssColor(T):null,m=(T,v,E)=>typeof relLuminance=="function"?relLuminance(T,v,E):0,b=(T,v)=>typeof contrastRatio=="function"?contrastRatio(T,v):1;function A(T){let E=[0,0,0],F=0,P=j=>{let X=h(j||"");if(!X)return;let Q=Math.max(0,Math.min(1,X[3]));if(Q<=0)return;let te=Q*(1-F);E[0]+=X[0]*te,E[1]+=X[1]*te,E[2]+=X[2]*te,F+=te;};for(let j=T.parentElement;j&&F<.999999999;j=j.parentElement)P(getComputedStyle(j).backgroundColor);let H=1-F;return [Math.round(Math.min(255,E[0]+255*H)),Math.round(Math.min(255,E[1]+255*H)),Math.round(Math.min(255,E[2]+255*H))]}function x(T,v,E){return "#"+[T,v,E].map(F=>{let P=Math.max(0,Math.min(255,Math.round(F))).toString(16);return P.length===1?"0"+P:P}).join("")}function S(T,v,E){let F=m(v[0],v[1],v[2])>.5;return R(T,v,E,F)||R(T,v,E,!F)}function R(T,v,E,F){let P=0,H=1,j=null;for(let X=0;X<20;X++){let Q=(P+H)/2,te=F?[T[0]*(1-Q),T[1]*(1-Q),T[2]*(1-Q)]:[T[0]+(255-T[0])*Q,T[1]+(255-T[1])*Q,T[2]+(255-T[2])*Q],se=[Math.round(te[0]),Math.round(te[1]),Math.round(te[2])];b(se,v)>=E?(j=se,H=Q):P=Q;}return j}let D=(T,v)=>{let E=Math.max(0,Math.min(1,T[3]));return [T[0]*E+v[0]*(1-E),T[1]*E+v[1]*(1-E),T[2]*E+v[2]*(1-E)]};function w(T,v){let E=T.boxShadow||"";if(!E||E==="none")return null;let F=[],P=0,H="";for(let X of E)X==="("&&P++,X===")"&&P--,X===","&&P===0?(F.push(H),H=""):H+=X;H&&F.push(H);let j=null;for(let X of F){let Q=X.match(/rgba?\([^)]*\)/),te=Q?h(Q[0]):null;if(!te||te[3]<=0||(X.replace(/rgba?\([^)]*\)/,"").replace("inset","").trim().split(/\s+/).map(ie=>parseFloat(ie)).filter(ie=>Number.isFinite(ie))[3]??0)<=0)continue;let oe=b(D(te,v),v);(j===null||oe>j)&&(j=oe);}return j}function C(T){let v=getComputedStyle(T),E=A(T),F=null,P=parseFloat(v.borderTopWidth||"0"),H=(v.borderTopStyle||"").toLowerCase(),j=h(v.borderTopColor||"");P>0&&H!=="none"&&H!=="hidden"&&j&&j[3]>0&&(F=b(D(j,E),E));let X=h(v.backgroundColor||"");if(X&&X[3]>0){let te=b(D(X,E),E);(F===null||te>F)&&(F=te);}let Q=w(v,E);return Q!==null&&(F===null||Q>F)&&(F=Q),F}function _(T){let v=T.getBoundingClientRect();if(v.width*v.height<=0)return null;let E='input, select, textarea, button, [role="button"], svg, img, i, label',F=T.parentElement,P=null;for(let H=0;F&&H<3&&!(F===document.body||F===document.documentElement);H++,F=F.parentElement){let j=F.getBoundingClientRect();if(j.width*j.height>4*v.width*v.height+1||j.height>Math.max(2.5*v.height,v.height+40))break;let X=false,Q=document.createTreeWalker(F,4),te=Q.nextNode();for(;te;){if((te.textContent||"").trim()&&te.parentElement&&!te.parentElement.closest(E)&&isVisible(te.parentElement)){X=true;break}te=Q.nextNode();}if(X)break;let se=C(F);se!==null&&se>1.01&&(P===null||se>P)&&(P=se);}return P}let L=T=>/^(img|picture|video|canvas|object|embed|iframe)$/.test((T.tagName||"").toLowerCase())||(getComputedStyle(T).backgroundImage||"none")!=="none",I=(T,v)=>{let E=Math.min(T.right,v.right)-Math.max(T.left,v.left),F=Math.min(T.bottom,v.bottom)-Math.max(T.top,v.top);return E>0&&F>0&&E*F/(T.width*T.height)>=.5},q=null;function B(T){let v=T.getBoundingClientRect();if(v.width*v.height<=0)return false;let E=v.left+v.width/2,F=v.top+v.height/2;if(E>=0&&F>=0&&E<window.innerWidth&&F<window.innerHeight&&typeof document.elementsFromPoint=="function"){let H=document.elementsFromPoint(E,F),j=H.indexOf(T);if(j>=0){for(let X of H.slice(j+1)){if(L(X))return true;let Q=h(getComputedStyle(X).backgroundColor||"");if(Q&&Q[3]>.5)return false}return false}}for(let H=T.parentElement,j=0;H&&j<8;H=H.parentElement,j++){let X=getComputedStyle(H);if((X.backgroundImage||"none")!=="none")return true;let Q=h(X.backgroundColor||"");if(Q&&Q[3]>.5||H===document.documentElement)break}q||(q=Array.from(document.querySelectorAll("img, picture, video, canvas, object, embed, iframe")));for(let H of q)if(!(H===T||T.contains(H)||H.contains(T))&&I(v,H.getBoundingClientRect())&&isVisible(H))return true;let P=T.offsetParent||T.parentElement;if(P&&P!==document.body&&P!==document.documentElement){let H=P.getElementsByTagName("*");for(let j=0;j<H.length&&j<400;j++){let X=H[j];if(!(X===T||T.contains(X)||X.contains(T))&&I(v,X.getBoundingClientRect())&&(getComputedStyle(X).backgroundImage||"none")!=="none"&&isVisible(X))return true}}return false}function V(T){for(let P=T.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 H=[],j=Array.from(P.querySelectorAll("path, rect, circle, ellipse, polygon, polyline, line, text, use"));for(let X of j){let Q=X.getBoundingClientRect();if(Q.width===0&&Q.height===0)continue;let te=getComputedStyle(X);if(te.display==="none"||te.visibility==="hidden"||parseFloat(te.opacity||"1")<1)return null;for(let[se,ue]of [[te.fill,te.fillOpacity],[te.stroke,parseFloat(te.strokeWidth||"0")>0?te.strokeOpacity:"0"]]){let oe=String(se||"");if(!oe||oe==="none"||parseFloat(String(ue??"1"))===0)continue;if(oe.startsWith("url"))return null;let ie=h(oe);if(!ie)return null;ie[3]*=parseFloat(String(ue??"1")),ie[3]>0&&H.push(ie);}}return H.length?H:null},E=[];for(let P=0;P<=255;P+=17)E.push(P);let F=Array.from(T.querySelectorAll('svg, i[class], [class*="icon"]'));for(let P of F){let H=P.getBoundingClientRect();if(H.width*H.height===0)continue;let j=getComputedStyle(P);if(j.display==="none"||j.visibility==="hidden")continue;let X=v(P);if(!X)continue;let Q=null,te=1,se=true;for(let ie=P;ie;ie=ie===T?null:ie.parentElement){let Ce=getComputedStyle(ie),be=parseFloat(Ce.opacity||"1");if(!Q){let Ee=h(Ce.backgroundColor||""),we=String(Ce.backgroundClip||"border-box").toLowerCase();if(!(String(Ce.backgroundImage||"none")==="none")){se=false;break}if(Ee&&Ee[3]>=1&&we==="border-box")Q=[Ee[0],Ee[1],Ee[2]];else if(be<1){se=false;break}}Q&&(te*=be);}if(!Q||!se)continue;let ue=Q,oe=1/0;for(let ie of X){let Ce=D(ie,ue);for(let be of E)for(let Ee of E)for(let we of E){let Se=[be,Ee,we],bt=D([Ce[0],Ce[1],Ce[2],te],Se),kt=D([ue[0],ue[1],ue[2],te],Se),He=b(bt,kt);He<oe&&(oe=He);}}if(oe>=3)return true}return false}let O="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 z(T){let v=T.tagName.toLowerCase(),E=v==="input"||v==="select"||v==="textarea"?v+" field":v;f.push({selector:uniqueSel(T),message:"non-text contrast: "+E+" over an image backdrop \u2014 "+O,attribute:"style",currentValue:"?",issueType:"non_text_contrast_insufficient",wcag:"1.4.11",context:v+" backdrop=image needs=3",needsAI:false,needsReview:true,reviewReason:O,outerHtml:T.outerHTML.slice(0,200)});}let W=document.querySelectorAll('input:not([type="hidden"]), select, textarea, button, [role="button"], [role="checkbox"], [role="radio"], [role="switch"]');for(let T of W){if(f.length>=30)break;if(isWidget(T)||isHiddenFromAT(T)||!isVisible(T))continue;let v=getComputedStyle(T),E=A(T),F=h(v.backgroundColor||""),P=h(v.borderTopColor||""),H=parseFloat(v.borderTopWidth||"0"),j=(v.borderTopStyle||"").toLowerCase(),X=H>0&&j!=="none"&&j!=="hidden",Q=T.tagName.toLowerCase(),te=Q==="input"||Q==="select"||Q==="textarea",se=null;if(Q==="input"){let _e=(T.type||"").toLowerCase(),Ne=(v.appearance||v.webkitAppearance||"").toLowerCase();if(_e==="checkbox"||_e==="radio"){let Me=Ne==="none"?"":String(v.accentColor||"").trim().toLowerCase(),nt=Me&&Me!=="auto"?h(Me):null;if(nt&&nt[3]>.5)se=b(D(nt,E),E);else if(Ne&&Ne!=="none")continue}}let ue=X&&P&&P[3]>.5?b(D(P,E),E):null,oe=F&&F[3]>.5?b(D(F,E),E):se,ie=w(v,E),Ce=ue===null&&oe===null&&ie===null?null:Math.max(ue??0,oe??0,ie??0);if(te&&B(T)){z(T);continue}if(te&&(Ce===null||Ce<3)){let _e=_(T);if(_e!==null&&_e>=3)continue}let be=null,Ee=false,we="";if(te)Ce!==null?(be=Ce,Ce<3&&(Ee=true)):(Ee=true,be=1);else {let _e=false,Ne=document.createTreeWalker(T,4),Me=Ne.nextNode();for(;Me;){if((Me.textContent||"").trim()&&Me.parentElement&&isVisible(Me.parentElement)){_e=true;break}Me=Ne.nextNode();}if(_e)continue;let nt=B(T);{let fe=["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"]||"")})),ye=fe.filter(Ve=>Ve.w>0&&Ve.s!=="none"&&Ve.s!=="hidden"&&Ve.c&&Ve.c[3]>.5),Xe=fe.filter(Ve=>Ve.w>0&&Ve.s!=="none"&&Ve.s!=="hidden"&&Ve.c&&Ve.c[3]===0),at=true;for(let Ve=T.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(ye.length&&Xe.length&&at&&(!nt||Qe)){let Ve=F&&F[3]>0?D(F,E):E,nr=D([Ve[0],Ve[1],Ve[2],dt],E),ar=zr=>{let ha=D(zr,Ve);return D([ha[0],ha[1],ha[2],dt],E)};if(ye.some(zr=>b(ar(zr.c),nr)>=3))continue}}if(nt){if(V(T))continue;z(T);continue}let st=Array.from(T.querySelectorAll('img, svg, picture, canvas, i[class], [class*="icon"]')),lt=new Map,Zt=fe=>{let ye=fe.getBoundingClientRect();if(ye.width*ye.height===0)return "absent";let Xe=parseFloat(getComputedStyle(T).opacity||"1");for(let at=fe;at&&at!==T;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(fe,Xe),"painted"},$r=st.map(Zt),ot=st.filter((fe,ye)=>$r[ye]==="painted"),jr=ot.length>0,yn=!jr&&$r.includes("hidden-at-rest"),pe=fe=>{let ye=(fe.tagName||"").toLowerCase();if(ye==="img"||ye==="picture"||ye==="canvas"||ye==="svg"&&fe.querySelector("image, foreignObject, linearGradient, radialGradient, pattern"))return null;let Xe=[];if(ye==="svg"){let dt=fe.querySelector("path, circle, rect, polygon, polyline, line, ellipse, use, text");for(let yt of [dt,fe]){if(!yt)continue;let Qe=getComputedStyle(yt),Ve=1;for(let ar=yt;ar&&ar!==fe;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 ((fe.textContent||"").trim()||getComputedStyle(fe,"::before").content!=="none")&&Xe.push({color:getComputedStyle(fe).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(fe)??1),Ve=[yt[0]*Qe+E[0]*(1-Qe),yt[1]*Qe+E[1]*(1-Qe),yt[2]*Qe+E[2]*(1-Qe)],nr=b(Ve,E);(at===null||nr>at)&&(at=nr);}return at};if(jr&&ot.map(pe).some(ye=>ye!==null&&ye>=3))continue;let re=false,le=v.position;if((le==="absolute"||le==="fixed")&&T.parentElement){let fe=T.getBoundingClientRect(),ye=T.parentElement.getBoundingClientRect(),Xe=ye.width*ye.height;Xe>0&&fe.width*fe.height/Xe>=.85&&(re=true);}if(jr||re||yn){if(Ee=true,be=X&&P&&P[3]>.5?b(D(P,E),E):1,be>=3)continue;we=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 Ce!==null?(be=Ce,Ce<3&&(Ee=true)):(Ee=true,be=1);}if(!Ee)continue;let Se=P&&P[3]>.5?[P[0],P[1],P[2]]:F&&F[3]>.5?[F[0],F[1],F[2]]:[128,128,128],bt=S(Se,E,3);if(!bt)continue;let kt=x(bt[0],bt[1],bt[2]),He=x(E[0],E[1],E[2]),Mt="border: 1px solid "+kt+" !important;",xr=uniqueSel(T),Bt=T.tagName.toLowerCase(),Gt=Ce===null&&!X?"invisible (no border, no fill: 1.00:1)":be?be.toFixed(2)+":1":"not measurable",Tt=Bt==="input"||Bt==="select"||Bt==="textarea"?Bt+" field":Bt,rr=we?"non-text contrast: "+Tt+" boundary is "+Gt+" against "+He+" (needs 3:1) \u2014 "+we:"non-text contrast: "+Tt+" boundary (border and fill) is "+Gt+" against "+He+", needs 3:1 \u2014 e.g. border-color "+kt;f.push({selector:xr,message:rr,attribute:"style",currentValue:be?be.toFixed(2):"?",issueType:"non_text_contrast_insufficient",wcag:"1.4.11",context:Bt+" bg="+He+" ratio="+(be?be.toFixed(2):"?")+" needs=3",needsAI:false,...we?{needsReview:true,reviewReason:we}:{fixValue:Mt},outerHtml:T.outerHTML.slice(0,200)});}return f},bg={name:"nonTextContrast",cap:30,async detect(d){return d.evaluate(wM)}};var xM=()=>{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):"",S=typeof getNearbyContext=="function"?getNearbyContext(b):{parentTag:b.tagName.toLowerCase(),nearbyHeading:""},R=[];R.push("tag: "+b.tagName.toLowerCase()),R.push("onfocus: "+A.slice(0,100)),S.nearbyHeading&&R.push("heading: "+S.nearbyHeading),R.push("parent: "+S.parentTag),h.push({selector:x,attribute:"onfocus",currentValue:A.slice(0,200),issueType:"onfocus_context_change",wcag:"3.2.1",context:R.join(" | "),needsAI:true,outerHtml:(b.outerHTML||"").slice(0,300)});}return h},yg={name:"onFocus",cap:20,async detect(d){return d.evaluate(xM)}};var AM=()=>{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 q of h){let B=document.querySelector(q);if(B&&!B.closest(d)){m=true;break}}if(!m){let q=document.querySelectorAll('a[href^="#"]');for(let B of q){if(B.closest(d))continue;let V=(B.textContent||"").toLowerCase();if(V.includes("skip")&&(V.includes("main")||V.includes("content")||V.includes("nav"))){m=true;break}}}if(!m){let q=document.querySelectorAll('button, input[type="button"], input[type="submit"]');for(let B of Array.from(q)){if(B.closest(d))continue;let V=(B.getAttribute("value")||B.textContent||"").trim().toLowerCase();if(V.includes("skip")&&(V.includes("main")||V.includes("content")||V.includes("nav"))){m=true;break}}}if(!m){let q=document.body?document.body.firstElementChild:null;if(q&&q.matches('main, [role="main"], div#main')){let B=getComputedStyle(q),V=q.getBoundingClientRect();B.display!=="none"&&B.visibility!=="hidden"&&!q.closest('[hidden], [aria-hidden="true"]')&&V.width>0&&V.height>0&&(m=true);}}if(!m){let q=Array.from(document.querySelectorAll('main, [role="main"], div#main'));for(let B of q){let V=getComputedStyle(B);if(V.display==="none"||V.visibility==="hidden"||B.closest('[hidden], [aria-hidden="true"]'))continue;if(Array.from(B.querySelectorAll("h1, h2, h3, h4, h5, h6")).some(z=>{let W=getComputedStyle(z);return W.display!=="none"&&W.visibility!=="hidden"&&!z.closest('[hidden], [aria-hidden="true"]')})){m=true;break}}}if(!m&&document.querySelector("nav")){let q=document.querySelectorAll("a, button");for(let B of Array.from(q)){if(B.closest(d))continue;let V=(B.textContent||"").trim().toLowerCase();if((V.includes("toggle")||V.includes("hide")||V.includes("collapse")||V.includes("show"))&&V.includes("content")){m=true;break}}}if(m||Array.from(document.querySelectorAll('main, [role="main"]')).filter(q=>{let B=getComputedStyle(q);if(B.display==="none"||B.visibility==="hidden"||q.closest('[hidden], [aria-hidden="true"]'))return false;let V=q.getBoundingClientRect();return V.width>0&&V.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 q=document.querySelector("h1[id]");if(q&&q.getAttribute("id"))b=q.getAttribute("id");else {let B=["main-content","maincontent","main","content","skip-content"];for(let V of B)if(document.getElementById(V)){b=V;break}}}let x=b==="",S=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="#'+S+'" class="wa-skip-link">{TEXT}</a>',w=(document.documentElement.getAttribute("lang")||"").trim(),C=document.querySelector('main, [role="main"]'),_=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 #"+S)+(w?" | page language: "+w:"")+(_?" | main landmark label: "+_:"")+(I?" | page heading: "+I:"")+" | html template (replace {TEXT} with the link text, in the page language): "+D,needsAI:true,...x?{manualFix:true}:{}}),f},wg={name:"skipLink",async detect(d){return d.evaluate(AM)}};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 S=x.match(/url\((['"]?)(.*?)\1\)/);if(!S)continue;let R=S[2];if(!R||R.startsWith("data:")&&R.length<256)continue;let D=b.getBoundingClientRect();if(D.width<32||D.height<32)continue;let w=b.tagName.toLowerCase(),C=b.getAttribute("role")||"",_=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"),q=!!b.getAttribute("aria-labelledby"),B=!!b.getAttribute("title"),V=!!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||q||B||V||L||!_)continue;let O=b.closest("a,button,[role=button],[role=link]");if(O&&O!==b){let v=(O.textContent||"").trim(),E=O.getAttribute("aria-label")||O.getAttribute("title")||"",F=O.getAttribute("aria-labelledby"),P=!!O.querySelector('img[alt]:not([alt=""])');if(v||E.trim()||F||P)continue}let z=R;try{z=new URL(R,location.href).toString();}catch{continue}let W=typeof uniqueSel=="function"?uniqueSel(b):"",T=typeof getNearbyContext=="function"?getNearbyContext(b):{parentTag:w,nearbyHeading:""};h.push({selector:W,attribute:"aria-label",currentValue:"",issueType:"background_image_unlabeled",wcag:"1.1.1",context:`bg: ${z.slice(0,140)} | tag: ${w} | role: ${C||"(none)"} | parent: ${T.parentTag}${T.nearbyHeading?" | heading: "+T.nearbyHeading:""}`,needsAI:true,imageSrc:z,outerHtml:(b.outerHTML||"").slice(0,300)});}return h},xg={name:"backgroundImages",cap:20,async detect(d){return d.evaluate(DM)}};var _M=()=>{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")||"",S=p.getAttribute("aria-labelledby")||"",R=p.querySelector("title"),D=R?(R.textContent||"").trim():"";if(x.trim()||S.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 _=p.closest('a, button, [role="button"], [role="link"], [onclick]');if(_){if(_.getAttribute("aria-label")?.trim()||_.getAttribute("aria-labelledby")?.trim())return;let E=getAccessibleName(_),F=_.cloneNode(true);F.querySelectorAll("svg").forEach(H=>H.remove());let P=(F.textContent||"").trim().replace(/\s+/g," ");if(E&&P.length>0)return}else {if(!/^(img|graphics-document|graphics-symbol)$/i.test((A||"").trim().split(/\s+/)[0])||C)return;let E=p.parentElement;if(E&&(E.textContent||"").trim().replace(/\s+/g," ").length>3)return}let L=uniqueSel(p),I=getNearbyContext(_||p),q=_&&_.getAttribute("href")||"",B=(_||p).outerHTML.slice(0,300),V=p.getAttribute("class")||"",O=p.getAttribute("data-icon")||"",z=_||p,W=z&&z!==p&&z.getAttribute("class")||"",T=typeof lookupIconLabel=="function"?lookupIconLabel(String(V),O,"")||lookupIconLabel(String(W),"",""):null,v=_?uniqueSel(_):L;h.push({selector:v,attribute:"aria-label",currentValue:"",issueType:"svg_missing_name",wcag:"1.1.1",context:JSON.stringify({parentTag:(_||p).tagName?(_||p).tagName.toLowerCase():"svg",href:q,nearbyHeading:I.nearbyHeading,parentRole:I.parentRole,svgClasses:V,iconLib:T||void 0,suggestion:"Add aria-label to the parent interactive element or <title> inside SVG"}),needsAI:true,outerHtml:B});}),h},Ag={name:"svgNames",cap:50,async detect(d){return d.evaluate(_M)}};var EM=()=>{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=T=>{let v=[];for(let E of T.split(";")){let F=E.match(/^\s*([-a-zA-Z]+)\s*:\s*(.*?)\s*$/);if(!F)continue;let P=F[1].toLowerCase();if(!h.includes(P))continue;let H=F[2],j=/!\s*important\s*$/i.test(H);H=H.replace(/!\s*important\s*$/i,"").trim(),H&&(P!=="line-height"&&/^[-+]?\d+(\.\d+)?$/.test(H)&&parseFloat(H)!==0||v.push({prop:P,value:H,important:j}));}return v},x=(T,v,E,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 te=parseFloat(P);return T==="line-height"?{kind:"ratio",factor:te}:{kind:"ratio",factor:0}}let H=P.endsWith("%")&&/\d/.test(P),j=H?P.slice(0,-1).trim().match(/^([\d.]+)$/):P.match(/^([\d.]+)(em|rem|vw|vh|px|pt|cm|mm|pc|in|q)$/);if(!j)return {kind:"undetermined"};let X=parseFloat(j[1]);if(H||P.endsWith("em")){let te=F??E;return te&&E&&isFinite(te)&&isFinite(E)&&te>0&&E>0?H?{kind:"ratio",factor:X/100*(te/E)}:{kind:"ratio",factor:X*(te/E)}:H?{kind:"ratio",factor:X/100}:{kind:"ratio",factor:X}}let Q=P.match(/(rem|vw|vh|px|pt|cm|mm|pc|in|q)$/)?.[1];if(Q==="px"||Q&&b[Q]){let te=Q==="px"?X:X*(b[Q]||0);return E===null||!isFinite(E)||E<=0?{kind:"undetermined"}:{kind:"ratio",factor:te/E}}return {kind:"undetermined"}},S=(T,v,E)=>{let F=T;for(;F;){let P=v.get(F);if(P){let H=P.filter(j=>j.prop===E);if(H.length){let j=H.filter(Q=>Q.important);return {decl:j.length?j[j.length-1]:H[H.length-1],from:F}}}F=F.parentElement;}return null},R=T=>{let v=T;for(;v;){let E=v.style;if(E&&(E.display==="none"||E.visibility==="hidden")||E&&(E.position==="absolute"||E.position==="fixed")&&(D(E.top)||D(E.left)))return false;if(E&&(E.overflowX==="scroll"||E.overflowX==="auto")){for(let F=T;F!==v;F=F.parentElement)if(F.style&&w(F.style.width)>=900)return false}v=v.parentElement;}return true},D=T=>{if(!T)return false;let v=T.match(/^(-)([\d.]+)(px|em|rem|vh|vw)$/i);if(!v)return false;let E=parseFloat(v[2]),F=v[3].toLowerCase();return F==="px"?E>=100:F==="em"||F==="rem"?E>=4:E>=10},w=T=>{let v=T?T.match(/^([\d.]+)px$/):null;return v?parseFloat(v[1]):0},C=[],_=[],L=new Map,I=typeof getComputedStyle=="function"?getComputedStyle:null,q=T=>{try{let v=I?I(T).fontSize:"",E=v?v.match(/^([\d.]+)px$/):null;return E?parseFloat(E[1]):null}catch{return null}},B=new Map,V=Array.from(document.querySelectorAll('[style*="important" i]'));for(let T of V)T.closest(p)||B.set(T,A(T.getAttribute("style")||""));for(let T of document.querySelectorAll("body [style]"))T.closest(p)||B.has(T)||B.set(T,A(T.getAttribute("style")||""));let O=[],z=document.createTreeWalker(document.body,1),W=z.currentNode;for(;W;)Array.from(W.childNodes).some(v=>v.nodeType===3&&/\S/.test(v.textContent||""))&&!W.closest(p)&&O.push(W),W=z.nextNode();for(let T of O){if(C.length>=m)break;if(R(T))for(let v of h){let E=S(T,B,v);if(!E||!E.decl.important)continue;let F=q(T),P=E.from===T?F:q(E.from)??F,H=x(v,E.decl.value,F,P);if(!(H.kind==="undetermined"||H.kind==="narrow"||H.kind==="ratio"&&H.factor+f<d[v]))continue;let X=L.get(E.from);X||(X=[],L.set(E.from,X),_.push({from:E.from,props:X})),X.includes(v)||X.push(v);}}for(let{from:T,props:v}of _){if(C.length>=m)break;let E=typeof uniqueSel=="function"?uniqueSel(T):"",F=typeof getNearbyContext=="function"?getNearbyContext(T):{parentTag:T.parentElement?.tagName.toLowerCase()||"",nearbyHeading:""},P=[];P.push("blocked: "+v.join(",")),P.push("tag: "+T.tagName.toLowerCase()),F.nearbyHeading&&P.push("heading: "+F.nearbyHeading),P.push("parent: "+F.parentTag),C.push({selector:E,attribute:"style",currentValue:(T.getAttribute("style")||"").slice(0,200),issueType:"text_spacing_blocked",wcag:"1.4.12",context:P.join(" | "),needsAI:true,outerHtml:(T.outerHTML||"").slice(0,300)});}return C},Dg={name:"textSpacing",cap:30,async detect(d){return d.evaluate(EM)}};var CM=()=>{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 S=(b.getAttribute("aria-label")||"").trim(),R=b.getAttribute("aria-labelledby"),D=(b.getAttribute("title")||"").trim(),w=(b.getAttribute("value")||"").trim(),C=(b.textContent||"").trim().replace(/\s+/g," "),_="";R&&(_=typeof __resolveIdRefs=="function"?__resolveIdRefs(R):"");let L=b.querySelector('img[alt]:not([alt=""])'),I=b.querySelector("svg title"),q=b.querySelector("svg[aria-label]");if(!!(S||_||D||w||C||L||I||q))continue;let V=uniqueSel(b),O=getNearbyContext(b),z=b.closest("form"),W=z&&(z.getAttribute("id")||z.getAttribute("name"))||"",T=b.getAttribute("class")||"",v=b.querySelector('i, svg, span[class*="icon"]'),E=v&&v.getAttribute("class")||"",F=v&&v.getAttribute("data-icon")||"",P=v?(v.textContent||"").trim():"",H=typeof lookupIconLabel=="function"?lookupIconLabel(String(E),F,P):null,j=!H&&typeof lookupIconLabel=="function"?lookupIconLabel(String(T),"",""):null,X=H||j,Q=[];for(let ue of ["type","name","id"]){let oe=(b.getAttribute(ue)||"").trim();oe&&Q.push(ue+"="+oe.slice(0,40));}let te=[];if(z){let ue=(z.getAttribute("action")||"").trim();if(ue){let ie=ue;try{ie=new URL(ue,document.baseURI).pathname;}catch{}te.push("action: "+ie.slice(0,80));}let oe=[];for(let ie of z.querySelectorAll("input:not([type=hidden]):not([type=submit]):not([type=button]), textarea, select")){let Ce=(ie.getAttribute("aria-label")||ie.getAttribute("placeholder")||ie.id&&Array.from(z.querySelectorAll("label[for]")).find(be=>be.getAttribute("for")===ie.id)?.textContent||ie.getAttribute("name")||"").trim().replace(/\s+/g," ");if(oe.push(Ce.slice(0,40)||ie.getAttribute("type")||ie.tagName.toLowerCase()),oe.length>=4)break}oe.length&&te.push("fields: "+oe.join(", "));}let se=[];W&&se.push("form: "+W),O.nearbyHeading&&se.push("heading: "+O.nearbyHeading),E&&se.push("icon: "+String(E).slice(0,80)),T&&se.push("class: "+String(T).slice(0,80)),se.push("parent: "+O.parentTag),Q.length&&se.push("control: "+Q.join(" "));for(let ue of te)se.push("form "+ue);X&&se.push("icon-hint (glyph name only, not the action): "+X),h.push({selector:V,attribute:"aria-label",currentValue:"",issueType:"unlabeled_button",wcag:"4.1.2",context:se.join(" | "),needsAI:true,outerHtml:b.outerHTML.slice(0,300)});}return h},_g={name:"unlabeledButtons",cap:50,async detect(d){return d.evaluate(CM)}};var SM=()=>{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(T){if(isWidget(T)||!isVisible(T))return;let v=getAccessibleName(T);if(!v)return;let E=v.toLowerCase().trim();h[E]=(h[E]||0)+1;}document.querySelectorAll("a[href]").forEach(T=>m(T));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(T){let v=T.toLowerCase();return p.has(v)||b.some(E=>v.startsWith(E))}let x=/[\u4e00-\u9fff\u3040-\u30ff\uac00-\ud7af]/;function S(T,v){return x.test(T)?1:v}let R=50,D=[];function w(T){if((T.textContent||"").trim().replace(/\s+/g," ").length>0)return false;let E=T.querySelectorAll("i, span, em");for(let F of E)if((typeof F.className=="string"?F.className:"").split(/\s+/).some(A))return true;return false}function C(T){let v=T.className||"";return typeof v!="string"?false:v.split(/\s+/).some(A)}function _(T){if(D.length>=R||isWidget(T)||!isVisible(T))return;let v=getAccessibleName(T);if(!v)return;let E=v.toLowerCase().trim(),F=false,P=v.length>=2&&/^[A-Z][A-Z0-9]+$/.test(v.trim()),H=/^[[(]?\d{1,4}[\])]?$/.test(v.trim());if(v.length<S(v,3)&&!P&&!H)F=true;else if(d.has(E))F=true;else if(f.has(E)&&(h[E]||0)>=2){let se=(T.getAttribute("aria-label")||"").trim().toLowerCase(),ue=!!T.getAttribute("aria-labelledby")||!!se&&se!==E,oe=T.querySelector&&T.querySelector('.sr-only, .visually-hidden, [class*="sr-only"], [class*="visually-hidden"], [class*="screen-reader"]'),ie=oe?(oe.textContent||"").trim().toLowerCase():"";!ue&&!(oe&&ie!==E)&&(F=true);}else (w(T)||C(T)&&v.length===0)&&(T.getAttribute("aria-label")||T.getAttribute("aria-labelledby")||T.querySelector&&T.querySelector('.sr-only, .visually-hidden, [class*="sr-only"], [class*="visually-hidden"]')||(F=true));if(!F)return;let j=getNearbyContext(T),X=uniqueSel(T),Q=T.getAttribute("href")||"",te=T.outerHTML.slice(0,300);D.push({selector:X,attribute:"aria-label",currentValue:(T.getAttribute("aria-label")||"").trim(),message:"weak link name: "+(T.getAttribute("aria-label")||T.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:Q,nearbyHeading:j.nearbyHeading,parentTag:j.parentTag,parentRole:j.parentRole,cardText:j.cardText||"",imgAlt:j.imgAlt||""}),needsAI:true,outerHtml:te});}document.querySelectorAll("a[href]").forEach(T=>_(T));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,q=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 B(T){return !!(!T||T.getAttribute("aria-hidden")==="true"||T.closest('[aria-hidden="true"]'))}function V(T,v,E,F,P,H){if(D.length>=R)return;let j=uniqueSel(T),X=(T.outerHTML||"").slice(0,300);D.push({selector:j,attribute:v,currentValue:E,issueType:F,wcag:P,context:JSON.stringify(H),needsAI:true,outerHtml:X});}let O=document.querySelectorAll("h1,h2,h3,h4,h5,h6");for(let T=0;T<O.length&&!(D.length>=R);T++){let v=O[T];if(!v||isWidget(v)||B(v)||!isVisible(v))continue;let E=getAccessibleName(v);if(!E)continue;let F=E.toLowerCase().trim(),P=F.split(/\s+/).filter(Boolean),H=()=>{if(!/^\p{L}$/u.test(E))return false;let Q=v.nextElementSibling;if(!Q)return false;let te=Q.tagName.toLowerCase(),se=[];if(te==="dl"?se=Array.from(Q.querySelectorAll("dt")):te==="ul"||te==="ol"?se=Array.from(Q.children).filter(oe=>oe.tagName==="LI"):te==="table"&&(se=Array.from(Q.querySelectorAll("tbody tr, tr")).map(oe=>oe.cells&&oe.cells[0])),se=se.filter(Boolean),se.length<1)return false;let ue=E.toLowerCase();return se.every(oe=>(oe.textContent||"").trim().toLowerCase().startsWith(ue))},j=false;if(E.length<S(E,3)?j=!H():(P.length===1&&(d.has(F)||q.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(E))&&(j=true),!j)continue;let X=getNearbyContext(v);V(v,"textContent",E,"weak_heading","2.4.6",{currentText:E,tag:v.tagName.toLowerCase(),nearbyHeading:X.nearbyHeading,parentTag:X.parentTag,parentRole:X.parentRole});}let z=document.querySelectorAll("iframe");for(let T=0;T<z.length&&!(D.length>=R);T++){let v=z[T];if(!v||isWidget(v)||B(v))continue;let E=getComputedStyle(v);if(v.getClientRects().length===0||E.visibility==="hidden"||E.visibility==="collapse"||(v.getAttribute("src")||"").trim().toLowerCase().indexOf("javascript:")===0)continue;let F=(v.getAttribute("title")||"").trim();if(!F)continue;let P=F.toLowerCase(),H=false;if((F.length<S(F,3)||I.test(P)||d.has(P))&&(H=true),!H)continue;let j=(v.getAttribute("src")||"").slice(0,120),X=getNearbyContext(v);V(v,"title",F,"weak_iframe_title","4.1.2",{currentTitle:F,src:j,nearbyHeading:X.nearbyHeading,parentTag:X.parentTag});}if(D.length<R){let T=document.querySelector("head > title, title"),v=(document.title||"").trim();if(T&&v){let E=v.toLowerCase(),F=false;(v.length<S(v,5)||L.test(E)||/^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:(T.outerHTML||"").slice(0,300)});}}let W=document.querySelectorAll("svg");for(let T=0;T<W.length&&!(D.length>=R);T++){let v=W[T];if(!v||isWidget(v)||B(v)||v.getAttribute("role")==="presentation"||v.getAttribute("role")==="none"||!isVisible(v))continue;let E=v.querySelector("title"),F=E?(E.textContent||"").trim():"",P=(v.getAttribute("aria-label")||"").trim(),H=P||F;if(!H)continue;let j=H.toLowerCase(),X=false;if((H.length<S(H,3)||d.has(j)||/^(icon|svg|image|graphic|logo)$/i.test(H))&&(X=true),!X)continue;let Q=v.closest('a, button, [role="button"], [role="link"]'),te=getNearbyContext(v);V(v,P?"aria-label":"title",H,"weak_svg_name","1.1.1",{currentName:H,svgClasses:v.getAttribute("class")||"",parentTag:Q?Q.tagName.toLowerCase():te.parentTag,parentHref:Q&&Q.getAttribute("href")||"",nearbyHeading:te.nearbyHeading});}return D},Eg={name:"weakNames",cap:50,async detect(d){return d.evaluate(SM)}};var kM=()=>{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 S=["yes","no","device-width","device-height"],R=b.match(/user-scalable\s*=\s*([a-z][a-z-]*)/);R&&S.indexOf(R[1])<0&&(A=true,x.push("user-scalable="+R[1]+" (invalid, parsed as 0)"));let D=b.match(/maximum-scale\s*=\s*([a-z][a-z-]*)/);D&&S.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},Cg={name:"zoomUnlock",cap:5,async detect(d){return d.evaluate(kM)}};var TM=()=>{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 B=p.firstChild;B;B=B.nextSibling)B.nodeType===3&&(A+=B.nodeValue);if(!A.replace(/\s+/g,"").length)continue;let x=getComputedStyle(p);if(x.display==="none"||x.visibility==="hidden"||x.display==="contents")continue;let S=x.overflowX,R=x.overflowY,D=S==="hidden"||S==="clip",w=R==="hidden"||R==="clip";if(!D&&!w||p.closest('[aria-hidden="true"],[hidden],[inert]'))continue;let C=p.clientWidth,_=p.clientHeight;if(_<=1||C<=1)continue;let L=x.webkitLineClamp||x.getPropertyValue("-webkit-line-clamp");if(L&&L!=="none")continue;let I="";if(w&&p.scrollHeight>_+2?I="height "+_+"px < content "+p.scrollHeight+"px":D&&x.textOverflow!=="ellipsis"&&p.scrollWidth>C+2&&(I="width "+C+"px < content "+p.scrollWidth+"px"),!I){let B=parseFloat(x.fontSize);if(!(B>0))continue;let V=p.style.getPropertyValue("font-size"),O=p.style.getPropertyPriority("font-size");p.style.setProperty("font-size",B*2+"px","important");let z=p.clientHeight,W=p.clientWidth;w&&z>1&&p.scrollHeight>z+2?I="at 200%: height "+z+"px < content "+p.scrollHeight+"px":D&&x.textOverflow!=="ellipsis"&&W>1&&p.scrollWidth>W+2&&(I="at 200%: width "+W+"px < content "+p.scrollWidth+"px"),V?p.style.setProperty("font-size",V,O):p.style.removeProperty("font-size");}if(!I)continue;let q=typeof uniqueSel=="function"?uniqueSel(p):b;f.push({selector:q,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},Sg={name:"textClip",cap:10,async detect(d){return d.evaluate(TM)}};var RM=()=>{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),S=A.position;if(x>=3){let R=b.getBoundingClientRect();if(R.width>0&&R.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(S==="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: ${S}, 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},kg={name:"meaningfulSequence",async detect(d){return d.evaluate(RM)}};var Tg={name:"sensoryCharacteristics",async detect(d){let{instructionalTexts:f,controlLabels:h,navCount:m,labelTexts:p}=await d.evaluate(()=>{let x=[],S=document.querySelectorAll('p, li, td, label, span, div, a, button, h1, h2, h3, h4, h5, h6, figcaption, [role="alert"], [role="status"]'),R=Math.min(S.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,_=[];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&&_.push(I);});for(let L=0;L<R;L++){let I=S[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 q=I.textContent?.trim()||"";q.length<15||q.length>300||/click|tap|press|select|choose|find|look|see|drag|scroll|hover|go to|navigate/i.test(q)&&x.push({text:q,selector:typeof uniqueSel=="function"?uniqueSel(I):I.tagName.toLowerCase()});}return {instructionalTexts:x.slice(0,20),controlLabels:D,navCount:C,labelTexts:_}});if(f.length===0)return [];let b=[],A=x=>{let S=(x.toLowerCase().match(/\b(navigation|menu)\b/)||[])[1];return S?m===1?true:p.some(R=>R.indexOf(S)!==-1):false};for(let{text:x,selector:S}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),_=/\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),q=(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],B=!!q&&h.some(V=>V.indexOf(q.toLowerCase())!==-1);if(!(I||B)&&(D||C||_||L)){let V=D?"shape":C?"position":_?"color":"size";b.push({selector:S,attribute:"data-sensory-review",currentValue:x.slice(0,100),issueType:"sensory_characteristic",wcag:"1.3.3",context:`Instruction relies on ${V} 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 FM=()=>{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 R=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||R)||/(?:^|\/)(?:img|dsc|dscn|dcim|pict)[-_]?\d|photo|gallery/i.test(b)&&!D)continue;let C=h.closest("a[href]"),_=(()=>{if(!C)return false;let W=C.getAttribute("href")||"";if(W==="/"||W==="")return true;try{let T=new URL(C.href,location.href);return T.origin!==location.origin?!1:!!(T.pathname.replace(/\/+$/,"")===""||/^\/(?:index|home|default)(?:\.\w+)?$/i.test(T.pathname)||/^\/[a-z]{2}(?:-[a-z]{2})?(?:\.\w+)?$/i.test(T.pathname))}catch{return false}})();if(_&&(C.textContent||"").trim().length===0)continue;let I="";if(C&&!_&&(C.textContent||"").trim().length===0)try{let W=new URL(C.href,location.href),T=A.trim().split(/\s+/).filter(Boolean);if(W.origin!==location.origin&&/^https?:$/.test(W.protocol)&&T.length>0&&T.length<=4&&A.trim().length<=40){let v=j=>j.toLowerCase().normalize("NFKD").replace(/[^\p{L}\p{N}]/gu,""),E=v(A),F=W.hostname.toLowerCase().split(".").filter(j=>j&&j!=="www"),P=(F.length>1?F.slice(0,-1):F).map(v).filter(Boolean);I=E.length>=3&&(E===v(F.join(""))||E===P.join("")||P.some(j=>E===j||j.length>=5&&E.startsWith(j)))?"exempt":"review";}}catch{}let q=!!h.closest('header, [role="banner"], footer, [role="contentinfo"]'),B=h.height>0&&h.height<=120,V=q&&B,O=/logo|brand|wordmark|hero|banner-?(?:img|image)?|footer|marketing|promo|cover|screenshot|dashboard/i,z=V||O.test(b)||O.test(h.className)||O.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,...z||I?{needsReview:true,reviewReason:V?"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},Rg={name:"imagesOfText",async detect(d){return d.evaluate(FM)}};var Fg={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=[],S=document.querySelectorAll("body *"),R=Math.min(S.length,500);for(let D=0;D<R;D++){let w=S[D];if(!w.offsetParent)continue;let C=w.tagName.toLowerCase();if(C==="script"||C==="style"||C==="noscript")continue;let _=w.getBoundingClientRect();_.right>A+5&&_.width>A*1.1&&x.push({selector:typeof uniqueSel=="function"?uniqueSel(w):C,attribute:"style",currentValue:`${Math.round(_.width)}px wide at ${A}px viewport`,issueType:"reflow_overflow",wcag:"1.4.10",context:`Element is ${Math.round(_.width)}px wide and overflows the ${A}px viewport by ${Math.round(_.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 IM=()=>{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 _=m.parentElement?.parentElement||null,L=0;_&&!x&&L<3;_=_.parentElement,L++)x=Array.from(_.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 S=m.querySelectorAll("track"),R=Array.from(S).find(_=>_.kind==="captions"||_.kind==="subtitles"),D=Array.from(S).find(_=>_.kind==="descriptions");m.src||m.querySelector("source")?.src||"";let C=typeof uniqueSel=="function"?uniqueSel(m):"video";R||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},Ig={name:"mediaAlternatives",cap:50,async detect(d){return (await d.evaluate(IM)).slice(0,50)}};var MM=()=>{let d=[],f=document.querySelector('meta[http-equiv="refresh"]');if(f){let T=f.getAttribute("content")||"",v=parseInt(T,10);!isNaN(v)&&v>0&&v<72e3&&d.push({selector:`meta[http-equiv="refresh"][content*="${T.trim().slice(0,20)}"]`,attribute:"data-auto-refresh",currentValue:T,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 T of h){let v=T.getAttribute("accesskey")||"";if(v.length===1){let E=typeof uniqueSel=="function"?uniqueSel(T):T.tagName.toLowerCase();d.push({selector:E,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 T of m){let v=T.hasAttribute("onchange"),E=T.getAttribute("onchange")||"";if(v&&/submit|location|href|navigate|window\./i.test(E)){let F=typeof uniqueSel=="function"?uniqueSel(T):"select";d.push({selector:F,attribute:"onchange",currentValue:E.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 T of p)if(!(T.hasAttribute("onclick")||T.hasAttribute("onkeydown")||T.hasAttribute("onkeyup"))){let E=typeof uniqueSel=="function"?uniqueSel(T):T.tagName.toLowerCase();d.push({selector:E,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 T of b){let v=T.hasAttribute("onmouseup"),E=T.tagName.toLowerCase();if(!v&&E!=="a"&&E!=="button"&&E!=="input"){let F=typeof uniqueSel=="function"?uniqueSel(T):E;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,S=/addEventListener\(\s*['"](?:click|keydown|keyup|input|change|pointerup|touchend)['"]/i,R=/(?: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 T=document.querySelectorAll('label, button, [role="button"], [role="switch"], input[type="button"], input[type="checkbox"]');for(let v of Array.from(T)){let E=(v.textContent||"")+" "+(v.getAttribute("aria-label")||"")+" "+(v.getAttribute("value")||"");if(R.test(E))return true}return false}function w(T){return !A.test(T.replace(x,""))||S.test(T)?true:D()}let C=document.querySelectorAll("script:not([src]):not([data-wa-injected])");for(let T of C){let v=T.textContent||"";if(A.test(v)&&!w(v)){let E=[],F=T;for(;F&&F!==document.body&&F!==document.documentElement;){let j=F.parentElement,X=F.tagName.toLowerCase(),Q=j?Array.from(j.children).filter(se=>se.tagName===F.tagName):[],te=Q.indexOf(F)+1;E.unshift(te>1||Q.length>1?X+":nth-of-type("+te+")":X),F=j;}let P=F===document.body?"body":F===document.documentElement?"html":"",H=(P?P+" > ":"")+E.join(" > ");d.push({selector:H||"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 _=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,q=/card|payment/i,B=/\b(?:pay|buy|purchase|donate|subscribe and pay|place (?:your |my )?order|complete (?:order|purchase|payment)|confirm (?:order|purchase|payment)|check ?out)\b/i,V=/\b(?:delete|remove|close|deactivate|cancel|terminate)\b[^.]{0,30}\b(?:account|profile|subscription|membership|data|records?)\b/i,O=/\b(?:e-?)?sign\b(?![\s\u00a0-]*(?:up|in|on|out)\b)|\bagree and (?:submit|continue|sign)\b/i,z=/\b(?:save|update|change)\b/i,W=/e-?mail|name|phone|tel\b|zip|postal|company|organi[sz]ation|country/i;for(let T of _){let v=Array.from(T.querySelectorAll(L)),E=He=>[He.getAttribute("name"),He.getAttribute("id"),He.getAttribute("autocomplete"),He.getAttribute("placeholder"),He.getAttribute("aria-label")].join(" "),F=Array.from(T.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(E(He)))||Array.from(T.querySelectorAll("iframe")).some(He=>q.test((He.getAttribute("title")||"")+" "+(He.getAttribute("name")||""))),H=v.some(He=>/signature/i.test(E(He))),j=P||B.test(F),X=V.test(F),Q=H||O.test(F),te=v.length>0&&v.some(He=>(He.getAttribute("type")||"").toLowerCase()==="email"||/e-?mail/i.test(E(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"?W.test(E(He)+" "+(He.closest("label")?.textContent||"")):false}),se=(T.textContent||"").toLowerCase(),ue=/payment|credit card|billing|purchase|\border\b|checkout|bank|account number/i.test(se),oe=/\bagree|terms|contract|binding|signature|consent|waiver/i.test(se),ie=/delete.*account|remove.*data|cancel.*account/i.test(se),Ce=j||X||Q,be=te&&(z.test(F)||ie),Ee=!Ce&&(!te&&(ue||oe||ie)||be);if(!Ce&&!Ee)continue;let we=!!T.querySelector('[type="checkbox"][required], [class*="confirm"], [id*="confirm"], [name*="confirm"]'),Se=!!T.querySelector('[class*="review"], [class*="summary"], [id*="review"]');if(we||Se)continue;let bt=typeof uniqueSel=="function"?uniqueSel(T):"form",kt=Ce?j?"financial":X?"data-deletion":"legal":be?ie?"data-deletion":"data-modification":ue?"financial":oe?"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,...Ee?{needsReview:true,reviewReason:be&&ie?"form text is about deleting an account or data and its submit is generic \u2014 confirm whether submitting it deletes stored user data":be?"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},Mg={name:"timingAndInput",async detect(d){return d.evaluate(MM)}};var LM=()=>{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},Lg={name:"navigationAndWayfinding",async detect(d){return d.evaluate(LM)}};var Pg={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,S=[];for(let R=0;R<p;R++){let D=await d.evaluate(w=>{let C=window.innerWidth,_=window.innerHeight,L=3,I=3,q=[];for(let B=0;B<I;B++)for(let V=0;V<L;V++){let O=Math.floor((V+.5)*(C/L)),z=Math.floor((B+.5)*(_/I)),W=document.elementFromPoint(O,z);if(!W){q.push(0);continue}let v=getComputedStyle(W).backgroundColor||"rgba(0,0,0,0)",E=typeof parseCssColor=="function"?parseCssColor(v):null;if(!E){q.push(0);continue}let F=.2126*E[0]+.7152*E[1]+.0722*E[2];q.push(F);}return q},A);S.push(D),R<p-1&&await new Promise(w=>setTimeout(w,b));}m&&await d.evaluate(()=>{let R=document.querySelectorAll("*");for(let D of R)D.style.setProperty("animation-play-state","paused","important"),D.style.setProperty("transition","none","important");});for(let R=0;R<A;R++){let D=0,w=S[0][R],C=null;for(let I=1;I<p;I++){let q=S[I][R];if(Math.abs(q-w)>25){let V=q>w?"up":"down";C&&V!==C&&D++,C=V;}w=q;}let _=p*b/1e3,L=D/_;if(L>=x){let I=R%3,q=Math.floor(R/3);f.push({selector:"body",attribute:"data-flash-detected",currentValue:`${L.toFixed(1)} flashes/sec in region (${I},${q})`,issueType:"flashing_content",wcag:"2.3.1",context:`Content flashes ${L.toFixed(1)} times/second in screen region (row ${q}, 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 Og={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 S=x.cssText||"";/animation|transition|@keyframes/i.test(S)&&!/prefers-reduced-motion/.test(S)&&(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 PM=()=>{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 E=parseFloat((v||"").trim());return Number.isFinite(E)&&E>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),S=v=>{if((v.getAttribute("aria-roledescription")||"").trim().toLowerCase()==="carousel")return true;let E=typeof v.className=="string"?v.className:v.getAttribute("class")||"";return x(E).some(F=>A.test(F))},R=/^(autoplay|autoPlay|auto_play|autoStart|autostart|auto_start)$/,D=v=>{let E=v.trim();if(!E.startsWith("{"))return "";let F;try{F=JSON.parse(E);}catch{try{F=JSON.parse(E.replace(/'/g,'"'));}catch{return ""}}if(!F||typeof F!="object")return "";for(let P of Object.keys(F)){if(!R.test(P))continue;let H=F[P];if(H===true||typeof H=="number"&&H>0||typeof H=="string"&&p(H)&&H.trim()!==""||H&&typeof H=="object")return `${P}: ${JSON.stringify(H).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 H=v.getAttribute(P)||"";if((H.trim()===""||p(H))&&(S(v)||z(v)>=2))return {attr:P,value:H}}let E=["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"&&!E)return {attr:P,value:"carousel"};for(let P of ["data-interval","data-bs-interval"]){let H=v.getAttribute(P);if(b(H)&&S(v))return {attr:P,value:H||""}}let F=S(v);for(let P of Array.from(v.attributes)){if(!P.name.startsWith("data-")||!F&&!x(P.name.slice(5)).some(j=>A.test(j)))continue;let H=D(P.value);if(H)return {attr:P.name,value:H}}if((v.getAttribute("aria-roledescription")||"").trim().toLowerCase()==="carousel"){let P=/autoplay["']?\s*[:=]\s*["']?(false|0|off|no)\b/i;for(let H of Array.from(v.attributes)){if(/(^|-)autoplay$/i.test(H.name)&&(H.value.trim()===""||p(H.value)))return {attr:H.name,value:H.value.slice(0,60)};if(/autoplay/i.test(H.value)&&!P.test(H.value))return {attr:H.name,value:H.value.slice(0,60)}}}return null},C=/^(pause|stop|play|playpause|resume)$/i,_=/\b(pause|stop|play|resume)\b/i,L=v=>{let E=[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+/))E.push(document.getElementById(P)?.textContent||"");for(let P of Array.from(v.querySelectorAll("img[alt]")))E.push(P.getAttribute("alt")||"");return E.join(" ")},I=v=>{let E=v.getAttribute("class")||"";return x(E).some(F=>C.test(F))?true:v.matches('a, button, input, [role="button"], [role="switch"], [role="checkbox"], [tabindex]')?_.test(L(v)):false},q=/^(section|article|main|nav|aside|header|footer|form|dialog)$/i,B=v=>S(v)||w(v)!==null||Array.from(v.querySelectorAll("*")).some(E=>S(E)||w(E)!==null),V=v=>{if(v.querySelector("[aria-pressed]"))return true;let E=[v];for(let H of Array.from(v.parentElement?.children||[]))H===v||q.test(H.tagName)||B(H)||E.push(H);let F=v.getAttribute("id"),P=H=>{let j=[...(H.getAttribute("aria-controls")||"").split(/\s+/),(H.getAttribute("data-bs-target")||H.getAttribute("data-target")||"").replace(/^#/,"")].filter(Boolean);return j.length>0&&!j.includes(F||"")};for(let H of E){if(H!==v&&I(H)&&!P(H))return true;for(let j of Array.from(H.querySelectorAll("*")))if(I(j)&&!P(j))return true}if(F){let H=typeof CSS<"u"&&CSS.escape?CSS.escape(F):F.replace(/["\\]/g,"\\$&");for(let j of Array.from(document.querySelectorAll(`[aria-controls~="${H}"], [data-target="#${H}"], [data-bs-target="#${H}"]`)))if(I(j))return true}return false},O=/^(slide|cell)$/i,z=v=>{let E=j=>x(j.getAttribute("class")||"").some(X=>O.test(X))&&!/(^|[\s_-])cloned?([\s_-]|$)/i.test(j.getAttribute("class")||""),F=Array.from(v.querySelectorAll("[class]")).filter(E),P=F.filter(j=>!F.some(X=>X!==j&&X.contains(j)));if(!P.length)return 0;let H=P.length;for(let j of P){let X=Array.from(j.parentElement?.children||[]).filter(Q=>Q.tagName===j.tagName&&!/(^|[\s_-])cloned?([\s_-]|$)/i.test(Q.getAttribute("class")||""));H=Math.max(H,X.length);}return H},W=new Set,T=(v,E)=>{if(h.length>=10||W.has(v)||(W.add(v),v.closest(d))||v.closest('[aria-hidden="true"], [hidden], template, noscript')||typeof isVisible=="function"&&!isVisible(v)||z(v)===1||V(v))return;let F=typeof uniqueSel=="function"?uniqueSel(v):v.tagName.toLowerCase();h.push({selector:F,attribute:E.attr,currentValue:E.value.slice(0,100),issueType:"carousel_autoplay_no_pause",wcag:"2.2.2",context:`slider markup declares autoplay (${E.attr}="${E.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;T(F,{attr:"data-swiper-autoplay",value:v.getAttribute("data-swiper-autoplay")||""});continue}let E=w(v);E&&T(v,E);}return h},Ng={name:"carouselAutoplay",cap:10,async detect(d){return d.evaluate(PM)}};var Wg=[Eg,gg,Ag,Vh,sg,ig,Wh,bg,Kh,_g,Zh,wg,$h,hg,lg,Jh,fg,rg,mg,ug,Cg,Sg,dg,Gh,Uh,cg,yg,Dg,Xh,xg,jh,pg,kg,Tg,Rg,Fg,Ig,Mg,Lg,Pg,Og,Ng],iL=[Hh,zh,Yh,vg];function Xg(d,f,h){d?.push({tool:f,kind:"engine-failed",detail:`detector threw, its findings are absent: ${h?.message??String(h)}`});}async function zu(d,f,h,m){let p=f??[],b=[];try{let{detectPlatform:V}=await Promise.resolve().then(()=>($u(),Vu));b=await V(d);}catch{}try{let{UNIQUE_SELECTOR_JS:V,IS_VISIBLE_JS:O,ACCESSIBLE_NAME_JS:z,WIDGET_SKIP_JS:W,IS_HIDDEN_FROM_AT_JS:T,IS_TRACKING_PIXEL_JS:v,NEARBY_CONTEXT_JS:E}=await Promise.resolve().then(()=>(Hg(),Bg)),{ICON_LABELS_JS:F}=await Promise.resolve().then(()=>($g(),Vg)),{COLOR_MATH_JS:P}=await Promise.resolve().then(()=>(zg(),jg)),j=`if(typeof __name==='undefined'){var __name=function(t,v){return t};var __defProp=Object.defineProperty;}
435
435
  `+[V,O,z,W,T,v,E,F,P].join(`
436
- `),{inject:X}=await Promise.resolve().then(()=>(Vr(),bn));try{await X(d,{tool:"detector-helpers",content:j});}catch{await d.evaluate(`(0,eval)(${JSON.stringify(j)})`);}}catch(V){console.warn("[webability] helper injection failed:",V.message),(h??[]).push("color:kernel-injection-failed");}let A=[],x="";try{let{applyPlatformTemplates:V}=await Promise.resolve().then(()=>($u(),Vu)),O=b;x=O.filter(z=>z!=="universal"&&z!=="universal_iframe").join(", "),A=await V(d,O);}catch{}let{guardDetectorState:S}=await Promise.resolve().then(()=>(Vr(),bn)),R=globalThis.process?.env?.WA_STRICT_STATE==="1",D={strict:R,bugs:m?.internalBugs},w=await S(d,"detectors:parallel",h??[],()=>Promise.allSettled((m?.experimental?[...Wg,...iL]:Wg).map(async V=>{try{let O=await V.detect(d);return V.cap&&O.length>=V.cap&&p.push({detector:V.name,cap:V.cap}),O}catch(O){return Xg(m?.internalBugs,V.name,O),[]}})),D),C=[];m?.skipFocusMutating&&(h??[]).push("focus:mutating-detectors-skipped (live-tab scan; focus visibility and focus obscured were not checked)");let _=[...m?.skipFocusMutating?[]:[tg,Qh],...m?.extraSerialDetectors??[]];for(let V of _){let O=[];try{O=await S(d,V.name,h??[],()=>V.detect(d).catch(z=>(Xg(m?.internalBugs,V.name,z),[])),D);}catch(z){if(R)throw z}try{V.cap&&O.length>=V.cap&&p.push({detector:V.name,cap:V.cap}),C=C.concat(O);}catch{}}let L=[...w.flatMap(V=>V.status==="fulfilled"?V.value:[]),...C];if(x)for(let V of L)V.needsAI&&(V.context=Bh(V.context,x));let I=[...A,...L],q=lL(I),B=["wp-ada-compliance","webability-widget","webability-a11y","asw-","userway","acsb","audioeye","equallyai"];return q.filter(V=>{let O=V.selector.toLowerCase();return O.trim()?!B.some(z=>O.includes(z)):false})}async function sL(d){try{return await d.evaluate(()=>{let f=getComputedStyle(document.documentElement),h={};for(let S of f)S.startsWith("--")&&/color|bg|background|text|primary|secondary|accent/i.test(S)&&(h[S]=f.getPropertyValue(S).trim());let m={},p={},b=document.querySelectorAll("body *:not(script):not(style):not(noscript)"),A=Math.min(b.length,500);for(let S=0;S<A;S++){let R=getComputedStyle(b[S]);if(R.display==="none"||R.visibility==="hidden")continue;let D=R.backgroundColor,w=R.color;D&&D!=="rgba(0, 0, 0, 0)"&&(m[D]=(m[D]||0)+1),w&&(p[w]=(p[w]||0)+1);}let x=S=>Object.entries(S).sort((R,D)=>D[1]-R[1]).slice(0,8).map(([R,D])=>({color:R,count:D}));return {cssVars:h,topBgColors:x(m),topTextColors:x(p)}})}catch{return {cssVars:{},topBgColors:[],topTextColors:[]}}}function lL(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.2";var Gu=["wcag2a","wcag2aa","wcag21aa","wcag22aa"];function Uu(d){return d.includes("wcag21aa")||d.includes("wcag22aa")||d.includes("wcag134")?{"css-orientation-lock":{enabled:true}}:{}}function Yg(d,f){return f==="AAA"&&!d.includes("wcag2aaa")?[...d,"wcag2aaa"]:d}var es={"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 Kg(d){return es[d]}var mo={A:1,AA:2,AAA:3};function Wu(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=Kg(m);p&&(!h||mo[p]<mo[h])&&(h=p);}return h}function Ln(d,f="AA"){let h=mo[f]??mo.AA;return d.filter(m=>{let p=Wu(m);return !!p&&mo[p]<=h})}var uL=new Set(["new_window_link","external_link_warning","download_link_warning"]);function Zg(d){let f=uL.has(d.issueType)?"minor":d.needsAI?"serious":"moderate",h=d.attribute==="style",m=d.attribute.startsWith("data-"),p=h&&d.fixValue?cL(d.fixValue):d.fixValue;return {id:`wa-${d.issueType}-${ho(d.selector)}`,source:"webability",type:d.issueType,wcag:d.wcag,level:Wu({wcag:d.wcag})??"AA",impact:f,message:dL(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 cL(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 dL(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 oa(d){return Array.isArray(d)?d.flat(1/0).filter(h=>typeof h=="string").join(" >>> "):typeof d=="string"?d:""}function ho(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 Xu(d){return d==="critical"||d==="serious"||d==="moderate"||d==="minor"?d:"moderate"}function Ju(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 ts(d){let f=/^wcag(\d)(\d)(\d{1,2})$/.exec(d);return f?`${f[1]}.${f[2]}.${f[3]}`:""}function Yu(d){for(let f of d){let h=ts(f);if(h)return h}return ""}function Ku(d){return d.includes("wcag2aaa")?"AAA":d.includes("wcag2aa")||d.includes("wcag21aa")||d.includes("wcag22aa")?"AA":"A"}Qu();async function ec(d,f){return Zu("axe",d,()=>fL(d,f))}async function fL(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:Uu(f)}).withTags(f).analyze()}catch{return pL(d,f)}}async function pL(d,f){let h=await Promise.resolve().then(()=>Yi(vo())),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,S)=>{let R=window;if(!R.axe)return S(new Error("axe-core not loaded"));R.axe.run(document,{runOnly:{type:"tag",values:b},rules:A,resultTypes:["violations","incomplete"]}).then(x).catch(S);}),{wcagTags:f,rules:Uu(f)})}function tc(d){let f=[],h=[];for(let m of d)m.confidence==="needs_review"||hL(m)?h.push(m):f.push(mL(m));return {verdicts:f,undecided:h}}function mL(d){if(d.confidence===void 0&&d.reviewReason===void 0)return d;let{confidence:f,reviewReason:h,...m}=d;return m}function hL(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")&&gL(m))return "background uses gradient or image";if(f==="image_of_text"||h==="1.4.5"){let b=rv(m,"src").toLowerCase();b.startsWith("data:")&&(b=b.split(",")[0]);let A=rv(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 gL(d){return /background(-image)?\s*:\s*(?:linear-gradient|radial-gradient|conic-gradient|url\()/i.test(d)}function rv(d,f){let h=new RegExp(`\\b${f}\\s*=\\s*"([^"]*)"`,"i"),m=d.match(h);return m?m[1]:""}Vr();var nv=120,av=3,ov=120,iv=1200,sv=300,lv=2e5,uv=8e3,vL=new Set(["bgImage","bgGradient","bgOverlap","elmPartiallyObscured","elmPartiallyObscuring"]),bL="*,*::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 yL(d){let{selectors:f,maxBoxes:h,maxW:m,maxH:p,maxArea:b,fgBySelector:A}=d,x=document.documentElement.scrollWidth,S=document.documentElement.scrollHeight,R=document.createElement("canvas");R.width=R.height=1;let D=R.getContext("2d",{willReadFrequently:true}),w=B=>{try{D.clearRect(0,0,1,1),D.fillStyle="#000",D.fillStyle=B,D.fillRect(0,0,1,1);let V=D.getImageData(0,0,1,1).data;return [V[0],V[1],V[2],V[3]]}catch{return null}},C={},_=document.querySelectorAll("video,canvas,iframe,embed,object");if(_.length>200){for(let B of f)C[B]=null;return C}let L=Array.from(_).map(B=>B.getBoundingClientRect()),I=window.scrollX,q=window.scrollY;for(let B of f){C[B]=null;let V=null;try{V=document.querySelector(B);}catch{continue}if(!V)continue;let O=getComputedStyle(V);if(O.visibility!=="visible"||O.display==="none"||O.webkitBackgroundClip==="text"||O.backgroundClip==="text")continue;let z=false,W=0;for(let oe=V;oe;oe=oe.parentElement){if(++W>64){z=true;break}let ie=getComputedStyle(oe);parseFloat(ie.opacity)<1&&(z=true),(ie.mixBlendMode!=="normal"||ie.filter!=="none")&&(z=true);}if(z)continue;let T=w(O.color);if(!T||T[3]<255)continue;let v=parseFloat(O.fontSize),E=parseInt(O.fontWeight,10)>=700,F=v>=24||E&&v>=18.66,P=[],H=V.getBoundingClientRect();if(H.height>p*h||H.width>m*2)continue;let j=document.createTreeWalker(V,NodeFilter.SHOW_TEXT),X,Q=0,te=false;for(;!te&&(X=j.nextNode());){if(++Q>50){te=true;break}if(X.parentElement!==V)continue;let oe=X.textContent||"";if(oe.length>2e3){te=true;break}if(!oe.trim())continue;let ie=document.createRange();ie.selectNodeContents(X);let Ce=ie.getClientRects();if(Ce.length>h){te=true;break}for(let be=0;be<Ce.length;be++){let Ee=Ce[be];if(!(Ee.width<2||Ee.height<2)&&(P.push({x:Math.round(Ee.left+I),y:Math.round(Ee.top+q),w:Math.max(1,Math.round(Ee.width)),h:Math.max(1,Math.round(Ee.height))}),P.length>h)){te=true;break}}}if(te||P.length===0||P.length>h||P.some(oe=>oe.w>m||oe.h>p||oe.w*oe.h>b||oe.x<0||oe.y<0||oe.x+oe.w>x||oe.y+oe.h>S)||P.some(oe=>L.some(ie=>oe.x<ie.right+I&&oe.x+oe.w>ie.left+I&&oe.y<ie.bottom+q&&oe.y+oe.h>ie.top+q)))continue;let ue=A[B];C[B]={fg:ue||`rgb(${T[0]},${T[1]},${T[2]})`,threshold:F?3:4.5,boxes:P};}return C}async function wL(d){let{b64:f,fg:h}=d,m=atob(f),p=new Uint8Array(m.length);for(let O=0;O<m.length;O++)p[O]=m.charCodeAt(O);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 S=x.getImageData(0,0,A.width,A.height).data,R=O=>{let z=O/255;return z<=.03928?z/12.92:Math.pow((z+.055)/1.055,2.4)},D=(O,z,W)=>.2126*R(O)+.7152*R(z)+.0722*R(W),w=h.match(/\d+/g).map(Number),C=D(w[0],w[1],w[2]),_=Math.max(1,Math.floor(Math.sqrt(A.width*A.height/1500))),L=0,I=1/0,q="",B="",V=0;for(let O=0;O<A.height;O+=_)for(let z=0;z<A.width;z+=_){let W=(O*A.width+z)*4;if(S[W+3]<255)continue;let T=D(S[W],S[W+1],S[W+2]),v=Math.max(C,T),E=Math.min(C,T),F=(v+.05)/(E+.05);F>L&&(L=F,B=`rgb(${S[W]},${S[W+1]},${S[W+2]})`),F<I&&(I=F,q=`rgb(${S[W]},${S[W+1]},${S[W+2]})`),V++;}return V===0?null:{best:L,worst:I,worstBg:q,bestBg:B}}var rs=class extends Error{};function wr(d,f){let h=f-Date.now();if(h<=0)return d.catch(()=>{}),Promise.reject(new rs("pixel pass deadline"));let m,p=new Promise((b,A)=>{m=setTimeout(()=>A(new rs("pixel pass deadline")),h);});return Promise.race([d,p]).finally(()=>clearTimeout(m))}function xL(d){let f=(d??"").trim(),h=f.match(/^#([0-9a-f]{3})$/i);if(h)return `rgb(${[...h[1]].map(m=>parseInt(m+m,16)).join(",")})`;if(h=f.match(/^#([0-9a-f]{6})$/i),h)return `rgb(${[0,2,4].map(m=>parseInt(h[1].slice(m,m+2),16)).join(",")})`;if(h=f.match(/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i),h&&[h[1],h[2],h[3]].every(m=>Number(m)<=255))return `rgb(${Number(h[1])},${Number(h[2])},${Number(h[3])})`}function ns(d){return d.source!=="axe-core"&&d.type==="contrast_insufficient"?d.fix?.currentValue:void 0}async function AL(d,f){try{return await d.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),await d.evaluate(h=>{let m=new Map;return h.map(p=>{try{let b=document.querySelector(p);return b?(m.has(b)||m.set(b,m.size),m.get(b)):-1}catch{return -1}})},f)}catch{return f.map(()=>-1)}}async function rc(d,f){let h=d.screenshot;if(typeof h!="function"||f.length===0)return [];let m={},p=[];for(let R of f){let D=typeof R=="string"?R:R.selector;p.push(D);let w=typeof R=="string"?void 0:xL(R.fg);w&&!(D in m)&&(m[D]=w);}let b=Array.from(new Set(p)).slice(0,nv),A=[],x=false,S=Date.now()+uv;try{await wr(d.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),S);let R=await wr(d.evaluate(yL,{selectors:b,maxBoxes:av,maxW:iv,maxH:sv,maxArea:lv,fgBySelector:m}),S);await wr(Qi(d,{tool:"contrast-pixels",css:bL}),S),x=!0;let D=0;for(let w of b){let C=R[w];if(!C)continue;if(Date.now()>S||D+C.boxes.length>ov)break;let _=0,L=1/0,I="",q="",B=!0;for(let V of C.boxes){D++;let O=await wr(h.call(d,{clip:{x:V.x,y:V.y,width:V.w,height:V.h},fullPage:!0,type:"png",animations:"disabled"}),S),z=globalThis.Buffer,W=z?z.from(O).toString("base64"):"",T=await wr(d.evaluate(wL,{b64:W,fg:C.fg}),S);if(!T){B=!1;break}T.best>_&&(_=T.best,q=T.bestBg),T.worst<L&&(L=T.worst,I=T.worstBg);}B&&A.push({selector:w,fail:_<C.threshold*.97,bestRatio:_,worstRatio:L,...I?{worstBg:I}:{},...q?{bestBg:q}:{},threshold:C.threshold,fg:C.fg});}}catch(R){globalThis.process?.env?.WA_DEBUG_PIXELS&&console.error("pixel judge failed",R);}finally{if(x)try{await Promise.race([d.evaluate(()=>document.querySelectorAll('style[data-wa-injected^="contrast-pixels:"]').forEach(R=>R.remove())),new Promise(R=>setTimeout(R,1e3))]);}catch{}}return A}function DL(d){let{selectors:f,maxBoxes:h,maxW:m,maxH:p,maxArea:b}=d,A=document.documentElement.scrollWidth,x=document.documentElement.scrollHeight,S=window.scrollX,R=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 _=getComputedStyle(C);if(_.visibility!=="visible"||_.display==="none"||!(_.webkitBackgroundClip==="text"||_.backgroundClip==="text"))continue;let L=false,I=0;for(let E=C;E;E=E.parentElement){if(++I>64){L=true;break}let F=getComputedStyle(E);(parseFloat(F.opacity)<1||F.mixBlendMode!=="normal"||F.filter!=="none")&&(L=true);}if(L)continue;let q=parseFloat(_.fontSize),B=parseInt(_.fontWeight,10)>=700,V=q>=24||B&&q>=18.66,O=[],z=document.createTreeWalker(C,NodeFilter.SHOW_TEXT),W,T=0,v=false;for(;!v&&(W=z.nextNode());){if(++T>50){v=true;break}if(!(W.textContent||"").trim())continue;let E=document.createRange();E.selectNodeContents(W);let F=E.getClientRects();for(let P=0;P<F.length;P++){let H=F[P];if(!(H.width<2||H.height<2)&&(O.push({x:Math.round(H.left+S),y:Math.round(H.top+R),w:Math.max(1,Math.round(H.width)),h:Math.max(1,Math.round(H.height))}),O.length>h)){v=true;break}}}v||O.length===0||O.some(E=>E.w>m||E.h>p||E.w*E.h>b||E.x<0||E.y<0||E.x+E.w>A||E.y+E.h>x)||(D[w]={threshold:V?3:4.5,boxes:O});}return D}async function _L(d){let f=async C=>{let _=atob(C),L=new Uint8Array(_.length);for(let V=0;V<_.length;V++)L[V]=_.charCodeAt(V);let I=await createImageBitmap(new Blob([L],{type:"image/png"})),q=document.createElement("canvas");q.width=I.width,q.height=I.height;let B=q.getContext("2d",{willReadFrequently:true});return B.drawImage(I,0,0),{w:q.width,h:q.height,d:B.getImageData(0,0,q.width,q.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 _=C/255;return _<=.03928?_/12.92:Math.pow((_+.055)/1.055,2.4)},b=(C,_,L)=>.2126*p(C)+.7152*p(_)+.0722*p(L),A=h.w,x=h.h,S=new Uint8Array(A*x);for(let C=0;C<A*x;C++){let _=C*4;S[C]=Math.abs(h.d[_]-m.d[_])+Math.abs(h.d[_+1]-m.d[_+1])+Math.abs(h.d[_+2]-m.d[_+2])>48?1:0;}let R=2,D=[];for(let C=R;C<x-R;C++)for(let _=R;_<A-R;_++){let L=C*A+_;if(!S[L])continue;let I=true;for(let O=-R;O<=R&&I;O++)for(let z=-R;z<=R;z++)if(!S[L+O*A+z]){I=false;break}if(!I)continue;let q=L*4,B=b(h.d[q],h.d[q+1],h.d[q+2]),V=b(m.d[q],m.d[q+1],m.d[q+2]);D.push({ratio:(Math.max(B,V)+.05)/(Math.min(B,V)+.05),fg:`rgb(${h.d[q]},${h.d[q+1]},${h.d[q+2]})`,bg:`rgb(${m.d[q]},${m.d[q+1]},${m.d[q+2]})`});}if(D.length<40)return null;D.sort((C,_)=>C.ratio-_.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 EL(d,f){let h=d.screenshot;if(typeof h!="function"||f.length===0)return [];let m=Array.from(new Set(f)).slice(0,nv),p=[],b=false,A=Date.now()+uv;try{await wr(d.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),A);let x=await wr(d.evaluate(DL,{selectors:m,maxBoxes:av,maxW:iv,maxH:sv,maxArea:lv}),A);await wr(Qi(d,{tool:"contrast-gradient-text",css:"[data-wa-gt]{background-image:none!important;background-color:transparent!important}"}),A),b=!0;let S=0;for(let R of m){let D=x[R];if(!D)continue;if(Date.now()>A||S+D.boxes.length*2>ov)break;let w=1/0,C=0,_="",L="",I=!0,q=globalThis.Buffer;for(let B of D.boxes){S+=2;let V={x:B.x,y:B.y,width:B.w,height:B.h},O=await wr(h.call(d,{clip:V,fullPage:!0,type:"png",animations:"disabled"}),A);await wr(d.evaluate(T=>{document.querySelector(T)?.setAttribute("data-wa-gt","1");},R),A);let z;try{z=await wr(h.call(d,{clip:V,fullPage:!0,type:"png",animations:"disabled"}),A);}finally{await d.evaluate(T=>{document.querySelector(T)?.removeAttribute("data-wa-gt");},R).catch(()=>{});}let W=await wr(d.evaluate(_L,{painted:q?q.from(O).toString("base64"):"",backdrop:q?q.from(z).toString("base64"):""}),A);if(!W){I=!1;break}W.worst<w&&(w=W.worst,_=W.worstFg,L=W.worstBg),W.best>C&&(C=W.best);}!I||!isFinite(w)||p.push({selector:R,fail:w<D.threshold*.97,bestRatio:C,worstRatio:w,worstBg:L,threshold:D.threshold,fg:_,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 CL(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 cv(d,f,h,m){let p=f.filter(O=>O.wcag!=="1.4.3"||!O.selector?false:O.source==="axe-core"?vL.has(h.get(O.id)??""):O.type==="contrast_insufficient"&&/gradient or image|gradient-clipped/.test(O.reviewReason??""));if(p.length===0)return [];let b=O=>/gradient-clipped/.test(O.reviewReason??""),A=await AL(d,p.map(O=>O.selector)),x=O=>O.source==="axe-core"?1:0,S=new Map;p.forEach((O,z)=>{if(A[z]<0)return;let W=S.get(A[z]);(!W||x(O)<x(W))&&S.set(A[z],O);});let R=p.filter((O,z)=>A[z]<0||S.get(A[z])===O),D=R.filter(O=>!b(O)),w=D.map(O=>A[p.indexOf(O)]),C=new Map;p.forEach((O,z)=>{let W=ns(O);W&&A[z]>=0&&!C.has(A[z])&&C.set(A[z],W);});let _=[...await rc(d,D.map((O,z)=>({selector:O.selector,fg:ns(O)??C.get(w[z])}))),...await EL(d,R.filter(b).map(O=>O.selector))],L=new Map(_.map(O=>[O.selector,O])),I=(O,z)=>{let W=A[z]>=0?S.get(A[z]):O,T=W?L.get(W.selector):void 0;return T&&T.selector!==O.selector?{...T,selector:O.selector}:T},q=p.map((O,z)=>I(O,z));if(m)for(let O of q)O&&m.set(O.selector,O);globalThis.process?.env?.WA_DEBUG_PIXELS&&console.error(`pixel judge: ${p.length} candidates, ${R.length} elements, ${_.length} measured, ${_.filter(O=>O.fail).length} fail`);let B=[],V=new Set;return p.forEach((O,z)=>{let W=q[z];!W||!W.fail||V.has(O.selector)||(V.add(O.selector),B.push(CL(O,W)));}),B}function SL(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 kL(d,f,h){return "#"+[d,f,h].map(m=>Math.round(m).toString(16).padStart(2,"0")).join("")}function nc(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*nc(d)+.7152*nc(f)+.0722*nc(h)}function ac(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 SL(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:ac(ia(...h),ia(...m))}function sa(d,f,h=4.5){let m=en(d),p=en(f);if(!m||!p)return null;let b=ia(...p),A=ac(ia(...m),b);if(A>=h)return null;let S=ia(...m)>b,R=0,D=1,w=m;for(let L=0;L<20;L++){let I=(R+D)/2,q=S?[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],B=ia(q[0],q[1],q[2]);ac(B,b)>=h?(w=q,D=I):R=I;}let C=kL(w[0],w[1],w[2]),_=Kt(C,f);return {currentColor:d,suggestedColor:C,currentRatio:Math.round(A*100)/100,suggestedRatio:Math.round(_*100)/100,requiredRatio:h,bgColor:f}}var TL=30,RL=10,gv=2e4,FL=30,IL=400*1024,vv="https://openrouter.ai/api/v1",bv="anthropic/claude-haiku-4.5",ic="deepseek/deepseek-v4-flash",dv=400,fv=125,oc=160,ML=2e3,bo=new Map;function LL(){bo.clear();}function PL(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 sc=d=>d.wcag||d.type,pv=(d,f,h)=>`${d}|${f.selector}|${sc(f)}|${PL(h)}`,lc=()=>!!globalThis.process?.env?.WA_DEBUG_JUDGE;function OL(d){let{selectors:f,maxHtml:h}=d,m={elements:{}},p=[],b=q=>/\(\s*prefers-reduced-motion\s*(:\s*reduce\s*)?\)/i.test(q)&&!/^\s*not\b/i.test(q),A=q=>{let B=q.split(",").map(V=>V.trim()).filter(Boolean);return B.length?B.every(V=>{let O=V.match(/^(-?[\d.]+)(ms|s)$/i);return O?parseFloat(O[1])*(O[2].toLowerCase()==="s"?1e3:1)<=10:false}):false},x=(q,B,V)=>{if(!(V>8))for(let O of Array.from(q)){let z=O.media?.mediaText,W=B||typeof z=="string"&&b(z),T=O.style,v=O.selectorText;if(W&&T&&typeof v=="string"){let P=T.getPropertyValue("animation-name").trim(),H=/^none(\s*,\s*none)*$/i.test(P)||A(T.getPropertyValue("animation-duration"))||/^paused/i.test(T.getPropertyValue("animation-play-state").trim()),j=/^none(\s*,\s*none)*$/i.test(T.getPropertyValue("transition-property").trim())||A(T.getPropertyValue("transition-duration"));(H||j)&&p.push({selector:v,anim:H,trans:j});}let E=O.cssRules;E&&E.length&&x(E,W,V+1);let F=O.styleSheet;if(F)try{x(F.cssRules,W||b(O.media?.mediaText||""),V+1);}catch{}}};try{for(let q of Array.from(document.styleSheets))try{x(q.cssRules,b(q.media?.mediaText||""),0);}catch{}}catch{}let S=(q,B)=>{try{return q.matches(B)}catch{return false}},R=q=>q.split(",").map(B=>{let V=B.trim().match(/^(-?[\d.]+)(ms|s)$/i);return V?parseFloat(V[1])*(V[2].toLowerCase()==="s"?1e3:1):0}),D=q=>{let B=q.cloneNode(true);B.querySelectorAll("script, style").forEach(O=>O.remove());let V=(B.textContent||"").replace(/\s+/g," ").trim();if(!V){for(let O of Array.from(q.querySelectorAll("img[alt], [aria-label]")))if(V=(O.getAttribute("alt")||O.getAttribute("aria-label")||"").trim(),V)break}return V},w=q=>{let B=(q.getAttribute("aria-label")||"").trim();if(B)return B;let O=(q.getAttribute("aria-labelledby")||"").split(/\s+/).filter(Boolean).map(T=>{let v=document.getElementById(T);return v?(v.textContent||"").replace(/\s+/g," ").trim():""}).filter(Boolean).join(" ");if(O)return O;let z=D(q);if(z)return z;let W=q instanceof HTMLInputElement&&/^(submit|button|reset|image)$/i.test(q.type)?(q.value||q.alt||"").trim():"";return W||(q.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"])',_=window.scrollX||0,L=window.scrollY||0,I=[];for(let q of f){let B=null;try{B=document.querySelector(q);}catch{}if(!B){m.elements[q]={found:false};continue}let V=I.indexOf(B);V<0&&(V=I.push(B)-1);let O=getComputedStyle(B),z=B.getBoundingClientRect(),W=B.tagName.toLowerCase(),T={found:true,elementKey:V,tag:W,html:(B.outerHTML||"").slice(0,h),rect:{x:z.left+_,y:z.top+L,w:z.width,h:z.height},role:(B.getAttribute("role")||"").toLowerCase(),ariaHidden:B.getAttribute("aria-hidden")==="true"||!!B.closest('[aria-hidden="true"]'),hidden:O.display==="none"||O.visibility==="hidden"||!!B.closest("[hidden]"),cssBackgroundImage:/url\(/i.test(O.backgroundImage||""),reducedMotionHandled:false,nearText:"",fg:O.color,bg:O.backgroundColor,fontSize:parseFloat(O.fontSize)||0,fontWeight:parseInt(O.fontWeight,10)||400};if(W==="img"){let j=B;T.img={src:(j.currentSrc||j.getAttribute("src")||"").slice(0,300),alt:j.getAttribute("alt"),naturalW:j.naturalWidth||0,naturalH:j.naturalHeight||0,attrW:parseInt(j.getAttribute("width")||"0",10)||0,attrH:parseInt(j.getAttribute("height")||"0",10)||0};}if(T.cssBackgroundImage){let j=B.closest(C);j&&(T.control={tag:j.tagName.toLowerCase(),name:w(j).slice(0,120)});}if(!/^(img|video|canvas|iframe|object|embed|svg)$/.test(W)){let j=O.animationName.split(",").some(ue=>ue.trim()&&ue.trim()!=="none")&&R(O.animationDuration).some(ue=>ue>10),X=R(O.transitionDuration).some(ue=>ue>10)&&O.transitionProperty.trim()!=="none",Q=p.filter(ue=>S(B,ue.selector)),te=!j||Q.some(ue=>ue.anim),se=!X||Q.some(ue=>ue.trans);T.reducedMotionHandled=(j||X)&&te&&se;}let v=B.closest('a[href], button, [role="button"], [role="link"]');if(v&&v!==B){let j=v.cloneNode(true);j.querySelectorAll("img, svg").forEach(te=>te.remove());let X=(j.textContent||"").replace(/\s+/g," ").trim(),Q=(v.getAttribute("aria-label")||"").trim();T.parentInteractive={tag:v.tagName.toLowerCase(),text:(X||Q).slice(0,120)};}let E=j=>{let X=j.cloneNode(true);return X.querySelectorAll("script, style").forEach(Q=>Q.remove()),(X.textContent||"").replace(/\s+/g," ").trim()},F=B.matches('a[href], [role="link"]'),P=E(B),H=B.parentElement;if(F&&(H=B.closest("p, li, td, th, dd, dt, figcaption, blockquote")||B.parentElement),H){let j=E(H),X=F&&P?j.indexOf(P):-1,Q=X>120?X-120:0;T.nearText=(Q?"\u2026":"")+j.slice(Q,Q+240);}m.elements[q]=T;}return m}function NL(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 uc(d){return !!d&&d.tag!=="img"&&d.cssBackgroundImage&&!d.img}var qL=/\b(needs?|requires?|for)\s+(a\s+)?(human|manual)?\s*review\b|\bhuman review\b|\bmanual review\b|\bincomplete\b/gi;function BL(d){let f=String(d??"").replace(/\s+/g," ").replace(qL,"judged").trim();if(f.length<=oc)return f;let h=f.slice(0,oc-1),m=h.lastIndexOf(" ");return (m>oc/2?h.slice(0,m):h).replace(/[\s,;:–—-]+$/,"")+"\u2026"}function HL(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>fv){f=f.slice(0,fv);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 la(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 yv=/^#?([0-9a-f]{6})$/i;function VL(d){let f=String(d??"").trim().match(yv);return f?"#"+f[1].toLowerCase():null}function $L(d){let{confidence:f,reviewReason:h,...m}=d;return {...m,id:d.id.replace("axe-incomplete-","axe-")}}function jL(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 S=x&&typeof x=="object"?x:void 0;h.push({id:p,verdict:b,reason:typeof A=="string"?A:void 0,fix:S?{attribute:typeof S.attribute=="string"?S.attribute:void 0,value:typeof S.value=="string"?S.value:void 0}:void 0});}return h}var ua=class extends Error{},wv=`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.
436
+ `),{inject:X}=await Promise.resolve().then(()=>(Vr(),bn));try{await X(d,{tool:"detector-helpers",content:j});}catch{await d.evaluate(`(0,eval)(${JSON.stringify(j)})`);}}catch(V){console.warn("[webability] helper injection failed:",V.message),(h??[]).push("color:kernel-injection-failed");}let A=[],x="";try{let{applyPlatformTemplates:V}=await Promise.resolve().then(()=>($u(),Vu)),O=b;x=O.filter(z=>z!=="universal"&&z!=="universal_iframe").join(", "),A=await V(d,O);}catch{}let{guardDetectorState:S}=await Promise.resolve().then(()=>(Vr(),bn)),R=globalThis.process?.env?.WA_STRICT_STATE==="1",D={strict:R,bugs:m?.internalBugs},w=await S(d,"detectors:parallel",h??[],()=>Promise.allSettled((m?.experimental?[...Wg,...iL]:Wg).map(async V=>{try{let O=await V.detect(d);return V.cap&&O.length>=V.cap&&p.push({detector:V.name,cap:V.cap}),O}catch(O){return Xg(m?.internalBugs,V.name,O),[]}})),D),C=[];m?.skipFocusMutating&&(h??[]).push("focus:mutating-detectors-skipped (live-tab scan; focus visibility and focus obscured were not checked)");let _=[...m?.skipFocusMutating?[]:[tg,Qh],...m?.extraSerialDetectors??[]];for(let V of _){let O=[];try{O=await S(d,V.name,h??[],()=>V.detect(d).catch(z=>(Xg(m?.internalBugs,V.name,z),[])),D);}catch(z){if(R)throw z}try{V.cap&&O.length>=V.cap&&p.push({detector:V.name,cap:V.cap}),C=C.concat(O);}catch{}}let L=[...w.flatMap(V=>V.status==="fulfilled"?V.value:[]),...C];if(x)for(let V of L)V.needsAI&&(V.context=Bh(V.context,x));let I=[...A,...L],q=lL(I),B=["wp-ada-compliance","webability-widget","webability-a11y","asw-","userway","acsb","audioeye","equallyai"];return q.filter(V=>{let O=V.selector.toLowerCase();return O.trim()?!B.some(z=>O.includes(z)):false})}async function sL(d){try{return await d.evaluate(()=>{let f=getComputedStyle(document.documentElement),h={};for(let S of f)S.startsWith("--")&&/color|bg|background|text|primary|secondary|accent/i.test(S)&&(h[S]=f.getPropertyValue(S).trim());let m={},p={},b=document.querySelectorAll("body *:not(script):not(style):not(noscript)"),A=Math.min(b.length,500);for(let S=0;S<A;S++){let R=getComputedStyle(b[S]);if(R.display==="none"||R.visibility==="hidden")continue;let D=R.backgroundColor,w=R.color;D&&D!=="rgba(0, 0, 0, 0)"&&(m[D]=(m[D]||0)+1),w&&(p[w]=(p[w]||0)+1);}let x=S=>Object.entries(S).sort((R,D)=>D[1]-R[1]).slice(0,8).map(([R,D])=>({color:R,count:D}));return {cssVars:h,topBgColors:x(m),topTextColors:x(p)}})}catch{return {cssVars:{},topBgColors:[],topTextColors:[]}}}function lL(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.18.0";var Gu=["wcag2a","wcag2aa","wcag21aa","wcag22aa"];function Uu(d){return d.includes("wcag21aa")||d.includes("wcag22aa")||d.includes("wcag134")?{"css-orientation-lock":{enabled:true}}:{}}function Yg(d,f){return f==="AAA"&&!d.includes("wcag2aaa")?[...d,"wcag2aaa"]:d}var es={"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 Kg(d){return es[d]}var mo={A:1,AA:2,AAA:3};function Wu(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=Kg(m);p&&(!h||mo[p]<mo[h])&&(h=p);}return h}function Ln(d,f="AA"){let h=mo[f]??mo.AA;return d.filter(m=>{let p=Wu(m);return !!p&&mo[p]<=h})}var uL=new Set(["new_window_link","external_link_warning","download_link_warning"]);function Zg(d){let f=uL.has(d.issueType)?"minor":d.needsAI?"serious":"moderate",h=d.attribute==="style",m=d.attribute.startsWith("data-"),p=h&&d.fixValue?cL(d.fixValue):d.fixValue;return {id:`wa-${d.issueType}-${ho(d.selector)}`,source:"webability",type:d.issueType,wcag:d.wcag,level:Wu({wcag:d.wcag})??"AA",impact:f,message:dL(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 cL(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 dL(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 oa(d){return Array.isArray(d)?d.flat(1/0).filter(h=>typeof h=="string").join(" >>> "):typeof d=="string"?d:""}function ho(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 Xu(d){return d==="critical"||d==="serious"||d==="moderate"||d==="minor"?d:"moderate"}function Ju(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 ts(d){let f=/^wcag(\d)(\d)(\d{1,2})$/.exec(d);return f?`${f[1]}.${f[2]}.${f[3]}`:""}function Yu(d){for(let f of d){let h=ts(f);if(h)return h}return ""}function Ku(d){return d.includes("wcag2aaa")?"AAA":d.includes("wcag2aa")||d.includes("wcag21aa")||d.includes("wcag22aa")?"AA":"A"}Qu();async function ec(d,f){return Zu("axe",d,()=>fL(d,f))}async function fL(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:Uu(f)}).withTags(f).analyze()}catch{return pL(d,f)}}async function pL(d,f){let h=await Promise.resolve().then(()=>Yi(vo())),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,S)=>{let R=window;if(!R.axe)return S(new Error("axe-core not loaded"));R.axe.run(document,{runOnly:{type:"tag",values:b},rules:A,resultTypes:["violations","incomplete"]}).then(x).catch(S);}),{wcagTags:f,rules:Uu(f)})}function tc(d){let f=[],h=[];for(let m of d)m.confidence==="needs_review"||hL(m)?h.push(m):f.push(mL(m));return {verdicts:f,undecided:h}}function mL(d){if(d.confidence===void 0&&d.reviewReason===void 0)return d;let{confidence:f,reviewReason:h,...m}=d;return m}function hL(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")&&gL(m))return "background uses gradient or image";if(f==="image_of_text"||h==="1.4.5"){let b=rv(m,"src").toLowerCase();b.startsWith("data:")&&(b=b.split(",")[0]);let A=rv(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 gL(d){return /background(-image)?\s*:\s*(?:linear-gradient|radial-gradient|conic-gradient|url\()/i.test(d)}function rv(d,f){let h=new RegExp(`\\b${f}\\s*=\\s*"([^"]*)"`,"i"),m=d.match(h);return m?m[1]:""}Vr();var nv=120,av=3,ov=120,iv=1200,sv=300,lv=2e5,uv=8e3,vL=new Set(["bgImage","bgGradient","bgOverlap","elmPartiallyObscured","elmPartiallyObscuring"]),bL="*,*::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 yL(d){let{selectors:f,maxBoxes:h,maxW:m,maxH:p,maxArea:b,fgBySelector:A}=d,x=document.documentElement.scrollWidth,S=document.documentElement.scrollHeight,R=document.createElement("canvas");R.width=R.height=1;let D=R.getContext("2d",{willReadFrequently:true}),w=B=>{try{D.clearRect(0,0,1,1),D.fillStyle="#000",D.fillStyle=B,D.fillRect(0,0,1,1);let V=D.getImageData(0,0,1,1).data;return [V[0],V[1],V[2],V[3]]}catch{return null}},C={},_=document.querySelectorAll("video,canvas,iframe,embed,object");if(_.length>200){for(let B of f)C[B]=null;return C}let L=Array.from(_).map(B=>B.getBoundingClientRect()),I=window.scrollX,q=window.scrollY;for(let B of f){C[B]=null;let V=null;try{V=document.querySelector(B);}catch{continue}if(!V)continue;let O=getComputedStyle(V);if(O.visibility!=="visible"||O.display==="none"||O.webkitBackgroundClip==="text"||O.backgroundClip==="text")continue;let z=false,W=0;for(let oe=V;oe;oe=oe.parentElement){if(++W>64){z=true;break}let ie=getComputedStyle(oe);parseFloat(ie.opacity)<1&&(z=true),(ie.mixBlendMode!=="normal"||ie.filter!=="none")&&(z=true);}if(z)continue;let T=w(O.color);if(!T||T[3]<255)continue;let v=parseFloat(O.fontSize),E=parseInt(O.fontWeight,10)>=700,F=v>=24||E&&v>=18.66,P=[],H=V.getBoundingClientRect();if(H.height>p*h||H.width>m*2)continue;let j=document.createTreeWalker(V,NodeFilter.SHOW_TEXT),X,Q=0,te=false;for(;!te&&(X=j.nextNode());){if(++Q>50){te=true;break}if(X.parentElement!==V)continue;let oe=X.textContent||"";if(oe.length>2e3){te=true;break}if(!oe.trim())continue;let ie=document.createRange();ie.selectNodeContents(X);let Ce=ie.getClientRects();if(Ce.length>h){te=true;break}for(let be=0;be<Ce.length;be++){let Ee=Ce[be];if(!(Ee.width<2||Ee.height<2)&&(P.push({x:Math.round(Ee.left+I),y:Math.round(Ee.top+q),w:Math.max(1,Math.round(Ee.width)),h:Math.max(1,Math.round(Ee.height))}),P.length>h)){te=true;break}}}if(te||P.length===0||P.length>h||P.some(oe=>oe.w>m||oe.h>p||oe.w*oe.h>b||oe.x<0||oe.y<0||oe.x+oe.w>x||oe.y+oe.h>S)||P.some(oe=>L.some(ie=>oe.x<ie.right+I&&oe.x+oe.w>ie.left+I&&oe.y<ie.bottom+q&&oe.y+oe.h>ie.top+q)))continue;let ue=A[B];C[B]={fg:ue||`rgb(${T[0]},${T[1]},${T[2]})`,threshold:F?3:4.5,boxes:P};}return C}async function wL(d){let{b64:f,fg:h}=d,m=atob(f),p=new Uint8Array(m.length);for(let O=0;O<m.length;O++)p[O]=m.charCodeAt(O);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 S=x.getImageData(0,0,A.width,A.height).data,R=O=>{let z=O/255;return z<=.03928?z/12.92:Math.pow((z+.055)/1.055,2.4)},D=(O,z,W)=>.2126*R(O)+.7152*R(z)+.0722*R(W),w=h.match(/\d+/g).map(Number),C=D(w[0],w[1],w[2]),_=Math.max(1,Math.floor(Math.sqrt(A.width*A.height/1500))),L=0,I=1/0,q="",B="",V=0;for(let O=0;O<A.height;O+=_)for(let z=0;z<A.width;z+=_){let W=(O*A.width+z)*4;if(S[W+3]<255)continue;let T=D(S[W],S[W+1],S[W+2]),v=Math.max(C,T),E=Math.min(C,T),F=(v+.05)/(E+.05);F>L&&(L=F,B=`rgb(${S[W]},${S[W+1]},${S[W+2]})`),F<I&&(I=F,q=`rgb(${S[W]},${S[W+1]},${S[W+2]})`),V++;}return V===0?null:{best:L,worst:I,worstBg:q,bestBg:B}}var rs=class extends Error{};function wr(d,f){let h=f-Date.now();if(h<=0)return d.catch(()=>{}),Promise.reject(new rs("pixel pass deadline"));let m,p=new Promise((b,A)=>{m=setTimeout(()=>A(new rs("pixel pass deadline")),h);});return Promise.race([d,p]).finally(()=>clearTimeout(m))}function xL(d){let f=(d??"").trim(),h=f.match(/^#([0-9a-f]{3})$/i);if(h)return `rgb(${[...h[1]].map(m=>parseInt(m+m,16)).join(",")})`;if(h=f.match(/^#([0-9a-f]{6})$/i),h)return `rgb(${[0,2,4].map(m=>parseInt(h[1].slice(m,m+2),16)).join(",")})`;if(h=f.match(/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i),h&&[h[1],h[2],h[3]].every(m=>Number(m)<=255))return `rgb(${Number(h[1])},${Number(h[2])},${Number(h[3])})`}function ns(d){return d.source!=="axe-core"&&d.type==="contrast_insufficient"?d.fix?.currentValue:void 0}async function AL(d,f){try{return await d.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),await d.evaluate(h=>{let m=new Map;return h.map(p=>{try{let b=document.querySelector(p);return b?(m.has(b)||m.set(b,m.size),m.get(b)):-1}catch{return -1}})},f)}catch{return f.map(()=>-1)}}async function rc(d,f){let h=d.screenshot;if(typeof h!="function"||f.length===0)return [];let m={},p=[];for(let R of f){let D=typeof R=="string"?R:R.selector;p.push(D);let w=typeof R=="string"?void 0:xL(R.fg);w&&!(D in m)&&(m[D]=w);}let b=Array.from(new Set(p)).slice(0,nv),A=[],x=false,S=Date.now()+uv;try{await wr(d.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),S);let R=await wr(d.evaluate(yL,{selectors:b,maxBoxes:av,maxW:iv,maxH:sv,maxArea:lv,fgBySelector:m}),S);await wr(Qi(d,{tool:"contrast-pixels",css:bL}),S),x=!0;let D=0;for(let w of b){let C=R[w];if(!C)continue;if(Date.now()>S||D+C.boxes.length>ov)break;let _=0,L=1/0,I="",q="",B=!0;for(let V of C.boxes){D++;let O=await wr(h.call(d,{clip:{x:V.x,y:V.y,width:V.w,height:V.h},fullPage:!0,type:"png",animations:"disabled"}),S),z=globalThis.Buffer,W=z?z.from(O).toString("base64"):"",T=await wr(d.evaluate(wL,{b64:W,fg:C.fg}),S);if(!T){B=!1;break}T.best>_&&(_=T.best,q=T.bestBg),T.worst<L&&(L=T.worst,I=T.worstBg);}B&&A.push({selector:w,fail:_<C.threshold*.97,bestRatio:_,worstRatio:L,...I?{worstBg:I}:{},...q?{bestBg:q}:{},threshold:C.threshold,fg:C.fg});}}catch(R){globalThis.process?.env?.WA_DEBUG_PIXELS&&console.error("pixel judge failed",R);}finally{if(x)try{await Promise.race([d.evaluate(()=>document.querySelectorAll('style[data-wa-injected^="contrast-pixels:"]').forEach(R=>R.remove())),new Promise(R=>setTimeout(R,1e3))]);}catch{}}return A}function DL(d){let{selectors:f,maxBoxes:h,maxW:m,maxH:p,maxArea:b}=d,A=document.documentElement.scrollWidth,x=document.documentElement.scrollHeight,S=window.scrollX,R=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 _=getComputedStyle(C);if(_.visibility!=="visible"||_.display==="none"||!(_.webkitBackgroundClip==="text"||_.backgroundClip==="text"))continue;let L=false,I=0;for(let E=C;E;E=E.parentElement){if(++I>64){L=true;break}let F=getComputedStyle(E);(parseFloat(F.opacity)<1||F.mixBlendMode!=="normal"||F.filter!=="none")&&(L=true);}if(L)continue;let q=parseFloat(_.fontSize),B=parseInt(_.fontWeight,10)>=700,V=q>=24||B&&q>=18.66,O=[],z=document.createTreeWalker(C,NodeFilter.SHOW_TEXT),W,T=0,v=false;for(;!v&&(W=z.nextNode());){if(++T>50){v=true;break}if(!(W.textContent||"").trim())continue;let E=document.createRange();E.selectNodeContents(W);let F=E.getClientRects();for(let P=0;P<F.length;P++){let H=F[P];if(!(H.width<2||H.height<2)&&(O.push({x:Math.round(H.left+S),y:Math.round(H.top+R),w:Math.max(1,Math.round(H.width)),h:Math.max(1,Math.round(H.height))}),O.length>h)){v=true;break}}}v||O.length===0||O.some(E=>E.w>m||E.h>p||E.w*E.h>b||E.x<0||E.y<0||E.x+E.w>A||E.y+E.h>x)||(D[w]={threshold:V?3:4.5,boxes:O});}return D}async function _L(d){let f=async C=>{let _=atob(C),L=new Uint8Array(_.length);for(let V=0;V<_.length;V++)L[V]=_.charCodeAt(V);let I=await createImageBitmap(new Blob([L],{type:"image/png"})),q=document.createElement("canvas");q.width=I.width,q.height=I.height;let B=q.getContext("2d",{willReadFrequently:true});return B.drawImage(I,0,0),{w:q.width,h:q.height,d:B.getImageData(0,0,q.width,q.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 _=C/255;return _<=.03928?_/12.92:Math.pow((_+.055)/1.055,2.4)},b=(C,_,L)=>.2126*p(C)+.7152*p(_)+.0722*p(L),A=h.w,x=h.h,S=new Uint8Array(A*x);for(let C=0;C<A*x;C++){let _=C*4;S[C]=Math.abs(h.d[_]-m.d[_])+Math.abs(h.d[_+1]-m.d[_+1])+Math.abs(h.d[_+2]-m.d[_+2])>48?1:0;}let R=2,D=[];for(let C=R;C<x-R;C++)for(let _=R;_<A-R;_++){let L=C*A+_;if(!S[L])continue;let I=true;for(let O=-R;O<=R&&I;O++)for(let z=-R;z<=R;z++)if(!S[L+O*A+z]){I=false;break}if(!I)continue;let q=L*4,B=b(h.d[q],h.d[q+1],h.d[q+2]),V=b(m.d[q],m.d[q+1],m.d[q+2]);D.push({ratio:(Math.max(B,V)+.05)/(Math.min(B,V)+.05),fg:`rgb(${h.d[q]},${h.d[q+1]},${h.d[q+2]})`,bg:`rgb(${m.d[q]},${m.d[q+1]},${m.d[q+2]})`});}if(D.length<40)return null;D.sort((C,_)=>C.ratio-_.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 EL(d,f){let h=d.screenshot;if(typeof h!="function"||f.length===0)return [];let m=Array.from(new Set(f)).slice(0,nv),p=[],b=false,A=Date.now()+uv;try{await wr(d.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),A);let x=await wr(d.evaluate(DL,{selectors:m,maxBoxes:av,maxW:iv,maxH:sv,maxArea:lv}),A);await wr(Qi(d,{tool:"contrast-gradient-text",css:"[data-wa-gt]{background-image:none!important;background-color:transparent!important}"}),A),b=!0;let S=0;for(let R of m){let D=x[R];if(!D)continue;if(Date.now()>A||S+D.boxes.length*2>ov)break;let w=1/0,C=0,_="",L="",I=!0,q=globalThis.Buffer;for(let B of D.boxes){S+=2;let V={x:B.x,y:B.y,width:B.w,height:B.h},O=await wr(h.call(d,{clip:V,fullPage:!0,type:"png",animations:"disabled"}),A);await wr(d.evaluate(T=>{document.querySelector(T)?.setAttribute("data-wa-gt","1");},R),A);let z;try{z=await wr(h.call(d,{clip:V,fullPage:!0,type:"png",animations:"disabled"}),A);}finally{await d.evaluate(T=>{document.querySelector(T)?.removeAttribute("data-wa-gt");},R).catch(()=>{});}let W=await wr(d.evaluate(_L,{painted:q?q.from(O).toString("base64"):"",backdrop:q?q.from(z).toString("base64"):""}),A);if(!W){I=!1;break}W.worst<w&&(w=W.worst,_=W.worstFg,L=W.worstBg),W.best>C&&(C=W.best);}!I||!isFinite(w)||p.push({selector:R,fail:w<D.threshold*.97,bestRatio:C,worstRatio:w,worstBg:L,threshold:D.threshold,fg:_,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 CL(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 cv(d,f,h,m){let p=f.filter(O=>O.wcag!=="1.4.3"||!O.selector?false:O.source==="axe-core"?vL.has(h.get(O.id)??""):O.type==="contrast_insufficient"&&/gradient or image|gradient-clipped/.test(O.reviewReason??""));if(p.length===0)return [];let b=O=>/gradient-clipped/.test(O.reviewReason??""),A=await AL(d,p.map(O=>O.selector)),x=O=>O.source==="axe-core"?1:0,S=new Map;p.forEach((O,z)=>{if(A[z]<0)return;let W=S.get(A[z]);(!W||x(O)<x(W))&&S.set(A[z],O);});let R=p.filter((O,z)=>A[z]<0||S.get(A[z])===O),D=R.filter(O=>!b(O)),w=D.map(O=>A[p.indexOf(O)]),C=new Map;p.forEach((O,z)=>{let W=ns(O);W&&A[z]>=0&&!C.has(A[z])&&C.set(A[z],W);});let _=[...await rc(d,D.map((O,z)=>({selector:O.selector,fg:ns(O)??C.get(w[z])}))),...await EL(d,R.filter(b).map(O=>O.selector))],L=new Map(_.map(O=>[O.selector,O])),I=(O,z)=>{let W=A[z]>=0?S.get(A[z]):O,T=W?L.get(W.selector):void 0;return T&&T.selector!==O.selector?{...T,selector:O.selector}:T},q=p.map((O,z)=>I(O,z));if(m)for(let O of q)O&&m.set(O.selector,O);globalThis.process?.env?.WA_DEBUG_PIXELS&&console.error(`pixel judge: ${p.length} candidates, ${R.length} elements, ${_.length} measured, ${_.filter(O=>O.fail).length} fail`);let B=[],V=new Set;return p.forEach((O,z)=>{let W=q[z];!W||!W.fail||V.has(O.selector)||(V.add(O.selector),B.push(CL(O,W)));}),B}function SL(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 kL(d,f,h){return "#"+[d,f,h].map(m=>Math.round(m).toString(16).padStart(2,"0")).join("")}function nc(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*nc(d)+.7152*nc(f)+.0722*nc(h)}function ac(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 SL(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:ac(ia(...h),ia(...m))}function sa(d,f,h=4.5){let m=en(d),p=en(f);if(!m||!p)return null;let b=ia(...p),A=ac(ia(...m),b);if(A>=h)return null;let S=ia(...m)>b,R=0,D=1,w=m;for(let L=0;L<20;L++){let I=(R+D)/2,q=S?[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],B=ia(q[0],q[1],q[2]);ac(B,b)>=h?(w=q,D=I):R=I;}let C=kL(w[0],w[1],w[2]),_=Kt(C,f);return {currentColor:d,suggestedColor:C,currentRatio:Math.round(A*100)/100,suggestedRatio:Math.round(_*100)/100,requiredRatio:h,bgColor:f}}var TL=30,RL=10,gv=2e4,FL=30,IL=400*1024,vv="https://openrouter.ai/api/v1",bv="anthropic/claude-haiku-4.5",ic="deepseek/deepseek-v4-flash",dv=400,fv=125,oc=160,ML=2e3,bo=new Map;function LL(){bo.clear();}function PL(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 sc=d=>d.wcag||d.type,pv=(d,f,h)=>`${d}|${f.selector}|${sc(f)}|${PL(h)}`,lc=()=>!!globalThis.process?.env?.WA_DEBUG_JUDGE;function OL(d){let{selectors:f,maxHtml:h}=d,m={elements:{}},p=[],b=q=>/\(\s*prefers-reduced-motion\s*(:\s*reduce\s*)?\)/i.test(q)&&!/^\s*not\b/i.test(q),A=q=>{let B=q.split(",").map(V=>V.trim()).filter(Boolean);return B.length?B.every(V=>{let O=V.match(/^(-?[\d.]+)(ms|s)$/i);return O?parseFloat(O[1])*(O[2].toLowerCase()==="s"?1e3:1)<=10:false}):false},x=(q,B,V)=>{if(!(V>8))for(let O of Array.from(q)){let z=O.media?.mediaText,W=B||typeof z=="string"&&b(z),T=O.style,v=O.selectorText;if(W&&T&&typeof v=="string"){let P=T.getPropertyValue("animation-name").trim(),H=/^none(\s*,\s*none)*$/i.test(P)||A(T.getPropertyValue("animation-duration"))||/^paused/i.test(T.getPropertyValue("animation-play-state").trim()),j=/^none(\s*,\s*none)*$/i.test(T.getPropertyValue("transition-property").trim())||A(T.getPropertyValue("transition-duration"));(H||j)&&p.push({selector:v,anim:H,trans:j});}let E=O.cssRules;E&&E.length&&x(E,W,V+1);let F=O.styleSheet;if(F)try{x(F.cssRules,W||b(O.media?.mediaText||""),V+1);}catch{}}};try{for(let q of Array.from(document.styleSheets))try{x(q.cssRules,b(q.media?.mediaText||""),0);}catch{}}catch{}let S=(q,B)=>{try{return q.matches(B)}catch{return false}},R=q=>q.split(",").map(B=>{let V=B.trim().match(/^(-?[\d.]+)(ms|s)$/i);return V?parseFloat(V[1])*(V[2].toLowerCase()==="s"?1e3:1):0}),D=q=>{let B=q.cloneNode(true);B.querySelectorAll("script, style").forEach(O=>O.remove());let V=(B.textContent||"").replace(/\s+/g," ").trim();if(!V){for(let O of Array.from(q.querySelectorAll("img[alt], [aria-label]")))if(V=(O.getAttribute("alt")||O.getAttribute("aria-label")||"").trim(),V)break}return V},w=q=>{let B=(q.getAttribute("aria-label")||"").trim();if(B)return B;let O=(q.getAttribute("aria-labelledby")||"").split(/\s+/).filter(Boolean).map(T=>{let v=document.getElementById(T);return v?(v.textContent||"").replace(/\s+/g," ").trim():""}).filter(Boolean).join(" ");if(O)return O;let z=D(q);if(z)return z;let W=q instanceof HTMLInputElement&&/^(submit|button|reset|image)$/i.test(q.type)?(q.value||q.alt||"").trim():"";return W||(q.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"])',_=window.scrollX||0,L=window.scrollY||0,I=[];for(let q of f){let B=null;try{B=document.querySelector(q);}catch{}if(!B){m.elements[q]={found:false};continue}let V=I.indexOf(B);V<0&&(V=I.push(B)-1);let O=getComputedStyle(B),z=B.getBoundingClientRect(),W=B.tagName.toLowerCase(),T={found:true,elementKey:V,tag:W,html:(B.outerHTML||"").slice(0,h),rect:{x:z.left+_,y:z.top+L,w:z.width,h:z.height},role:(B.getAttribute("role")||"").toLowerCase(),ariaHidden:B.getAttribute("aria-hidden")==="true"||!!B.closest('[aria-hidden="true"]'),hidden:O.display==="none"||O.visibility==="hidden"||!!B.closest("[hidden]"),cssBackgroundImage:/url\(/i.test(O.backgroundImage||""),reducedMotionHandled:false,nearText:"",fg:O.color,bg:O.backgroundColor,fontSize:parseFloat(O.fontSize)||0,fontWeight:parseInt(O.fontWeight,10)||400};if(W==="img"){let j=B;T.img={src:(j.currentSrc||j.getAttribute("src")||"").slice(0,300),alt:j.getAttribute("alt"),naturalW:j.naturalWidth||0,naturalH:j.naturalHeight||0,attrW:parseInt(j.getAttribute("width")||"0",10)||0,attrH:parseInt(j.getAttribute("height")||"0",10)||0};}if(T.cssBackgroundImage){let j=B.closest(C);j&&(T.control={tag:j.tagName.toLowerCase(),name:w(j).slice(0,120)});}if(!/^(img|video|canvas|iframe|object|embed|svg)$/.test(W)){let j=O.animationName.split(",").some(ue=>ue.trim()&&ue.trim()!=="none")&&R(O.animationDuration).some(ue=>ue>10),X=R(O.transitionDuration).some(ue=>ue>10)&&O.transitionProperty.trim()!=="none",Q=p.filter(ue=>S(B,ue.selector)),te=!j||Q.some(ue=>ue.anim),se=!X||Q.some(ue=>ue.trans);T.reducedMotionHandled=(j||X)&&te&&se;}let v=B.closest('a[href], button, [role="button"], [role="link"]');if(v&&v!==B){let j=v.cloneNode(true);j.querySelectorAll("img, svg").forEach(te=>te.remove());let X=(j.textContent||"").replace(/\s+/g," ").trim(),Q=(v.getAttribute("aria-label")||"").trim();T.parentInteractive={tag:v.tagName.toLowerCase(),text:(X||Q).slice(0,120)};}let E=j=>{let X=j.cloneNode(true);return X.querySelectorAll("script, style").forEach(Q=>Q.remove()),(X.textContent||"").replace(/\s+/g," ").trim()},F=B.matches('a[href], [role="link"]'),P=E(B),H=B.parentElement;if(F&&(H=B.closest("p, li, td, th, dd, dt, figcaption, blockquote")||B.parentElement),H){let j=E(H),X=F&&P?j.indexOf(P):-1,Q=X>120?X-120:0;T.nearText=(Q?"\u2026":"")+j.slice(Q,Q+240);}m.elements[q]=T;}return m}function NL(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 uc(d){return !!d&&d.tag!=="img"&&d.cssBackgroundImage&&!d.img}var qL=/\b(needs?|requires?|for)\s+(a\s+)?(human|manual)?\s*review\b|\bhuman review\b|\bmanual review\b|\bincomplete\b/gi;function BL(d){let f=String(d??"").replace(/\s+/g," ").replace(qL,"judged").trim();if(f.length<=oc)return f;let h=f.slice(0,oc-1),m=h.lastIndexOf(" ");return (m>oc/2?h.slice(0,m):h).replace(/[\s,;:–—-]+$/,"")+"\u2026"}function HL(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>fv){f=f.slice(0,fv);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 la(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 yv=/^#?([0-9a-f]{6})$/i;function VL(d){let f=String(d??"").trim().match(yv);return f?"#"+f[1].toLowerCase():null}function $L(d){let{confidence:f,reviewReason:h,...m}=d;return {...m,id:d.id.replace("axe-incomplete-","axe-")}}function jL(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 S=x&&typeof x=="object"?x:void 0;h.push({id:p,verdict:b,reason:typeof A=="string"?A:void 0,fix:S?{attribute:typeof S.attribute=="string"?S.attribute:void 0,value:typeof S.value=="string"?S.value:void 0}:void 0});}return h}var ua=class extends Error{},wv=`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.
437
437
 
438
438
  Rules:
439
439
  - 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.