@qualweb/best-practices 0.0.0-develop-20241214205318 → 0.0.0-develop-20241215110033
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var e={8290:(e,t,n)=>{e=n.nmd(e);var i="__lodash_hash_undefined__",a=9007199254740991,s="[object Arguments]",r="[object Boolean]",l="[object Date]",o="[object Function]",d="[object GeneratorFunction]",m="[object Map]",u="[object Number]",c="[object Object]",h="[object Promise]",k="[object RegExp]",g="[object Set]",f="[object String]",p="[object Symbol]",v="[object WeakMap]",b="[object ArrayBuffer]",y="[object DataView]",j="[object Float32Array]",T="[object Float64Array]",W="[object Int8Array]",P="[object Int16Array]",A="[object Int32Array]",I="[object Uint8Array]",C="[object Uint8ClampedArray]",R="[object Uint16Array]",E="[object Uint32Array]",Q=/\w*$/,w=/^\[object .+?Constructor\]$/,_=/^(?:0|[1-9]\d*)$/,F={};F[s]=F["[object Array]"]=F[b]=F[y]=F[r]=F[l]=F[j]=F[T]=F[W]=F[P]=F[A]=F[m]=F[u]=F[c]=F[k]=F[g]=F[f]=F[p]=F[I]=F[C]=F[R]=F[E]=!0,F["[object Error]"]=F[o]=F[v]=!1;var x="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,S="object"==typeof self&&self&&self.Object===Object&&self,D=x||S||Function("return this")(),B=t&&!t.nodeType&&t,O=B&&e&&!e.nodeType&&e,L=O&&O.exports===B;function N(e,t){return e.set(t[0],t[1]),e}function M(e,t){return e.add(t),e}function K(e,t,n,i){var a=-1,s=e?e.length:0;for(i&&s&&(n=e[++a]);++a<s;)n=t(n,e[a],a,e);return n}function V(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function H(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}function q(e,t){return function(n){return e(t(n))}}function U(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var G,z=Array.prototype,$=Function.prototype,X=Object.prototype,Z=D["__core-js_shared__"],J=(G=/[^.]+$/.exec(Z&&Z.keys&&Z.keys.IE_PROTO||""))?"Symbol(src)_1."+G:"",Y=$.toString,ee=X.hasOwnProperty,te=X.toString,ne=RegExp("^"+Y.call(ee).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ie=L?D.Buffer:void 0,ae=D.Symbol,se=D.Uint8Array,re=q(Object.getPrototypeOf,Object),le=Object.create,oe=X.propertyIsEnumerable,de=z.splice,me=Object.getOwnPropertySymbols,ue=ie?ie.isBuffer:void 0,ce=q(Object.keys,Object),he=Oe(D,"DataView"),ke=Oe(D,"Map"),ge=Oe(D,"Promise"),fe=Oe(D,"Set"),pe=Oe(D,"WeakMap"),ve=Oe(Object,"create"),be=Ve(he),ye=Ve(ke),je=Ve(ge),Te=Ve(fe),We=Ve(pe),Pe=ae?ae.prototype:void 0,Ae=Pe?Pe.valueOf:void 0;function Ie(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Ce(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Re(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Ee(e){this.__data__=new Ce(e)}function Qe(e,t){var n=qe(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&Ue(e)}(e)&&ee.call(e,"callee")&&(!oe.call(e,"callee")||te.call(e)==s)}(e)?function(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}(e.length,String):[],i=n.length,a=!!i;for(var r in e)!t&&!ee.call(e,r)||a&&("length"==r||Me(r,i))||n.push(r);return n}function we(e,t,n){var i=e[t];ee.call(e,t)&&He(i,n)&&(void 0!==n||t in e)||(e[t]=n)}function _e(e,t){for(var n=e.length;n--;)if(He(e[n][0],t))return n;return-1}function Fe(e,t,n,i,a,h,v){var w;if(i&&(w=h?i(e,a,h,v):i(e)),void 0!==w)return w;if(!$e(e))return e;var _=qe(e);if(_){if(w=function(e){var t=e.length,n=e.constructor(t);t&&"string"==typeof e[0]&&ee.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!t)return function(e,t){var n=-1,i=e.length;t||(t=Array(i));for(;++n<i;)t[n]=e[n];return t}(e,w)}else{var x=Ne(e),S=x==o||x==d;if(Ge(e))return function(e,t){if(t)return e.slice();var n=new e.constructor(e.length);return e.copy(n),n}(e,t);if(x==c||x==s||S&&!h){if(V(e))return h?e:{};if(w=function(e){return"function"!=typeof e.constructor||Ke(e)?{}:(t=re(e),$e(t)?le(t):{});var t}(S?{}:e),!t)return function(e,t){return De(e,Le(e),t)}(e,function(e,t){return e&&De(t,Xe(t),e)}(w,e))}else{if(!F[x])return h?e:{};w=function(e,t,n,i){var a=e.constructor;switch(t){case b:return Se(e);case r:case l:return new a(+e);case y:return function(e,t){var n=t?Se(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,i);case j:case T:case W:case P:case A:case I:case C:case R:case E:return function(e,t){var n=t?Se(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,i);case m:return function(e,t,n){var i=t?n(H(e),!0):H(e);return K(i,N,new e.constructor)}(e,i,n);case u:case f:return new a(e);case k:return function(e){var t=new e.constructor(e.source,Q.exec(e));return t.lastIndex=e.lastIndex,t}(e);case g:return function(e,t,n){var i=t?n(U(e),!0):U(e);return K(i,M,new e.constructor)}(e,i,n);case p:return s=e,Ae?Object(Ae.call(s)):{}}var s}(e,x,Fe,t)}}v||(v=new Ee);var D=v.get(e);if(D)return D;if(v.set(e,w),!_)var B=n?function(e){return function(e,t,n){var i=t(e);return qe(e)?i:function(e,t){for(var n=-1,i=t.length,a=e.length;++n<i;)e[a+n]=t[n];return e}(i,n(e))}(e,Xe,Le)}(e):Xe(e);return function(e,t){for(var n=-1,i=e?e.length:0;++n<i&&!1!==t(e[n],n,e););}(B||e,(function(a,s){B&&(a=e[s=a]),we(w,s,Fe(a,t,n,i,s,e,v))})),w}function xe(e){return!(!$e(e)||(t=e,J&&J in t))&&(ze(e)||V(e)?ne:w).test(Ve(e));var t}function Se(e){var t=new e.constructor(e.byteLength);return new se(t).set(new se(e)),t}function De(e,t,n,i){n||(n={});for(var a=-1,s=t.length;++a<s;){var r=t[a],l=i?i(n[r],e[r],r,n,e):void 0;we(n,r,void 0===l?e[r]:l)}return n}function Be(e,t){var n,i,a=e.__data__;return("string"==(i=typeof(n=t))||"number"==i||"symbol"==i||"boolean"==i?"__proto__"!==n:null===n)?a["string"==typeof t?"string":"hash"]:a.map}function Oe(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return xe(n)?n:void 0}Ie.prototype.clear=function(){this.__data__=ve?ve(null):{}},Ie.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Ie.prototype.get=function(e){var t=this.__data__;if(ve){var n=t[e];return n===i?void 0:n}return ee.call(t,e)?t[e]:void 0},Ie.prototype.has=function(e){var t=this.__data__;return ve?void 0!==t[e]:ee.call(t,e)},Ie.prototype.set=function(e,t){return this.__data__[e]=ve&&void 0===t?i:t,this},Ce.prototype.clear=function(){this.__data__=[]},Ce.prototype.delete=function(e){var t=this.__data__,n=_e(t,e);return!(n<0)&&(n==t.length-1?t.pop():de.call(t,n,1),!0)},Ce.prototype.get=function(e){var t=this.__data__,n=_e(t,e);return n<0?void 0:t[n][1]},Ce.prototype.has=function(e){return _e(this.__data__,e)>-1},Ce.prototype.set=function(e,t){var n=this.__data__,i=_e(n,e);return i<0?n.push([e,t]):n[i][1]=t,this},Re.prototype.clear=function(){this.__data__={hash:new Ie,map:new(ke||Ce),string:new Ie}},Re.prototype.delete=function(e){return Be(this,e).delete(e)},Re.prototype.get=function(e){return Be(this,e).get(e)},Re.prototype.has=function(e){return Be(this,e).has(e)},Re.prototype.set=function(e,t){return Be(this,e).set(e,t),this},Ee.prototype.clear=function(){this.__data__=new Ce},Ee.prototype.delete=function(e){return this.__data__.delete(e)},Ee.prototype.get=function(e){return this.__data__.get(e)},Ee.prototype.has=function(e){return this.__data__.has(e)},Ee.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ce){var i=n.__data__;if(!ke||i.length<199)return i.push([e,t]),this;n=this.__data__=new Re(i)}return n.set(e,t),this};var Le=me?q(me,Object):function(){return[]},Ne=function(e){return te.call(e)};function Me(e,t){return!!(t=null==t?a:t)&&("number"==typeof e||_.test(e))&&e>-1&&e%1==0&&e<t}function Ke(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||X)}function Ve(e){if(null!=e){try{return Y.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function He(e,t){return e===t||e!=e&&t!=t}(he&&Ne(new he(new ArrayBuffer(1)))!=y||ke&&Ne(new ke)!=m||ge&&Ne(ge.resolve())!=h||fe&&Ne(new fe)!=g||pe&&Ne(new pe)!=v)&&(Ne=function(e){var t=te.call(e),n=t==c?e.constructor:void 0,i=n?Ve(n):void 0;if(i)switch(i){case be:return y;case ye:return m;case je:return h;case Te:return g;case We:return v}return t});var qe=Array.isArray;function Ue(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=a}(e.length)&&!ze(e)}var Ge=ue||function(){return!1};function ze(e){var t=$e(e)?te.call(e):"";return t==o||t==d}function $e(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Xe(e){return Ue(e)?Qe(e):function(e){if(!Ke(e))return ce(e);var t=[];for(var n in Object(e))ee.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}e.exports=function(e){return Fe(e,!0,!0)}},4614:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BestPracticesModule=void 0;const i=n(7105);class BestPracticesModule extends i.ExecutableModuleContext{constructor(){super(...arguments),this.name=i.ModuleType.BEST_PRACTICES}getModulePackage(){return"@qualweb/best-practices"}runModule(e,t,n){return e.evaluate(((e,t)=>new BestPracticesRunner(e,t).configure(e).test({}).getReport()),t,n)}}t.BestPracticesModule=BestPracticesModule},7368:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BestPracticesRunner=void 0;const i=n(9599),a=n(7105),s=n(640);class BestPracticesRunner extends a.EvaluationModuleDefinition{constructor(e,t){const n=a.ModuleType.BEST_PRACTICES,r=new a.ModuleReport(n);super(n,e,t,r,new s.BestPracticesTester(r)),this.translator=new i.ModuleTranslator(this.type,this.translate),this.tester.init(this.translator)}}t.BestPracticesRunner=BestPracticesRunner},3556:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP1=void 0;const s=n(7105),r=n(3920),l=n(1906);class QW_BP1 extends l.BestPractice{execute(e){const t=e.getElements('h1, h2, h3, h4, h5, h6, [role="heading"]');for(const e of null!=t?t:[])if(window.AccessibilityUtils.isElementInAT(e)||window.DomUtils.isElementVisible(e)){const t=new s.Test(s.Verdict.WARNING,void 0,"W1");t.addElement(e),this.addTestResult(t)}0===this.bestPractice.metadata.warning&&this.addTestResult(new s.Test(s.Verdict.FAILED,void 0,"F1"))}}t.QW_BP1=QW_BP1,i([r.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP1.prototype,"execute",null)},9742:function(e,t,n){"use strict";var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,s){function r(e){try{o(i.next(e))}catch(e){s(e)}}function l(e){try{o(i.throw(e))}catch(e){s(e)}}function o(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,l)}o((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP10=void 0;const a=n(7105),s=n(1906);class QW_BP10 extends s.BestPractice{execute(e){return i(this,void 0,void 0,(function*(){const t=new a.Test;if(void 0===e)t.verdict=a.Verdict.PASSED,t.resultCode="P1";else{const n=e.getElementTagName();t.verdict=a.Verdict.FAILED,t.description=this.translate("F1",{name:n}),t.resultCode="F1",t.attributes.push(n),t.addElement(e)}this.addTestResult(t)}))}}t.QW_BP10=QW_BP10},9917:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP11=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP11 extends l.BestPractice{execute(e){const t=new r.Test;let n=0,i=!1;for(const t of e.getElementChildren()||[]){const e=t.getElementType();t&&"br"===t.getElementTagName()?(n++,i=!0):"text"!==e&&(n=0)}i&&n<=3?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):i&&(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),i&&(t.addElement(e),this.addTestResult(t))}}t.QW_BP11=QW_BP11,i([s.ElementExists,(0,s.ElementHasChild)("*"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP11.prototype,"execute",null)},5332:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP12=void 0;const s=n(3408),r=n(3920),l=n(7105),o=n(1906);class QW_BP12 extends o.BestPractice{execute(e){const t=e.getElements("tr");let n=[];if(t.length>0){let i,a;n=t[0].getElementChildren();let s=!0;for(i=1;i<n.length;i++)("td"===n[i].getElementTagName()||"th"===n[i].getElementTagName()&&s)&&(a=n[i].getElementAttribute("scope"),s="col"===a);let r,o=!0;for(i=1;i<t.length;i++)if(o){r=t[i];const e=r.getElements("td");e.length>0&&(a=e[0].getElementAttribute("scope"),o="row"===a)}const d=new l.Test;s&&o?(d.verdict=l.Verdict.PASSED,d.resultCode="P1"):(d.verdict=l.Verdict.FAILED,d.resultCode="F1"),d.addElement(e),this.addTestResult(d)}}}t.QW_BP12=QW_BP12,i([r.ElementExists,(0,r.ElementHasChild)("tr"),a("design:type",Function),a("design:paramtypes",[s.QWElement]),a("design:returntype",void 0)],QW_BP12.prototype,"execute",null)},955:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP13=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP13 extends l.BestPractice{execute(e){const t=e.getElementParent();if(!t)return;const n=new r.Test,i=t.getElementAttribute("href"),a=t.getElementNextSibling(),s=t.getElementPreviousSibling();a&&a.getElementAttribute("href")===i||s&&s.getElementAttribute("href")===i?(n.verdict=r.Verdict.FAILED,n.resultCode="F1"):(n.verdict=r.Verdict.PASSED,n.resultCode="P1"),t.getElementParent()&&n.addElement(e),this.addTestResult(n)}}t.QW_BP13=QW_BP13,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP13.prototype,"execute",null)},9057:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP15=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP15 extends l.BestPractice{constructor(){super(...arguments),this.absoluteLengths=["cm","mm","in","px","pt","pc"]}execute(e){const t=new r.Test,n=e.getElementAttribute("width"),i=n.trim().substring(n.length-2,n.length);this.absoluteLengths.includes(i)||parseFloat(n).toString().length===n.length?(t.verdict=r.Verdict.FAILED,t.resultCode="F1"):(t.verdict=r.Verdict.PASSED,t.resultCode="P1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP15=QW_BP15,i([s.ElementExists,s.ElementIsVisible,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP15.prototype,"execute",null)},3423:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP17=void 0;const i=n(7105),a=n(1906);class QW_BP17 extends a.BestPractice{execute(e){const t=new i.Test;if(e){const n=window.DomUtils.getElementReferencedByHREF(e);n&&(t.verdict=i.Verdict.WARNING,t.resultCode="W1",t.addElement(e),t.addElement(n),this.addTestResult(t))}else t.verdict=i.Verdict.FAILED,t.resultCode="F1",this.addTestResult(t)}}t.QW_BP17=QW_BP17},6758:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP18=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP18 extends l.BestPractice{constructor(){super(...arguments),this.containers=["span","article","section","nav","aside","hgroup","header","footer","address","p","hr","blockquote","div","h1","h2","h3","h4","h5","h6","li","ul","ol","dd","dt","dl","figcaption"]}execute(e){var t,n,i;if("style"===e.getElementTagName()){const a=e.getElementProperty("sheet");for(const s of a.cssRules||[])if((null===(n=null===(t=null==s?void 0:s.style)||void 0===t?void 0:t.cssText)||void 0===n?void 0:n.includes("width:"))&&this.checkIfCssSelectorIsApplicable(s)){const t=null===(i=null==s?void 0:s.style)||void 0===i?void 0:i.cssText;t&&this.checkCssProperty(t,e)}}else{const t=e.getElementAttribute("style");this.checkCssProperty(t,e)}}checkIfCssSelectorIsApplicable(e){const t=e.selectorText.split(new RegExp(/(?![^)(]*\([^)(]*?\)\)),(?![^\(]*\))/gm)).map((e=>e.trim()))||[e.selectorText.trim()];if(this.hasContainers(t).length>0)return!0;let n=!1;for(const e of t||[])if(e.startsWith(".")||e.startsWith("#")){const t=window.qwPage.getElements(e);for(const e of t||[])if(this.containers.includes(e.getElementTagName())){n=!0;break}}return n}checkCssProperty(e,t){const n=new r.Test,i=e.split(";").filter((e=>""!==e.trim()))||[e];for(const e of i||[])if(null==e?void 0:e.includes("width")){const i=e.split(":")[1];(null==i?void 0:i.includes("!important"))&&(i.endsWith("%")?(n.verdict=r.Verdict.PASSED,n.resultCode="P1"):(n.verdict=r.Verdict.FAILED,i.endsWith("px")?n.resultCode="F1":n.resultCode="F2"),n.attributes.push(e),n.addElement(t),this.addTestResult(n))}}hasContainers(e){var t;const n=new Array;for(const i of null!=e?e:[])for(const e of null!==(t=this.containers)&&void 0!==t?t:[])i===e&&n.push(i);return n}}t.QW_BP18=QW_BP18,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP18.prototype,"execute",null)},8677:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP19=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP19 extends l.BestPractice{execute(e){const t=new r.Test;window.AccessibilityUtils.landmarkIsTopLevel(e)?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP19=QW_BP19,i([s.ElementExists,(0,s.ElementHasAttributeRole)("banner"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP19.prototype,"execute",null)},5613:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,s){function r(e){try{o(i.next(e))}catch(e){s(e)}}function l(e){try{o(i.throw(e))}catch(e){s(e)}}function o(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,l)}o((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP2=void 0;const r=n(3920),l=n(7105),o=n(1906);class QW_BP2 extends o.BestPractice{execute(e){return s(this,void 0,void 0,(function*(){const t=new l.Test;e.getElementAttribute("alt").trim().length<=100?(t.verdict=l.Verdict.PASSED,t.resultCode="P1"):(t.verdict=l.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}))}}t.QW_BP2=QW_BP2,i([r.ElementExists,(0,r.ElementHasAttribute)("alt"),(0,r.ElementHasNonEmptyAttribute)("alt"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",Promise)],QW_BP2.prototype,"execute",null)},5649:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP20=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP20 extends l.BestPractice{execute(e){const t=e.getElements("header:not([role]), [role=banner]").filter((e=>"banner"===window.AccessibilityUtils.getElementRole(e)));if(t.length>0){const e=new r.Test;t.length<2?(e.verdict=r.Verdict.PASSED,e.resultCode="P1"):(e.verdict=r.Verdict.FAILED,e.resultCode="F1"),e.addElements(t),super.addTestResult(e)}}}t.QW_BP20=QW_BP20,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP20.prototype,"execute",null)},8018:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP21=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP21 extends l.BestPractice{execute(e){const t=e.getElements("footer:not([role]), [role=contentinfo]");if(t.length>0){const e=new r.Test;t.length<2?(e.verdict=r.Verdict.PASSED,e.resultCode="P1"):(e.verdict=r.Verdict.FAILED,e.resultCode="F1"),e.addElements(t),super.addTestResult(e)}}}t.QW_BP21=QW_BP21,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP21.prototype,"execute",null)},4815:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP22=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP22 extends l.BestPractice{execute(e){const t=e.getElements("main:not([role]), [role=main]");if(t.length>0){const e=new r.Test;t.length<2?(e.verdict=r.Verdict.PASSED,e.resultCode="P1"):(e.verdict=r.Verdict.FAILED,e.resultCode="F1"),e.addElements(t),super.addTestResult(e)}}}t.QW_BP22=QW_BP22,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP22.prototype,"execute",null)},2728:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP23=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP23 extends l.BestPractice{execute(e){const t=new r.Test,n=e.getElementParent();let i=!1;const a=null==n?void 0:n.getElementTagName();a&&(i=["ul","ol","menu"].includes(a)),i?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP23=QW_BP23,i([s.ElementExists,s.ElementIsInAccessibilityTree,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP23.prototype,"execute",null)},8781:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP24=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP24 extends l.BestPractice{execute(e){const t=new r.Test,n=e.getElementChildren();let i=!0;n.map((e=>{const t=window.AccessibilityUtils.getElementRole(e);"li"!==e.getElementTagName()&&"listitem"!==t&&(i=!1)})),i?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP24=QW_BP24,i([s.ElementExists,(0,s.ElementHasChild)("*"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP24.prototype,"execute",null)},2510:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP25=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP25 extends l.BestPractice{execute(e){const t=new r.Test;window.AccessibilityUtils.landmarkIsTopLevel(e)?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP25=QW_BP25,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP25.prototype,"execute",null)},8523:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP26=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP26 extends l.BestPractice{execute(e){const t=new r.Test;window.AccessibilityUtils.landmarkIsTopLevel(e)?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP26=QW_BP26,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP26.prototype,"execute",null)},580:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP27=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP27 extends l.BestPractice{execute(e){const t=new r.Test;window.AccessibilityUtils.landmarkIsTopLevel(e)?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP27=QW_BP27,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP27.prototype,"execute",null)},6633:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP28=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP28 extends l.BestPractice{execute(e){const t=new r.Test,n=e.getElements("h1");1===n.length?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),n.forEach((e=>t.addElement(e))),this.addTestResult(t)}}t.QW_BP28=QW_BP28,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP28.prototype,"execute",null)},3850:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP29=void 0;const s=n(3408),r=n(3920),l=n(7105),o=n(1906);class QW_BP29 extends o.BestPractice{execute(e){const t=e.getElementAttribute("lang"),n=e.getElementAttribute("xml:lang"),i=t.split("-")[0],a=n.split("-")[0],s=new l.Test;i.toLowerCase()===a.toLowerCase()?(s.verdict=l.Verdict.PASSED,s.resultCode="P1"):(s.verdict=l.Verdict.FAILED,s.resultCode="F1"),s.addElement(e),this.addTestResult(s)}}t.QW_BP29=QW_BP29,i([r.ElementExists,r.IsHTMLDocument,r.IsInMainContext,(0,r.ElementHasNonEmptyAttribute)("lang"),(0,r.ElementHasNonEmptyAttribute)("xml:lang"),(0,r.IsLangSubTagValid)("lang"),(0,r.IsLangSubTagValid)("xml:lang"),a("design:type",Function),a("design:paramtypes",[s.QWElement]),a("design:returntype",void 0)],QW_BP29.prototype,"execute",null)},6335:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP4=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP4 extends l.BestPractice{execute(e){if(e.getNumberOfSiblingsWithTheSameTag()>=10){const t=new r.Test(r.Verdict.FAILED,void 0,"F1");e.getElementParent()&&t.addElement(e),this.addTestResult(t)}}}t.QW_BP4=QW_BP4,i([s.ElementExists,(0,s.ElementIsNotChildOf)("nav"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP4.prototype,"execute",null)},3176:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP5=void 0;const i=n(7105),a=n(1906);class QW_BP5 extends a.BestPractice{execute(e){const t=new i.Test;e?(t.verdict=i.Verdict.FAILED,t.resultCode="F1",t.addElement(e)):(t.verdict=i.Verdict.PASSED,t.resultCode="P1"),this.addTestResult(t)}}t.QW_BP5=QW_BP5},4209:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP6=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP6 extends l.BestPractice{execute(e){const t=new r.Test;e.getElementText().length<100?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP6=QW_BP6,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP6.prototype,"execute",null)},5794:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP7=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP7 extends l.BestPractice{execute(e){const t=new r.Test,n=e.getElementText().replace(/\s/g,"");new RegExp("@([[:punct:]]{4,})@iU").test(n)?(t.verdict=r.Verdict.FAILED,t.resultCode="F1"):(t.verdict=r.Verdict.PASSED,t.resultCode="P1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP7=QW_BP7,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP7.prototype,"execute",null)},8451:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP8=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP8 extends l.BestPractice{execute(e){const t=new r.Test,n=e.getElements("*"),i=e.getElements("img"),a=e.getElements("svg");let s=!1;if(n.length>i.length+a.length&&(s=this.checkApplicability(e)),!s){const n=new Array;for(const e of a||[]){const t=window.AccessibilityUtils.getAccessibleNameSVG(e);t&&""!==t.trim()&&n.push(t)}const i=window.AccessibilityUtils.getAccessibleName(e);i&&""!==i.trim()||n.length>0?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e,!0,!0),this.addTestResult(t)}}checkApplicability(e){var t;let n=!1;for(const i of null!==(t=e.getElementChildren())&&void 0!==t?t:[]){const e=i.getElementTagName();if("img"!==e&&"svg"!==e){const e=i.getElementText(),t=window.DomUtils.isElementVisible(i),a=window.AccessibilityUtils.getAccessibleName(i);t&&(""!==e.trim()||a&&!this.checkApplicability(i))&&(n=!0)}}return n}}t.QW_BP8=QW_BP8,i([s.ElementExists,(0,s.ElementHasVisibleChild)("img, svg"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP8.prototype,"execute",null)},7164:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,s){function r(e){try{o(i.next(e))}catch(e){s(e)}}function l(e){try{o(i.throw(e))}catch(e){s(e)}}function o(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,l)}o((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP9=void 0;const r=n(3920),l=n(7105),o=n(1906);class QW_BP9 extends o.BestPractice{execute(e){return s(this,void 0,void 0,(function*(){if(0===e.getElements("th").length){const t=e.getElements("caption"),n=new l.Test;0!==t.length?(n.verdict=l.Verdict.PASSED,n.resultCode="P1"):(n.verdict=l.Verdict.FAILED,n.resultCode="F1"),n.addElement(e),this.addTestResult(n)}}))}}t.QW_BP9=QW_BP9,i([r.ElementExists,(0,r.ElementDoesNotHaveChild)("th"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",Promise)],QW_BP9.prototype,"execute",null)},3734:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(3556),t),a(n(9742),t),a(n(9917),t),a(n(5332),t),a(n(955),t),a(n(9057),t),a(n(3423),t),a(n(6758),t),a(n(8677),t),a(n(5613),t),a(n(5649),t),a(n(8018),t),a(n(4815),t),a(n(2728),t),a(n(8781),t),a(n(2510),t),a(n(8523),t),a(n(580),t),a(n(6633),t),a(n(3850),t),a(n(6335),t),a(n(3176),t),a(n(4209),t),a(n(5794),t),a(n(8451),t),a(n(7164),t)},1906:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.BestPractice=void 0;const a=n(7105),s=i(n(2765));class BestPractice extends a.Guideline{constructor(e){super(),this.translator=e;const t=s.default[new.target.name];t.metadata.passed=0,t.metadata.warning=0,t.metadata.failed=0,t.metadata.inapplicable=0,t.metadata.outcome=a.Verdict.INAPPLICABLE,t.results=new Array,this.bestPractice=t,this.translator.translateAssertion(this.bestPractice)}translate(e,t){return this.translator.translateTest(this.bestPractice.code,e,t)}getCode(){return this.bestPractice.code}getMapping(){return this.bestPractice.mapping}hasPrincipleAndLevels(e,t){return this.bestPractice.metadata["success-criteria"].some((n=>e.includes(n.principle)&&t.includes(n.level)))}getFinalResults(){return this.generateOutcome(),this.bestPractice}addTestResult(e){e.description&&""!==e.description.trim()||(e.description=this.translate(e.resultCode)),this.bestPractice.results.push(e),e.verdict&&e.verdict!==a.Verdict.INAPPLICABLE&&this.bestPractice.metadata[e.verdict]++}generateOutcome(){this.bestPractice.metadata.failed?this.bestPractice.metadata.outcome=a.Verdict.FAILED:this.bestPractice.metadata.warning?this.bestPractice.metadata.outcome=a.Verdict.WARNING:this.bestPractice.metadata.passed?this.bestPractice.metadata.outcome=a.Verdict.PASSED:(this.bestPractice.metadata.outcome=a.Verdict.INAPPLICABLE,this.bestPractice.metadata.inapplicable=1),this.bestPractice.results.length>0&&this.addDescription()}addDescription(){var e;for(const t of null!==(e=this.bestPractice.results)&&void 0!==e?e:[])if(t.verdict===this.bestPractice.metadata.outcome){this.bestPractice.metadata.description=t.description;break}}}t.BestPractice=BestPractice},640:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.BestPracticesTester=void 0;const l=n(7105),o=r(n(8548)),d=s(n(3734));class BestPracticesTester extends l.Tester{init(e){for(const t in d){const n=new d[t](e);this.assertions.set(n.getCode(),n),this.toExecute[n.getCode()]=!0}return this}execute(){var e;for(const t in null!==o.default&&void 0!==o.default?o.default:[])for(const n of null!==(e=o.default[t])&&void 0!==e?e:[])this.toExecute[n]&&this.executeBestPractice(n,t)}executeBestPractice(e,t){var n;const i=this.assertions.get(e);if(i){const e=window.qwPage.getElements(t);e.length>0?e.forEach((e=>{var t;return null===(t=i.execute)||void 0===t?void 0:t.call(i,e)})):null===(n=i.execute)||void 0===n||n.call(i),this.report.addAssertionResult(i)}}}t.BestPracticesTester=BestPracticesTester},8548:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={"img[alt]":["QW-BP2"],table:["QW-BP9","QW-BP12"],"table table":["QW-BP5"],":not(svg) > title":["QW-BP6","QW-BP7"],'h1, h2, h3, h4, h5, h6, [role="heading"]':["QW-BP8"],"basefont, big, blink, center, font, marquee, multicol, nobr, spacer, tt, b, u, strong":["QW-BP10"],"body, body *":["QW-BP11"],body:["QW-BP1","QW-BP20","QW-BP21","QW-BP22","QW-BP28"],"a > img":["QW-BP13"],"a:first-child":["QW-BP4"],"[width]:not(img)":["QW-BP15"],"a[href]":["QW-BP17"],"style, [style]":["QW-BP18"],"header:not([role]), [role=banner]":["QW-BP19"],li:["QW-BP23"],"ul, ol,menu":["QW-BP24"],"aside:not([role]), [role=complementary]":["QW-BP25"],"footer:not([role]), [role=contentinfo]":["QW-BP26"],"main:not([role]), [role=main]":["QW-BP27"],html:["QW-BP29"]}},9313:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},9712:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3471:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},1177:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},4015:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5279:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EvaluationModuleDefinition=void 0;const i=n(9237);t.EvaluationModuleDefinition=class EvaluationModuleDefinition{type;moduleOptions;report;tester;translate;constructor(e,t,n,a,s){this.type=e,this.moduleOptions=t,this.report=a,this.tester=s,this.translate=i.LocaleFetcher.transform(n),this.configure(t)}configure(e){return this.tester.resetConfiguration(),this.tester.configureByPrinciplesAndLevels(e.principles,e.levels),this.tester.configureIncluded(e.include),this.tester.configureExcluded(e.exclude),this}test(e){return this.tester.execute(e),this}testSpecial(){throw new Error("Method not implemented.")}getReport(){return this.report.getCopy()}}},8541:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},4649:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExecutableModuleContext=void 0;t.ExecutableModuleContext=class ExecutableModuleContext{options;constructor(e={}){this.options=e}async execute(e,t,n){const i=this.getModulePackage?.();return i&&await e.addEvaluationScript(i),this.runModule(e,this.options,t,n)}}},9135:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Guideline=void 0;t.Guideline=class Guideline{}},4253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},6063:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7372:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8824:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8631:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},4891:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModuleReport=void 0;t.ModuleReport=class ModuleReport{report;constructor(e){this.report={type:e,metadata:{passed:0,warning:0,failed:0,inapplicable:0},assertions:{}}}getAssertions(e){return this.report.assertions[e]}addAssertionResult(e){const t=e.getCode();this.report.assertions[t]=e.getFinalResults(),this.report.metadata[this.report.assertions[t].metadata.outcome]++}getCopy(){return{...this.report}}}},7177:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.ModuleType=void 0,function(e){e.ACT_RULES="act-rules",e.WCAG_TECHNIQUES="wcag-techniques",e.BEST_PRACTICES="best-practices",e.COUNTER="counter",e.CUI_CHECKS="cui-checks"}(n||(t.ModuleType=n={}))},4164:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8353:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7224:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},683:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7408:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7997:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Test=void 0;const i=n(1368);t.Test=class Test{verdict;description;resultCode;elements;attributes;constructor(e,t,n){this.verdict=e??i.Verdict.INAPPLICABLE,this.description=t??"",this.resultCode=n??"I1",this.elements=[],this.attributes=[]}addElement(e,t=!0,n=!1,i){const a=e.getElementHtmlCode(t,n),s=e.getElementSelector();let r;return i&&(r=window.AccessibilityUtils.getAccessibleName(e)),this.elements.push({htmlCode:a,pointer:s,accessibleName:r}),this}addElements(e,t=!0,n=!1,i){return e.forEach((e=>this.addElement(e,t,n,i))),this}}},9992:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8678:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Tester=void 0;t.Tester=class Tester{assertions=new Map;toExecute={};report;constructor(e){this.report=e}configureByPrinciplesAndLevels(e,t){for(const[n,i]of this.assertions)e&&0!==e.length?t&&0!==t.length?i.hasPrincipleAndLevels(e,t)||(this.toExecute[n]=!1):i.hasPrincipleAndLevels(e,["A","AA","AAA"])||(this.toExecute[n]=!1):t&&0!==t.length&&!i.hasPrincipleAndLevels(["Perceivable","Operable","Understandable","Robust"],t)&&(this.toExecute[n]=!1)}configureIncluded(e){if(0!==this.assertions?.size&&e&&0!==e.length){const t=e?.map((e=>e.toLowerCase().startsWith("qw")?e.toUpperCase().trim():e.trim()));for(const[e,n]of this.assertions)this.toExecute[e]=!(!t?.includes(n.getCode())&&!t?.includes(n.getMapping()))}}configureExcluded(e){if(e&&0!==e.length){const t=e.map((e=>e.toLowerCase().startsWith("qw")?e.toUpperCase().trim():e.trim()));for(const[e,n]of this.assertions)this.toExecute[e]=!t.includes(n.getCode())&&!t.includes(n.getMapping())}}resetConfiguration(){for(const e in this.toExecute??{})this.toExecute[e]=!0}}},425:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2920:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},1368:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Verdict=void 0,function(e){e.PASSED="passed",e.WARNING="warning",e.FAILED="failed",e.INAPPLICABLE="inapplicable"}(n||(t.Verdict=n={}))},7105:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(9313),t),a(n(9712),t),a(n(3471),t),a(n(1177),t),a(n(4015),t),a(n(5279),t),a(n(8541),t),a(n(4649),t),a(n(9135),t),a(n(4253),t),a(n(6063),t),a(n(7372),t),a(n(8824),t),a(n(8631),t),a(n(4891),t),a(n(4164),t),a(n(7177),t),a(n(8353),t),a(n(7224),t),a(n(683),t),a(n(7408),t),a(n(7997),t),a(n(8678),t),a(n(425),t),a(n(9992),t),a(n(2920),t),a(n(1368),t)},2849:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AssertionTranslator=void 0;const i=n(9237);t.AssertionTranslator=class AssertionTranslator{module;translator;constructor(e,t){this.module=e,this.translator=new i.Translator(t)}translate(e){e.name=this.translator.get([this.module,e.code,"name"])??e.name,e.description=this.translator.get([this.module,e.code,"description"])??e.description,e.metadata.description=this.translator.get([this.module,e.code,"results","I1"])??e.metadata.description}}},8941:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModuleTranslator=void 0;const i=n(2849),a=n(4873);t.ModuleTranslator=class ModuleTranslator{module;assertionTranslator;testTranslator;constructor(e,t){this.module=e,this.assertionTranslator=new i.AssertionTranslator(e,t),this.testTranslator=new a.TestTranslator(e,t)}translate(e){const t=e.modules[this.module];for(const e in t?.assertions??{}){const n=t?.assertions[e];n&&this.translateAssertion(n)}}translateAssertion(e){this.assertionTranslator.translate(e);for(const t of e.results??[])t.description=this.testTranslator.translate(e.code,t.resultCode);for(const t of e.results??[])if(t.verdict===e.metadata.outcome){e.metadata.description=t.description;break}}translateTest(e,t,n){return this.testTranslator.translate(e,t,n)}}},5007:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReportTranslator=void 0;const a=i(n(8290)),s=n(9237),r=n(7105),l=n(8941);t.ReportTranslator=class ReportTranslator{locale;constructor(e){this.locale=s.LocaleFetcher.transform(e)}translate(e){const t=(0,a.default)(e);return this.translateModule(t,r.ModuleType.ACT_RULES),this.translateModule(t,r.ModuleType.WCAG_TECHNIQUES),this.translateModule(t,r.ModuleType.BEST_PRACTICES),t}translateModule(e,t){new l.ModuleTranslator(t,this.locale).translate(e)}}},4873:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TestTranslator=void 0;const i=n(9237);t.TestTranslator=class TestTranslator{module;translator;constructor(e,t){this.module=e,this.translator=t instanceof i.Translator?t:new i.Translator(t)}translate(e,t,n){let i=this.translator.get([this.module,e,"results",t]);if(i&&n)for(const e of Object.keys(n)||[])i=i.replace(new RegExp(`{${e}}`,"g"),n[e].toString());return i??""}}},9599:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(2849),t),a(n(8941),t),a(n(5007),t),a(n(4873),t)},9237:function(){(()=>{"use strict";var e={973:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(847),t),a(n(69),t),a(n(300),t)},69:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.LocaleFetcher=void 0;const r=s(n(409));t.LocaleFetcher=class{static get(e){return r[e]}static transform(e){if(e){if("string"==typeof e){if(e in r)return{translate:r[e],fallback:r.en};throw new Error(`Locale "${e}" not supported.`)}return"translate"in e?this.verifyTranslationObject(e):{translate:e,fallback:r.en}}return{translate:r.en,fallback:r.en}}static verifyTranslationObject(e){const t={translate:r.en,fallback:r.en};if("string"==typeof e.translate){if(!(e.translate in r))throw new Error(`Locale "${e.translate}" not supported.`);t.translate=r[e.translate]}else t.translate=e.translate;if("string"==typeof e.fallback){if(!(e.fallback in r))throw new Error(`Locale "${e.fallback}" not supported.`);t.fallback=r[e.fallback]}else t.fallback=e.fallback;return t}}},258:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.en=void 0,t.en={"act-rules":{"QW-ACT-R1":{name:"HTML Page has a title",description:"This rule checks that the HTML page has a title.",results:{I1:"No test targets found.",P1:"The `title` element exists and it's not empty ('').",F1:"The `title` element doesn't exist.",F2:"The `title` element is empty ('').",F3:"The `title` element is not in the same context."}},"QW-ACT-R2":{name:"HTML has lang attribute",description:"This rule checks that the html element has a non-empty lang or xml:lang attribute.",results:{I1:"No test targets found.",P1:"The `lang` attribute exists and has a value.",F1:"The `lang` attribute doesn't exist or is empty ('')."}},"QW-ACT-R3":{name:"HTML lang and xml:lang match",description:"The rule checks that for the html element, there is no mismatch between the primary language in non-empty lang and xml:lang attributes, if both are used.",results:{I1:"No test targets found.",P1:"The `lang` and `xml:lang` attributes have the same value.",F1:"The `lang` and `xml:lang` attributes don't have the same value."}},"QW-ACT-R4":{name:"Meta-refresh no delay",description:"This rule checks that the meta element is not used for delayed redirecting or refreshing.",results:{I1:"No test targets found.",P1:"The test target refreshes/redirects immediately.",P2:"The test target refreshes/redirects after more than 20 hours.",F1:"The test target refreshes after {seconds} seconds.",F2:"The test target redirects after {seconds} seconds."}},"QW-ACT-R5":{name:"Validity of HTML Lang attribute",description:"This rule checks the lang or xml:lang attribute has a valid language subtag.",results:{I1:"No test targets found.",P1:"The `lang` attribute has a valid value.",F1:"The `lang` attribute does not have a valid value."}},"QW-ACT-R6":{name:"Image button has accessible name",description:"This rule checks that each image button element has an accessible name.",results:{I1:"No test targets found.",P1:"The test target has an accessible name.",F1:"The test target doesn't have an accessible name."}},"QW-ACT-R7":{name:"Orientation of the page is not restricted using CSS transform property",description:"This rule checks that page content is not restricted to either landscape or portrait orientation using CSS transform property.",results:{I1:"No test targets found.",P1:"A page where CSS transform property has rotateZ transform function conditionally applied on the orientation media feature which does not restrict the element to either portrait or landscape orientation.",F1:"A page where CSS transform property has rotate transform function conditionally applied on the orientation media feature which restricts the element to landscape orientation."}},"QW-ACT-R9":{name:"Links with identical accessible names have equivalent purpose",description:"This rule checks that links with identical accessible names resolve to the same resource or equivalent resources.",results:{I1:"No test targets found.",P1:"The `links` with the same accessible name have equal content.",F1:"The `links` with the same accessible name have different content. Verify is the content is equivalent."}},"QW-ACT-R10":{name:"`iframe` elements with identical accessible names have equivalent purpose",description:"This rule checks that `iframe` elements with identical accessible names embed the same resource or equivalent resources.",results:{I1:"No test targets found.",P1:"The `iframes` with the same accessible name have equal content.",F1:"The `iframes` with the same accessible name have different content."}},"QW-ACT-R11":{name:"Button has accessible name",description:"This rule checks that each button element has an accessible name.",results:{I1:"No test targets found.",P1:"The test target has an accessible name.",F1:"The test target doesn't have an accessible name, or it's empty ('')."}},"QW-ACT-R12":{name:"Link has accessible name",description:"This rule checks that each link has an accessible name.",results:{I1:"No test targets found.",P1:"The test target has an accessible name.",F1:"The test target doesn't have an accessible name, or it's empty ('')."}},"QW-ACT-R13":{name:"Element with `aria-hidden` has no focusable content",description:"This rule checks that elements with an aria-hidden attribute do not contain focusable elements.",results:{I1:"No test targets found.",P1:"The test target children are not focusable.",P2:"The test target is not focusable.",F1:"The test target has focusable children.",F2:"This test target is focusable."}},"QW-ACT-R14":{name:"meta viewport does not prevent zoom",description:"This rule checks that the meta element retains the user agent ability to zoom.",results:{I1:"No test targets found.",P1:"The `meta` element with a `name='viewport'` attribute doesn't define the `maximum-scale` and `user-scalable` values.",P2:"The `meta` element with a `name='viewport'` attribute retains the user agent ability to zoom.",F1:"The `meta` element with a `name='viewport'` attribute abolishes the user agent ability to zoom with user-scalable=no or maximum-scale < 2."}},"QW-ACT-R15":{name:"audio or video has no audio that plays automatically",description:"This rule checks that auto-play audio does not last for more than 3 seconds, or the audio has a control mechanism to stop or mute it.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R16":{name:"Form control has accessible name",description:"Form control has accessible name",results:{I1:"No test targets found.",P1:"The test target has an accessible name.",F1:"The test target accessible name doesn't exist or it's empty ('')."}},"QW-ACT-R17":{name:"Image has accessible name",description:"This rule checks that each image that is not marked as decorative, has an accessible name.",results:{I1:"No test targets found.",P1:"The test target is decorative.",P2:"The test target has an accessible name.",F1:"The test target doesn't have an accessible name."}},"QW-ACT-R18":{name:"`id` attribute value is unique",description:"This rule checks that all id attribute values on a single page are unique.",results:{I1:"No test targets found.",P1:"The test target has a unique `id` attribute.",F1:"Several elements have the same `id` attribute."}},"QW-ACT-R19":{name:"iframe element has accessible name",description:"This rule checks that each iframe element has an accessible name.",results:{I1:"No test targets found.",P1:"The test target has an accessible name.",F1:"The test target accessible name doesn't exist or it's empty ('')."}},"QW-ACT-R20":{name:"role attribute has valid value",description:"This rule checks that each role attribute has a valid value.",results:{I1:"No test targets found.",P1:"The test target has a valid `role` attribute.",F1:"The test target has an invalid `role` attribute."}},"QW-ACT-R21":{name:"svg element with explicit role has accessible name",description:"This rule checks that each SVG image element that is explicitly included in the accessibility tree has an accessible name.",results:{I1:"No test targets found.",P1:"The test target has an accessible name.",F1:"The test target accessible name doesn't exist or it's empty ('')."}},"QW-ACT-R22":{name:"Element within body has valid lang attribute",description:"This rule checks that the lang attribute of an element in the page body has a valid primary language subtag.",results:{I1:"No test targets found.",P1:"The test target has a valid `lang` attribute.",F1:"The test target has an invalid `lang` attribute."}},"QW-ACT-R23":{name:"video element visual content has accessible alternative",description:"This rule checks that video elements with audio have an alternative for the video content as audio or as text.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R24":{name:"autocomplete attribute has valid value",description:"This rule checks that the HTML autocomplete attribute has a correct value.",results:{I1:"No test targets found.",P1:"The test target has a valid `autocomplete` attribute.",F1:"The test target `autocomplete` attribute is not valid."}},"QW-ACT-R25":{name:"ARIA state or property is permitted",description:"This rule checks that WAI-ARIA states or properties are allowed for the element they are specified on.",results:{I1:"No test targets found.",P1:"The `{attr}` property is supported or inherited by the `role` {role}.",F1:"The `{attr}` property is neither inherited nor supported by the `role` {role}."}},"QW-ACT-R26":{name:"video element auditory content has accessible alternative",description:"This rule checks that video elements have an alternative for information conveyed through audio.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R27":{name:"aria-* attribute is defined in WAI-ARIA",description:"This rule checks that each aria-* attribute specified is defined in ARIA 1.1.",results:{I1:"No test targets found.",P1:"All aria-* attributes in this element are defined in ARIA 1.1.",F1:"One or more aria-* attributes are not defined in ARIA 1.1."}},"QW-ACT-R28":{name:"Element with role attribute has required states and properties",description:"This rule checks that elements that have an explicit role also specify all required states and properties.",results:{I1:"No test targets found.",P1:"The test target required attributes are listed.",P2:"The test target `role` doesn't have required state or property",F1:"The test target has unlisted required states or properties."}},"QW-ACT-R29":{name:"Audio element content has text alternative",description:"This rule checks if audio only elements have a text alternative available.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R30":{name:"Visible label is part of accessible name",description:"This rule checks that interactive elements labeled through their content have their visible label as part of their accessible name.",results:{I1:"No test targets found.",P1:"The complete visible text content of the test target either matches or is contained within its accessible name.",F1:"The test target doesn't have an accessible name.",F2:"The complete visible text content of the test target neither matches or is contained within its accessible name."}},"QW-ACT-R31":{name:"Video element visual-only content has accessible alternative",description:"This rule checks that video elements without audio have an alternative available.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R32":{name:"video element visual content has strict accessible alternative",description:"This rule checks that video elements with audio have audio description.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R33":{name:"ARIA required context role",description:"This rule checks that an element with an explicit semantic role exists inside its required context.",results:{I1:"No test targets found.",P1:"The test target parent has the required context `role`.",F1:"The test target parent doesn't have the required context `role`."}},"QW-ACT-R34":{name:"ARIA state or property has valid value",description:"This rule checks that each ARIA state or property has a valid value.",results:{I1:"No test targets found.",P1:"The test target `{attr}` attribute has a valid value.",F1:"The test target `{attr}` attribute has an invalid value."}},"QW-ACT-R35":{name:"Heading has accessible name",description:"This rule applies to any HTML element with the semantic role of heading that is included in the accessibility tree.",results:{I1:"No test targets found.",P1:"The test target has a non-empty accessible name.",F1:"The test target accessible name doesn't exist or it's empty ('')."}},"QW-ACT-R36":{name:"Headers attribute specified on a cell refers to cells in the same table element",description:"This rule checks that the headers attribute on a cell refer to other cells in the same table element with a semantic role of columnheader or rowheader.",results:{I1:"No test targets found.",P1:"All headers attributes refer to a cell with a semantic role of columnheader of rowheader within the same table.",F1:"The headers attribute `{attr}` refers to an ID that does not exist within the same table.",F2:"The headers attribute `{attr}` refers to an element inside the same table which does not have a role of rowheader or columnheader."}},"QW-ACT-R37":{name:"Text has minimum contrast",description:"This rule checks that the highest possible contrast of every text character with its background meets the minimal contrast requirement.",results:{I1:"No test targets found.",P1:"Element has contrast ratio higher than minimum.",P2:"Element doesn't have human language text.",P3:"Element has gradient with contrast ratio higher than minimum.",W1:"Element has text-shadow that needs manual verification.",W2:"Element has an image on background.",W3:"Element has an gradient that we can't verify.",F1:"Element has contrast ratio lower than minimum.",F2:"Element has gradient with contrast ratio lower than minimum."}},"QW-ACT-R38":{name:"ARIA required owned elements",description:"This rule checks that an element with an explicit semantic role has at least one of its required owned elements.",results:{I1:"No test targets found.",P1:"The test target only owns elements with correct role.",F1:"The test target owns elements that doesn't have the correct role."}},"QW-ACT-R39":{name:"All table header cells have assigned data cells",description:"This rule checks that each table header has assigned data cells in a table element.",results:{I1:"No test targets found.",P1:"The column header element has at least one assigned cell.",F1:"The column header element does not have at least one assigned cell."}},"QW-ACT-R40":{name:"Zoomed text node is not clipped with CSS overflow",description:"This rule checks that text nodes are not unintentionally clipped by overflow, when a page is zoomed to 200% on 1280 by 1024 viewport.",results:{I1:"No test targets found.",W1:"Check if each ancestor or the text node is not clipped by overflow."}},"QW-ACT-R41":{name:"Error message describes invalid form field value",description:"This rule checks that text error messages provided when the user completes a form field with invalid values or using an invalid format, identify the cause of the error or how to fix the error.",results:{I1:"No test targets found.",W1:"Check that text error messages provided, identify the cause of the error or how to fix the error."}},"QW-ACT-R42":{name:"Object element has non-empty accessible name",description:"This rule checks that each `object` element has a non-empty accessible name.",results:{I1:"No test targets found.",P1:"The test target has a non-empty accessible name.",F1:"The test target accessible name doesn't exist or it's empty ('')."}},"QW-ACT-R43":{name:"Scrollable element is keyboard accessible",description:"This rule checks that scrollable elements can be scrolled by keyboard",results:{I1:"No test targets found.",P1:"This scrollable section element is included in sequential focus navigation.",F1:"This vertically/horizontally scrollable section element is not included in sequential focus navigation, nor does it have any descendants that are."}},"QW-ACT-R44":{name:"Links with identical accessible names and context serve equivalent purpose",description:"This rule checks that links with identical accessible names and context resolve to the same or equivalent resources.",results:{I1:"No test targets found.",P1:"The `links` with the same accessible name have equal content.",W1:"The `links` with the same accessible name have different content. Verify is the content is equivalent."}},"QW-ACT-R48":{name:"Element marked as decorative is not exposed",description:"This rule checks that elements marked as decorative either are not included in the accessibility tree, or have a presentational role.",results:{I1:"No test targets found.",P1:"The test target is not in the accessibility tree.",F1:"The test target is in the accessibility tree."}},"QW-ACT-R49":{name:"Audio or video that plays automatically has no audio that lasts more than 3 seconds",description:"audio or video that plays automatically does not output audio for more than 3 seconds.",results:{I1:"No test targets found.",P1:"The test target plays for 3 seconds or less.",W1:"Can't collect data from the test target element.",W2:"Check if test target has a visible control mechanism."}},"QW-ACT-R50":{name:"audio or video that plays automatically has a control mechanism",description:"audio or video that plays automatically must have a control mechanism.",results:{I1:"No test targets found.",P1:"The test target has a visible control mechanism.",W1:"Can't collect data from the test target element.",W2:"Check if test target has a visible control mechanism."}},"QW-ACT-R51":{name:"video element visual-only content is media alternative for text",description:"This rule checks non-streaming silent video is a media alternative for text on the page.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"Check that the content in the video matches the information in the text."}},"QW-ACT-R52":{name:"video element visual-only content has description track",description:"This rule checks that description tracks that come with non-streaming video elements, without audio, are descriptive.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"Check if visual content has an accessible alternative."}},"QW-ACT-R53":{name:"video element visual-only content has transcript",description:"Non-streaming video elements without audio must have all visual information available in a transcript.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"Check if visual content has an accessible alternative."}},"QW-ACT-R54":{name:"video element visual-only content has audio track alternative",description:"Non-streaming video elements without audio must have an audio alternative.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"Check if visual content has an accessible alternative."}},"QW-ACT-R55":{name:"video element visual content has audio description",description:"This rule checks that non-streaming video elements have all visual information also contained in the audio.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"The test target has a sound track but we can't verify the volume. Check if the test target has audio and if it does check if visual content has an accessible alternative."}},"QW-ACT-R56":{name:"video element content is media alternative for text",description:"This rule checks non-streaming video is a media alternative for text on the page.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"Check that the content in the video matches the information in the text."}},"QW-ACT-R57":{name:"video element visual content has description track",description:"This rule checks that description tracks that come with non-streaming video elements are descriptive.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"The test target has a sound track but we can't verify the volume. Check if the test target has audio and if it does check if visual content has an accessible alternative."}},"QW-ACT-R58":{name:"audio element content has transcript",description:"Non-streaming audio elements must have a text alternative for all included auditory information.",results:{I1:"No test targets found.",W1:"Check if the test target audio has text-alternative."}},"QW-ACT-R59":{name:"audio element content is media alternative for text",description:"This rule checks audio is a media alternative for text on the page.",results:{I1:"No test targets found.",W1:"Check that the content in the audio matches the information in the text."}},"QW-ACT-R60":{name:"video element auditory content has captions",description:"This rule checks that captions are available for audio information in non-streaming video elements.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"The test target has a sound track but we can't verify the volume. Check if the test target has audio and if it does check if audio content has matching captions."}},"QW-ACT-R61":{name:"Audio and visuals of video element have transcript",description:"This rule checks that non-streaming video elements have all audio and visual information available in a transcript.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"The test target has a sound track but we can't verify the volume. Check if the test target has audio and a transcript. If it does check if the transcript contains all the visual and audio information of the video."}},"QW-ACT-R62":{name:"Element in sequential focus order has visible focus",description:"This rule checks that each element in sequential focus order has some visible focus indication.",results:{I1:"No test targets found.",W1:"Check if the element has some visible focus indication"}},"QW-ACT-R63":{name:"Document has a landmark with non-repeated content",description:"This rule checks that each page has an element with a landmark semantic role starting with non-repeated content",results:{I1:"No test targets found.",P1:"The page doesn't have repeated content.",W1:"Check either there is no non-repeated content after repeated content or there exists an element for which all the following are true: - the element has semantic role inheriting from landmark; and - the first perceivable content (in tree order in the flat tree) which is an inclusive descendant of the element is non-repeated content after repeated content; and - the element is included in the accessibility tree."}},"QW-ACT-R64":{name:"Document has heading for non-repeated content",description:"This rule checks that the non-repeated content contains a heading",results:{I1:"No test targets found.",P1:"The page doesn't have repeated content.",W1:"Check either there is no non-repeated content after repeated content or there exists an element for which all the following are true: - the element is non-repeated content after repeated content; and - the element has a semantic role of heading; and - the element is visible; and - the element is included in the accessibility tree."}},"QW-ACT-R65":{name:"Element with presentational children has no focusable content",description:"This rule checks that elements with a role that makes its children presentational do not contain focusable elements.",results:{I1:"No test targets found.",P1:"The element doesn't have descendants in the flat tree that are part of sequential focus navigation.",F1:"The element has descendants in the flat tree that are part of sequential focus navigation."}},"QW-ACT-R66":{name:"Menuitem has non-empty accessible name",description:"This rule checks that each element with a menuitem role has a non-empty accessible name.",results:{I1:"No test targets found.",P1:"The test target has a non-empty accessible name.",F1:"The test target accessible name doesn't exist or it's empty ('')."}},"QW-ACT-R67":{name:"Letter spacing in style attributes is not !important",description:"This rule checks that the style attribute is not used to prevent adjusting letter-spacing by using !important, except if it's at least 0.12 times the font size.",results:{I1:"No test targets found.",P1:"The letter-spacing property is not !important.",P2:"The letter-spacing is at least 0.12 times the font-size.",P3:"The cascaded letter-spacing is not the declared value.",F1:"CSS styles prevent the letter-spacing to be above the minimum value."}},"QW-ACT-R68":{name:"Line height in style attributes is not !important",description:"This rule checks that the style attribute is not used to prevent adjusting line-height by using !important, except if it's at least 1.5 times the font size.",results:{I1:"No test targets found.",P1:"The line-height property is not !important.",P2:"The line-height is at least 1.5 times the font-size.",P3:"The cascaded line-height is not the declared value.",F1:"CSS styles prevent the line-height to be above the minimum value."}},"QW-ACT-R69":{name:"Word spacing in style attributes is not !important",description:"This rule checks that the style attribute is not used to prevent adjusting word-spacing by using !important, except if it's at least 0.16 times the font size.",results:{I1:"No test targets found.",P1:"The word-spacing property is not !important.",P2:"The word-spacing is at least 0.16 times the font-size.",P3:"The cascaded word-spacing is not the declared value.",F1:"CSS styles prevent the word-spacing to be above the minimum value."}},"QW-ACT-R70":{name:"iframe with negative tabindex has no interactive elements",description:"This rule checks that `iframe` elements with a negative `tabindex` attribute value contain no interactive elements.",results:{I1:"No test targets found.",P1:"The nested browsing context does not include elements that are visible and part of the sequential focus navigation.",F1:"The nested browsing context includes elements that are visible and part of the sequential focus navigation."}},"QW-ACT-R71":{name:"`meta` element has no refresh delay (no exception)",description:"This rule checks that the `meta` element is not used for delayed redirecting or refreshing.",results:{I1:"No test targets found.",P1:"The test target refreshes/redirects immediately.",F1:"The test target refreshes after {seconds} seconds.",F2:"The test target redirects after {seconds} seconds."}},"QW-ACT-R72":{name:"First focusable element is link to non-repeated content",description:"This rule checks that the first focusable element is a link to non-repeated content in the page",results:{I1:"No test targets found.",W1:"Check that the first focusable element has an accessible name that communicates that it skips content",W2:"Check that the first focusable element skips to the main content and its accessible name communicates so.",F1:"The first focusable element is not keyboard actionable.",F2:"The first focusable element is not in the accessibility tree.",F3:"The first focusable element does not have the role of link.",F4:"The first focusable element does not skip to the main content.",F5:"The page does not have focusable elements."}},"QW-ACT-R73":{name:"Block of repeated content is collapsible",description:"This rule checks that repeated blocks of content are collapsible.",results:{I1:"No test targets found.",P1:"The page doesn't have repeated content.",W1:"For each block of repeated content in each test target, which is before (in the flat tree) at least one node of non-repeated content after repeated content, check that all the following are true: - there exists an instrument to make all nodes in this block not visible; and - there exists an instrument to remove all nodes in this block from the accessibility tree."}},"QW-ACT-R74":{name:"Document has an instrument to move focus to non-repeated content",description:"This rule checks that there is an instrument to move focus to non-repeated content in the page.",results:{I1:"No test targets found.",P1:"The page doesn't have repeated content.",W1:"The page has one or more instrument(s) to move focus. Check if any of these instrument(s) is being used before a block of repeated content, and the focus is moved to just before a block of non-repeated content.",W2:"Check if the page has any instrument(s) to move focus. Check if any of these instrument(s) is being used before a block of repeated content, and the focus is moved to just before a block of non-repeated content."}},"QW-ACT-R75":{name:"Bypass Blocks of Repeated Content",description:"This rule checks that each page has a mechanism to bypass repeated blocks of content.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R76":{name:"Text has enhanced contrast",description:"This rule checks that the highest possible contrast of every text character with its background meets the enhanced contrast requirement.",results:{I1:"No test targets found.",P1:"Element has contrast ratio higher than minimum.",P2:"Element doesn't have human language text.",P3:"Element has gradient with contrast ratio higher than minimum.",W1:"Element has text-shadow that needs manual verification.",W2:"Element has an image on background.",W3:"Element has an gradient that we can't verify.",F1:"Element has contrast ratio lower than minimum.",F2:"Element has gradient with contrast ratio lower than minimum."}},"QW-ACT-R77":{name:"ARIA required ID references exist",description:"This rule checks that every ID reference required by WAI-ARIA exists.",results:{I1:"No test targets found.",P1:"Referenced element exists.",F1:"Referenced element does not exist."}}},"wcag-techniques":{"QW-WCAG-T1":{name:"Providing text alternatives for the area elements of image maps",description:"This technique checks the text alternative of area elements of images maps",results:{I1:"No test targets found.",W1:"Please verify that the `alt` attribute describes correctly the corresponding area of the image.",F1:"The `alt` attribute doesn't exist or is empty ('')."}},"QW-WCAG-T2":{name:"Using caption elements to associate data table captions with data tables",description:"This technique checks the caption element is correctly use on tables",results:{I1:"No test targets found.",W1:"Please verify that the `caption` element identifies the table correctly.",F1:"The `caption` element doesn't exist or is empty ('')."}},"QW-WCAG-T3":{name:"Providing a description for groups of form controls using `fieldset` and `legend` elements",description:"This technique checks the correct use of the description element for form controls",results:{I1:"No test targets found.",W1:"Please verify that the `legend` description is valid.",F1:"The `fieldset` element is neither inside nor referencing a `form` element.",F2:"The `legend` element doesn't exist or is empty ('')."}},"QW-WCAG-T4":{name:"Using the summary attribute of the table element to give an overview of data tables",description:"This technique checks the correct use of the summary attribute for table elements",results:{I1:"No test targets found.",W1:"Please verify that the summary is a valid description of the table.",F1:"The summary is empty.",F2:"The caption is a duplicate of the summary."}},"QW-WCAG-T5":{name:"Using alt attributes on images used as submit buttons",description:"This technique checks all input elements that are buttons use alt text",results:{I1:"No test targets found.",W1:"Please verify that the value of the alt attribute correctly describes the function of the button.",F1:"The input element does not have an alt attribute.",F2:"The input element has an empty alt attribute."}},"QW-WCAG-T6":{name:"Using both keyboard and other device-specific functions",description:"The objective of this technique is to verify the parity of keyboard-specific and mouse-specific events when code that has a scripting function associated with an event is used",results:{I1:"No test targets found.",P1:"The mouse event attribute has a keyboard equivalent.",W1:"The test target has a keyboard event, but we can't verify if it's equivalent to the mouse event."}},"QW-WCAG-T7":{name:"Providing definitions for abbreviations by using the abbr element",description:"The objective of this technique is to provide expansions or definitions for abbreviations by using the abbr element",results:{I1:"No test targets found.",P1:"The test target has the definition in the title attribute.",F1:"The test target doesn't have the definition in the title attribute."}},"QW-WCAG-T8":{name:"Failure of Success Criterion 1.1.1 and 1.2.1 due to using text alternatives that are not alternatives",description:'This describes a failure condition for all techniques involving text alternatives. If the text in the "text alternative" cannot be used in place of the non-text content without losing information or function then it fails because it is not, in fact, an alternative to the non-text content',results:{I1:"No test targets found.",W1:"Text alternative needs manual verification.",F1:"Text alternative is not actually a text alternative for the non-text content."}},"QW-WCAG-T9":{name:"Organizing a page using headings",description:"The objective of this technique is to ensure that sections have headings that identify them and that the heading are used in the correct order",results:{I1:"No test targets found.",W1:"Please verify that headers are used to divide the page correctly.",F1:"Headings are not in the correct order.",F2:"Heading number is missing.",F3:"Headings don't start with h1"}},"QW-WCAG-T10":{name:"Combining adjacent image and text links for the same resource",description:"The objective of this technique is to provide both text and iconic representations of links without making the web page more confusing or difficult for keyboard users or assistive technology users. Since different users finding text and icons more usable, providing both can improve the accessibility of the link.",results:{I1:"No test targets found.",P1:"The a element contains an image that has an empty alt attribute.",W1:"The link contains an image that has an alt attribute that should be manually verified.",F1:"The link text is equal to the image's alternative text."}},"QW-WCAG-T11":{name:"Providing text alternatives on applet elements",description:"Provide a text alternative for an applet by using the alt attribute to label an applet and providing the text alternative in the body of the applet element. In this technique, both mechanisms are required due to the varying support of the alt attribute and applet body text by user agents.",results:{I1:"No test targets found.",W1:"Please verify that the values of the alt attribute and the body text correctly describe the applet element.",F1:"The applet element does not contain an alt attribute.",F2:"The applet element has an empty alt attribute.",F3:"The applet element does not contain alternative text in its body."}},"QW-WCAG-T12":{name:"Failure of Success Criterion 1.3.1 due to using th elements, caption elements, or non-empty summary attributes in layout tables",description:"The objective of this technique is to describe a failure that occurs when a table used only for layout includes either th elements, a summary attribute, or a caption element. This is a failure because it uses structural (or semantic) markup only for presentation. The intent of the HTML and XHTML table elements is to present data.",results:{I1:"No test targets found.",W4:"No incorrect elements used in layout table.",W1:"The table has a non-empty summary - Amend it if it's a layout table.",W2:"The table has a th element - Amend it if it's a layout table.",W3:"The table has a caption element - Amend it if it's a layout table."}},"QW-WCAG-T13":{name:"Failure of Success Criterion 2.2.2 due to using the blink element",description:"The blink element, while not part of the official HTML or XHTML specification, is supported by many user agents. It causes any text inside the element to blink at a predetermined rate. This cannot be interrupted by the user, nor can it be disabled as a preference. The blinking continues as long as the page is displayed. Therefore, content that uses blink fails the Success Criterion because blinking can continue for more than three seconds.",results:{I1:"No test targets found.",P1:"Blink is not used.",F1:"Used blink element."}},"QW-WCAG-T14":{name:"Using id and headers attributes to associate data cells with header cells in data tables",description:"This technique checks if data cells are associated with header cells in data tables.",results:{I1:"No test targets found.",I2:"This table is a layout table.",I3:"No header attributes are used in this data table.",P1:"id and headers attributes are correctly used.",F1:"This table is a layout table with id or headers attributes.",F2:"There are duplicate `id`s in this data table.",F3:"id and headers attributes are not correctly used."}},"QW-WCAG-T15":{name:"Using the link element and navigation tools",description:"The objective of this technique is to describe how the link element can provide metadata about the position of an HTML page within a set of Web pages or can assist in locating content with a set of Web pages.",results:{I1:"No test targets found.",I2:"The element doesn't contain a rel attribute or doesn't pertains navigation.",P1:"The link has rel and href attributes and pertains navigation.",F1:"The element doesn't contain an href attribute and pertains navigation."}},"QW-WCAG-T16":{name:"Using HTML according to spec",description:"This technique checks that the HTML or XHTML web page follows the specification.",results:{I1:"No test targets found.",P1:"The HTML document doesn't have errors.",W1:"The HTML document has warnings.",F1:"The HTML document has errors."}},"QW-WCAG-T17":{name:"Positioning labels to maximize predictability of relationships",description:"This technique checks the correct position of labels in forms",results:{I1:"No test targets found.",P1:"The form field has well positioned label.",F1:"The form field has incorrect positioned label.",F2:"The form field label is empty.",F3:"The form field label is not visible."}},"QW-WCAG-T18":{name:"Using table markup to present tabular information",description:"The objective of this technique is to present tabular information in a way that preserves relationships within the information even when users cannot see the table or the presentation format is changed. Using the table element with the child elements tr, th, and td makes these relationships perceivable.",results:{I1:"No test targets found.",P1:"There is at least one occurrence of table, tr, td and th.",F1:"There are missing table child elements."}},"QW-WCAG-T19":{name:"Providing submit buttons",description:"The objective of this technique is to provide a mechanism that allows users to explicitly request changes of context. The intended use of a submit button is to generate an HTTP request that submits data entered in a form, so it is an appropriate control to use for causing a change of context.",results:{I1:"No test targets found.",P1:"The form contains one of the following elements input[type~='submit image'], button[type='submit'].",F1:"Form tag doesn't contain any of the following elements input[type~='submit image'], button[type='submit']."}},"QW-WCAG-T20":{name:"Supplementing link text with the title attribute",description:"Supplementing link text with the title attribute",results:{I1:"No test targets found.",W1:"Please verify that the element's title attribute describes correctly the link.",F1:"The element's title attribute is empty.",F2:"The element contains a title attribute equal to the text in the link"}},"QW-WCAG-T21":{name:"Failure of Success Criteria 2.4.4, 2.4.9 and 4.1.2 due to not providing an accessible name for an image which is the only content in a link",description:"This technique checks the text alternative of images which are the only content of a link",results:{I1:"No test targets found.",P1:"The link has an accessible name.",F1:"The image doesn't have an accessible name."}},"QW-WCAG-T22":{name:"Failure of Success Criterion 3.2.1 and 3.2.5 due to opening a new window as soon as a new page is loaded",description:"The objective of this technique is to ensure that pages do not disorient users by opening up one or more new windows that automatically attain focus as soon as a page is loaded.",results:{I1:"No test targets found.",P1:"Browser didn't open new tab.",F1:"Browser opened a new tab."}},"QW-WCAG-T23":{name:"Adding a link at the top of each page that goes directly to the main content area",description:"The objective of this technique is to provide a mechanism to bypass blocks of material that are repeated on multiple Web pages by skipping directly to the main content of the Web page.",results:{I1:"No test targets found.",W1:"The first focusable control is a visible link to a <main> element.",W2:"The first focusable control is a visible link to some content in the Web Page. Verify if it links to the main content.",F1:"The first focusable control on the Web page links to an inexistent element.",F2:"The first focusable control on the Web page links to the top of the page.",F3:"The first focusable control on the Web page does not links to local content.",F4:"The first focusable control on the Web page is not a link.",F5:"This Web page does not have focusable controls."}},"QW-WCAG-T24":{name:"Failure of Success Criteria 2.1.1, 2.4.7, and 3.2.1 due to using script to remove focus when focus is received",description:"Content that normally receives focus when the content is accessed by keyboard may have this focus removed by scripting.",results:{I1:"No test targets found.",P1:"Element kept focus.",F1:"Element didn't keep focus."}},"QW-WCAG-T25":{name:"Using the scope attribute to associate header cells and data cells in data tables",description:"The objective of this technique is to associate header cells with data cells in complex tables using the scope attribute.",results:{I1:"No test targets found.",P1:"The element's scope attribute matches the following values: col, row, colgroup, rowgroup.",F1:"The element doesn't contain a scope attribute.",F2:"The element's scope attribute is empty.",F3:"The element's scope attribute doesn't match any of the following values: col, row, colgroup, rowgroup."}},"QW-WCAG-T26":{name:"Failure of Success Criterion 4.1.2 due to using script to make div or span a user interface control in HTML without providing a role for the control",description:"This failure demonstrates how using generic HTML elements to create user interface controls can make the controls inaccessible to assistive technology.",results:{I1:"No test targets found.",P1:"The element is a user interface control with an event handler.",F1:"The element is a forced user interface control without the proper role attribute."}},"QW-WCAG-T27":{name:"Failure of Success Criterion 1.4.8 due to using text that is justified (aligned to both the left and the right margins)",description:"This failure describes situations where blocks of text that are justified (aligned to both the left and the right margins) occurs in HTML, using the 'align' attribute.",results:{I1:"No test targets found.",P1:"This content is not justified.",F1:"This content shouldn't be justified."}},"QW-WCAG-T28":{name:"Using `percent, em, names` for font sizes",description:"This technique checks that all font-size attribute uses percent, em or names.",results:{I1:"No test targets found.",P1:"This test target has a font-size css property using an relative unit value with the important flag.",F1:"This test target has a font-size css property using an absolute unit value with the important flag."}},"QW-WCAG-T29":{name:"Specifying alignment either to the left or right in CSS",description:"This technique describes how to align blocks of text either left or right by setting the CSS text-align property.",results:{I1:"No test targets found.",P1:"This test target has a text-align css property equal to justify.",F1:"This test target has a text-align css property not equal to justify."}},"QW-WCAG-T30":{name:"Failure of Success Criterion 2.2.2 due to using text-decoration:blink without a mechanism to stop it in less than five seconds",description:"CSS defines the blink value for the text-decoration property. When used, it causes any text in elements with this property to blink at a predetermined rate. This cannot be interrupted by the user, nor can it be disabled as a user agent preference. The blinking continues as long as the page is displayed. Therefore, content that uses text-decoration:blink fails the Success Criterion because blinking can continue for more than three seconds.",results:{I1:"No test targets found.",F1:"This test target has a `text-decoration` property with the value `blink."}},"QW-WCAG-T31":{name:"Failure of Success Criterion 1.4.3, 1.4.6 and 1.4.8 due to specifying foreground colors without specifying background colors or vice versa",description:"Users with vision loss or cognitive, language and learning challenges often prefer specific foreground and background color combinations. In some cases, individuals with low vision will find it much easier to see a Web page that has white text on a black background, and they may have set their user agent to present this contrast. Many user agents make it possible for users to choose a preference about the foreground or background colors they would like to see without overriding all author-specified styles. This makes it possible for users to view pages where colors have not been specified by the author in their preferred color combination.",results:{I1:"No test targets found.",P1:"The test target has a author defined color and background css properties.",F1:"The test target has a author defined color css property but not a background css property.",F2:"The test target has a author defined background property but not a color css property."}},"QW-WCAG-T32":{name:"Using ol, ul and dl for lists or groups of links",description:"The objective of this technique is to create lists of related items using list elements appropriate for their purposes.",results:{I1:"No test targets found.",W1:"Check that content that has the visual appearance of a list (with or without bullets) is marked as an unordered list.",W2:"Check that content that has the visual appearance of a numbered list is marked as an ordered list.",W3:"Check that content is marked as a definition list when terms and their definitions are presented in the form of a list.",F1:"A list item is not contained in a correct list element."}},"QW-WCAG-T33":{name:"Using description lists - dd,dt",description:"Ensures <dt> and <dd> elements are contained by a <dl>",results:{I1:"No test targets found.",P1:"The test target is contained in a correct description list element.",F1:"The test target is not contained in a correct description list element."}},"QW-WCAG-T34":{name:"Using description lists - dl",description:"Ensures <dl> elements are structured correctly. <dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",results:{I1:"No test targets found.",P1:"The description list element is structured correctly",F1:"The description list element contains an incorrect element type",F2:"The description list element is not ordered correctly"}},"QW-WCAG-T35":{name:"`id` attribute value is unique",description:"This technique checks that all id attribute values on a single page are unique.",results:{I1:"No test targets found.",P1:"The test target has a unique `id` attribute.",F1:"Several elements have the same `id` attribute."}}},"best-practices":{"QW-BP1":{name:"Using h1-h6 to identify headings",description:"It is recommended to use HTML and XHTML heading markup to provide semantic code for headings in the content",results:{I1:"No test targets found.",W1:"Check that heading markup is used when content is a heading.",F1:"This page doesn't use headings."}},"QW-BP2":{name:"Concise images alt text",description:"Image alt text attribute with more than 100 characters",results:{I1:"No test targets found.",P1:"The img alt text attribute has less than 100 characters.",F1:"The img alt text attribute has more than 100 characters."}},"QW-BP4":{name:"Grouped links not within a nav element",description:"Set of 10 or more links not grouped within a list (nav)",results:{I1:"No test targets found.",F1:"It was found a group of 10 or more links not grouped within a nav element."}},"QW-BP5":{name:"Using table elements inside other table elements",description:"It is not recommended to use table elements inside other table elements",results:{I1:"No test targets found.",P1:"There are not table elements inside other table elements.",F1:"There are table elements inside other table elements"}},"QW-BP6":{name:"title element is not too long (100 characters)",description:"The webpage title element shouldn't have more than 100 characters",results:{I1:"No test targets found.",P1:"The page title has less than 100 characters.",F1:"The page title has 100 or more characters."}},"QW-BP7":{name:"Title element contains ASCII-art",description:"Title element contains ASCII-art",results:{I1:"No test targets found.",P1:"The title element doesn't contain ASCII art.",F1:"The title element contains ASCII art."}},"QW-BP8":{name:"Headings with images should have an accessible name",description:"Headings with at least one image should have an accessible name",results:{I1:"No test targets found.",P1:"This heading with at least one image has an accessible name.",F1:"This heading with at least one image does not have an accessible name."}},"QW-BP9":{name:"Table element without header cells has a caption",description:"A table without th elements should have a caption element to describe it.",results:{I1:"No test targets found.",P1:"Table doesn't have header cells but has a caption.",F1:"Table doesn't have header cells or caption."}},"QW-BP10":{name:"HTML elements are used to control visual presentation of content",description:"No HTML elements are used to control the visual presentation of content",results:{I1:"No test targets found.",P1:"The webpage doesn't use elements to control the visual content presentation.",F1:"The webpage uses the element {name} to control the visual content presentation."}},"QW-BP11":{name:"Using br to make a list",description:"Using 3 consecutive br elements",results:{I1:"No test targets found.",P1:"There are less than 3 consecutive br.",F1:"`br` elements are being be used as a list."}},"QW-BP12":{name:"Using scope col and row",description:"Using scope col in the first row and scope row in the first element of each row",results:{I1:"No test targets found.",P1:"The scope attribute is correctly used.",F1:"The scope attribute is incorrectly used."}},"QW-BP13":{name:"Using consecutive links with the same href and one contains an image",description:"Using consecutive links with the same href in which one of the links contains an image",results:{I1:"No test targets found.",P1:"There are no consecutive links with the same href in which one of the links contained an image.",F1:"There are consecutive links with the same href in which one of the links contained an image."}},"QW-BP15":{name:"At least one width attribute of an HTML element is expressed in absolute values",description:"At least one width attribute of an HTML element is expressed in absolute values",results:{I1:"No test targets found.",P1:"The test target `width` attribute uses relative units.",F1:"The test target `width` attribute uses absolute units."}},"QW-BP17":{name:"Adding a link at the beginning of a block of repeated content to go to the end of the block",description:"The objective of this technique is to provide a mechanism to bypass a block of material by skipping to the end of the block.",results:{I1:"No test targets found.",W1:"This link skips a content block.",F1:"This page does not have links."}},"QW-BP18":{name:"Using percentage values in CSS for container sizes",description:"The objective of this technique is to enable users to increase the size of text without having to scroll horizontally to read that text. To use this technique, an author specifies the width of text containers using percent values.",results:{I1:"No test targets found.",P1:"This test target has a `width` css property using percentage value with the important flag.",F1:"This test target has a `width` css property using `px` value with the important flag.",F2:"This test target has a `width` css property not using percentage value with the important flag."}},"QW-BP19":{name:"Landmark banner is top level",description:"Ensures the banner landmark is at top level",results:{I1:"No test targets found.",P1:"The banner landmark is at top level.",F1:"The banner landmark is not at top level."}},"QW-BP20":{name:"Landmark no duplicate banner",description:"Ensures the document has at most one banner landmark",results:{I1:"No test targets found.",P1:"There is one banner landmark",F1:"There are multiple banner landmarks"}},"QW-BP21":{name:"Landmark no duplicate contentinfo",description:"Ensures the document has at most one contentinfo landmark",results:{I1:"No test targets found.",P1:"There is one contentinfo landmark",F1:"There are multiple banner landmarks"}},"QW-BP22":{name:"Landmark has one main",description:"Ensures the document has a main landmark",results:{I1:"No test targets found.",P1:"There is one main landmark.",F1:"There are multiple main landmarks."}},"QW-BP23":{name:"Listitems are used semantically",description:"Ensures <li> elements are used semantically",results:{I1:"No test targets found.",P1:"Listitem is used semantically",F1:"Listitem is not used semantically not used semantically"}},"QW-BP24":{name:"Lists are used correctly",description:"Ensures that lists are structured correctly. <ul> and <ol> must only directly contain <li>, <script> or <template> elements",results:{I1:"No test targets found.",P1:"List is used correctly",F1:"List is not used correctly"}},"QW-BP25":{name:"Landmark complementary is top level",description:"Ensures the complementary landmark or aside is at top level",results:{I1:"No test targets found.",P1:"The complementary landmark is at top level.",F1:"The complementary landmark is not at top level."}},"QW-BP26":{name:"Landmark complementary is top level",description:"Ensures the contentinfo landmark is at top level",results:{I1:"No test targets found.",P1:"The complementary landmark is at top level.",F1:"The complementary landmark is not at top level."}},"QW-BP27":{name:"Landmark main is top level",description:"Ensures the main landmark is at top level",results:{I1:"No test targets found.",P1:"The main landmark is at top level.",F1:"The main landmark is not at top level."}},"QW-BP28":{name:"H1 element is used and unique",description:"Ensures there is only one H1",results:{P1:"The H1 element is used and unique",F1:"The H1 element is not present or used more than one time"}},"QW-BP29":{name:"HTML lang and xml:lang match",description:"The best practice checks that for the html element, there is no mismatch between the primary language in non-empty lang and xml:lang attributes, if both are used.",results:{I1:"No test targets found.",P1:"The `lang` and `xml:lang` attributes have the same value.",F1:"The `lang` and `xml:lang` attributes don't have the same value."}}}}},156:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.fi=void 0,t.fi={"act-rules":{"QW-ACT-R1":{name:"HTML-sivulla on sivuotsikko",description:"Tämä sääntö tarkastaa, että HTML-sivulla on 'title'-elementti.",results:{I1:"Kohteita ei löytynyt.",P1:"`Title`-elementti löytyy eikä se ole tyhjä.",F1:"`Title`-elementtiä ei löydy.",F2:"`Title`-elementti on tyhjä.",F3:"Löytynyt `title`-elementti ei ole sivun otsikkona."}},"QW-ACT-R2":{name:"`Html` -elementissä on `lang`-attribuutti",description:"Tämä sääntö tarkastaa, että `html`-elementillä on `lang`- tai `xml:lang`-attribuutti, joka ei ole tyhjä.",results:{I1:"Kohteita ei löytynyt.",P1:"`Lang`-attribuutti löytyi ja sille on asetettu arvo.",F1:"`Lang`-attribuuttia ei löydy tai se on tyhjä."}},"QW-ACT-R3":{name:"HTML-elementin `lang` ja `xml:lang` vastaavat toisiaan",description:"Tämä sääntö tarkastaa, että jos `html`-elementti sisältää sekä `lang`- että `xml:lang`-attribuutit, jotka eivät ole tyhjiä, niiden arvot vastaavat toisiaan.",results:{I1:"Kohteita ei löytynyt.",P1:"`Lang`- ja `xml:lang`-attribuuteilla on sama arvo.",F1:"`Lang`- ja `xml:lang`-attribuuttien arvot eivät vastaa toisiaan."}},"QW-ACT-R4":{name:"`Meta`-elementin uudelleenlatauksessa ei viivettä",description:"Tämä sääntö tarkastaa, että `meta`-elementtiä ei ole käytetty viivästettyyn uudelleenohjaukseen tai uudelleenlataukseen.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen uudelleen lataaminen tai uudelleenohjaus tehdään välittömästi.",P2:"Kohteen uudelleen lataaminen tai uudelleenohjaus tapahtuu yli 20 tunnin kuluttua.",F1:"Kohde uudelleenladataan {seconds} sekunnin jälkeen.",F2:"Kohde uudelleenohjataan {seconds} sekunnin jälkeen."}},"QW-ACT-R5":{name:"`Html`-elementin `lang`-attribuutin kelpoisuus",description:"Tämä sääntö tarkastaa, että `lang` tai `xml:lang` -attribuutilla on hyväksytty kielikoodi.",results:{I1:"Kohteita ei löytynyt.",P1:"`Lang`-attribuutti sisältää hyväksytyn kielikoodin.",F1:"`Lang`-attribuutti ei sisällä hyväksyttyä kielikoodia."}},"QW-ACT-R6":{name:"Kuvaa esittävällä painikkeella on saavutettava nimi",description:"Tämä sääntö tarkastaa, että jokaisella kuvaa esittävällä painikkeella on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä."}},"QW-ACT-R7":{name:"Sivun asentoa ei ole rajoitettu CSS:n `transform`-säännöllä",description:"Tämä sääntö tarkastaa, että sivun sisältöä ei ole rajoitettu vaaka- eikä pystyasentoon CSS:n `transform`-säännöllä.",results:{I1:"Kohteita ei löytynyt.",P1:"Sivulla olevan CSS:n `transform`-säännön `rotateZ`-funktiota käytetään `orientation`-ehdon kanssa tavalla, joka ei rajoita elementtiä pysty- tai vaakasuoraan esitystapaan.",F1:"Sivulla olevan CSS:n `transform`-säännön `rotate`-funktiota käytetään `orientation`-ehdon kanssa tavalla, joka rajoittaa elementin vaakasuoraan esitystapaan."}},"QW-ACT-R9":{name:"Linkeillä, joilla on samat saavutettavat nimet, on myös sama merkitys",description:"Tämä sääntö tarkastaa, että linkit, joilla on samat saavutettavat nimet, johtavat samaan tai vastaavaan sisältöön.",results:{I1:"Kohteita ei löytynyt.",P1:"Linkit, joilla on sama saavutettava nimi, johtavat samaan sisältöön.",F1:"Linkit, joilla on sama saavutettava nimi, johtavat eri sisältöihin. Varmista, että sisällöt vastaavat toisiaan."}},"QW-ACT-R10":{name:"`Iframe`-elementeillä, joilla on samat saavutettavat nimet, on myös sama tarkoitus",description:"Tämä sääntö tarkastaa, että `iframe`-elementit, joilla on sama saavutettava nimi, käyttävät upotuksessa samaa tai vastaavaa sisältöä.",results:{I1:"Kohteita ei löytynyt.",P1:"`Iframe`-elementeillä, joilla on sama saavutettava nimi, on sama sisältö.",F1:"`Iframe`-elementeillä, joilla on sama saavutettava nimi, on eri sisältö."}},"QW-ACT-R11":{name:"Painikkeella on saavutettava nimi",description:"Tämä sääntö tarkastaa, että jokaisella painike-elementillä on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R12":{name:"Linkillä on saavutettava nimi",description:"Tämä sääntö tarkastaa, että jokaisella linkillä on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R13":{name:"Elementillä, jolle on määritelty `aria-hidden`-attribuutti, ei ole kohdistettavaa sisältöä",description:"Tämä sääntö tarkastaa, että `aria-hidden` -attribuutin omaavat elementit eivät sisällä kohdistettavia alielementtejä.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen alielementit eivät ole kohdistettavia.",P2:"Kohde ei ole kohdistettava.",F1:"Kohteella on kohdistettavia alielementtejä.",F2:"Kohde on kohdistettava."}},"QW-ACT-R14":{name:"`Meta viewport` ei estä zoomausta",description:"Tämä sääntö tarkastaa, että `meta`-elementti säilyttää selaimen zoom-toiminnon.",results:{I1:"Kohteita ei löytynyt.",P1:"`Meta`-elementti, jolla on `name=viewport`-attribuutti, ei määritä `maximum-scale`- tai `user-scalable`-arvoja.",P2:"`Meta`-elementti, jolla on `name=viewport`-attribuutti mahdollistaa selaimen zoom-toiminnon käytön.",F1:"`Meta`-elementti, jolla on `name=viewport`-attribuutti, poistaa selaimelta mahdollisuuden zoomata käyttäen määrityksiä `user-scalable=no` tai `maximum-scale < 2`."}},"QW-ACT-R15":{name:"Ääni- tai videosisältö ei sisällä ääntä, joka käynnistyy automaattisesti",description:"Tämä sääntö tarkastaa, että äänisisällön automaattitoisto ei kestä yli kolmea (3) sekuntia, tai äänisisällölle on olemassa mekanismi, jonka avulla käyttäjä voi sen pysäyttää tai hiljentää.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voitu todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R16":{name:"Lomake-elementillä on saavutettava nimi",description:"Lomake-elementillä on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R17":{name:"Kuvalla on saavutettava nimi",description:"Tämä sääntö tarkastaa, että kaikilla kuvilla, joita ei ole merkitty koristeellisiksi, on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohde on koristeellinen.",P2:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä."}},"QW-ACT-R18":{name:"`Id`-attribuutin arvo on yksilöllinen",description:"Tämä sääntö tarkastaa, että jokaisen samalla sivulla esiintyvällä `id`-attribuutilla on yksilöllinen arvo.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen `id`-attribuutin arvo on yksilöllinen.",F1:"Usealla elementillä on sama `id`-attribuutin arvo."}},"QW-ACT-R19":{name:"`Iframe`-elementillä on saavutettava nimi",description:"Tämä sääntö tarkastaa, että jokaisella `iframe`-elementillä on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R20":{name:"`Role`-attribuutilla on sallittu arvo",description:"Tämä sääntö tarkastaa, että jokaisella `role`-attribuutilla on sallittu arvo.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on sallittu arvo `role`-attribuutissa.",F1:"Kohteen `role`-attribuutin arvo on virheellinen."}},"QW-ACT-R21":{name:"`Svg`-elementillä, jolla on eksplisiittinen rooli, on saavutettava nimi",description:"Tämä sääntö tarkastaa, että jokaisella `svg`-muotoisella kuvalla, joka on eksplisiittisesti sisällytetty saavutettavuuden sisältömalliin, on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R22":{name:"`Body`-elementin alielementin `lang`-attribuutin arvo on sallittu.",description:"Tämä sääntö tarkastaa, että sivun `body`-elementin sisällä olevan elementin `lang`-attribuutti sisältää hyväksytyn kielikoodin.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen `lang`-attribuutti sisältää hyväksytyn kielikoodin.",F1:"Kohteen `lang`-attribuutin kielikoodi on virheellinen."}},"QW-ACT-R23":{name:"Videon näkyvälle sisällölle on saavutettava vaihtoehto",description:"Tämä sääntö tarkastaa, että ääntä sisältävissä videoissa visuaaliselle sisällölle on tarjolla vaihtoehto myös ääni- tai tekstimuodossa.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voida todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R24":{name:"`Autocomplete`-attribuutilla on sallittu arvo",description:"Tämä sääntö tarkastaa, että HTML:n `autocomplete` -attribuutilla on sallittu arvo.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen `autocomplete`-attribuutilla on sallittu arvo.",F1:"Kohteen `autocomplete`-attribuutin arvo on virheellinen."}},"QW-ACT-R25":{name:"`ARIA-tilan tai -ominaisuuden käyttö on sallittua.",description:"Tämä sääntö tarkastaa, että WAI-ARIA-tiloja ja -ominaisuuksia on käytetty vain sallituissa elementeissä.",results:{I1:"Kohteita ei löytynyt.",P1:"`{attr}`-ominaisuus on tuettu tai peritty roolista `{role}`.",F1:"`{attr}`-ominaisuutta ei ole peritty eikä tuettu roolille `{role}`."}},"QW-ACT-R26":{name:"Videon äänisisällölle on saavutettava vaihtoehto",description:"Tämä sääntö tarkastaa, että videon äänisisällöille on olemassa vaihtoehtoinen esitystapa.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voida todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R27":{name:"ARIA-attribuutti löytyy WAI-ARIA -dokumentaatiosta",description:"Tämä sääntö tarkastaa, että jokainen käytetty `aria-*`-attribuutti on määritelty WAI-ARIA 1.1 -dokumentaatiossa.",results:{I1:"Kohteita ei löytynyt.",P1:"Kaikki elementissä esiintyvät `aria`-alkuiset attribuutit sisältyvään WAI-ARIA 1.1 -määrityksiin.",F1:"Yksi tai useampi `aria`-alkuinen attribuutti ei sisälly WAI-ARIA 1.1 -määrityksiin."}},"QW-ACT-R28":{name:"Elementillä, jolle on määritelty `role`-attribuutti, on annettu myös vaaditut tilat ja ominaisuudet",description:"Tämä sääntö tarkastaa, että elementeille, joille on määritelty `role`-attribuutti, on myös annettu kaikki kyseisen `role`-attribuutin yhteydessä vaadittavat tilat ja ominaisuudet.",results:{I1:"Kohteita ei löytynyt.",P1:"Kaikki kohde-elementin vaaditut attribuutit on annettu.",P2:"Kohde-elementin `role`-attribuuttiin ei liity pakollisia tila- tai ominaisuusmäärityksiä.",F1:"Kohde-elementiltä puuttuu vaadittuja tila- tai ominaisuusmäärityksiä."}},"QW-ACT-R29":{name:"Äänielementin sisältö on saatavissa myös tekstinä",description:"Tämä sääntö tarkastaa, onko pelkkää ääntä sisältävää sisällölle tarjolla myös tekstimuotoinen vaihtoehto.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voida todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R30":{name:"Elementin näkyvä nimi on osa sen saavutettavaa nimeä",description:"Tämä sääntö tarkastaa, että interaktiivisten elementtien kohdalla visuaalisesti näkyvissä nimi on osa sen saavutettavaa nimeä.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen näkyvä teksti vastaa kokonaan tai on osa sen saavutettavaa nimeä.",F1:"Kohteella ei ole saavutettavaa nimeä.",F2:"Kohteen näkyvä teksti ei vastaa sen saavutettavaa nimeä eikä ole sen osa."}},"QW-ACT-R31":{name:"Äänettömän videon näkyvälle sisällölle on saavutettava vaihtoehto",description:"Tämä sääntö tarkastaa, että tietosisältö videossa, jossa ei ole äänisisältöä, on saatavilla myös saavutettavassa vaihtoehtoisessa muodossa.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voida todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R32":{name:"Videon näkyvälle sisällölle on saavutettava vaihtoehto",description:"Tämä sääntö tarkastaa, että ääntä sisältävät videot sisältävät myös kuvailutulkkauksen.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voida todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R33":{name:"ARIA:n vaatima rooli kontekstissa",description:"Tämä sääntö tarkastaa, että elementti, jolla on eksplisiittinen semanttinen rooli, sijaitsee tämän roolin edellyttämässä yhteydessä.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen emoelementillä on kontekstin vaatima rooli.",F1:"Kohteen emoelementillä ei ole kontekstin vaatimaa roolia."}},"QW-ACT-R34":{name:"ARIA-tilalla tai -ominaisuudella on sallittu arvo",description:"Tämä sääntö tarkastaa, että jokaisella annetulla ARIA-tilalla ja -ominaisuudella on sallittu arvo.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen `{attr}`-attribuutilla on sallittu arvo.",F1:"Kohteen `{attr}`-attribuutin arvo on virheellinen."}},"QW-ACT-R35":{name:"Otsikolla on saavutettava nimi",description:"Tämä sääntö pätee mihin tahansa semanttiselta merkitykseltään otsikoksi määriteltyyn HTML-elementtiin, joka sisältyy saavutettavuuden sisältömalliin.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi, joka ei ole tyhjä.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä ('')."}},"QW-ACT-R36":{name:"Solun `headers`-attribuutti viittaa soluun samassa taulukkoelementissä.",description:"Tämä sääntö tarkastaa, että solun `headers`-attribuutti viittaa samassa taulukossa olevaan soluun, jolla on sarakkeen tai rivin otsikon semanttinen merkitys.",results:{I1:"Kohteita ei löytynyt.",P1:"Kaikki `headers`-attribuutin arvot viittaavat samassa taulukossa oleviin sarakkeen ja rivin otsikkosoluihin.",F1:"`Headers`-attribuutin arvo `{attr}` viittaa elementin `id`-arvoon, jota ei esiinny samassa taulukossa.",F2:"Headers-attribuutin arvo `{attr}` viittaa samassa taulukossa olevaan elementtiin, joka ei ole sarakkeen tai rivin otsikko."}},"QW-ACT-R37":{name:"Teksti täyttää kontrastin vähimmäisvaatimukset",description:"Tämä sääntö tarkastaa, että jokaisen tekstissä esiintyvän kirjoitusmerkin suurin mahdollinen kontrasti taustaansa vasten täyttää vähimmäisvaatimukset kontrastille.",results:{I1:"Kohteita ei löytynyt.",P1:"Elementin kontrasti ylittää vähimmäisvaatimukset.",P2:"Elementin merkeillä ei esitetä tekstiä luonnollisella kielellä.",P3:"Elementin kontrasti taustan liukuvärin kanssa ylittää vähimmäisvaatimukset.",W1:"Elementillä on tekstin varjostus, joka vaatii manuaalista tarkistusta.",W2:"Elementin taustalla on kuva.",W3:"Elementillä taustalla on liukuväri, jota emme pysty todentamaan.",F1:"Elementin kontrasti ei täytä vähimmäisvaatimuksia.",F2:"Elementin kontrasti taustan liukuvärin kanssa ei täytä vähimmäisvaatimuksia."}},"QW-ACT-R38":{name:"ARIA:n vaatimat omistetut elementit",description:"Tämä sääntö tarkastaa, että elementillä, jolla on eksplisiittinen semanttinen rooli, on vähintään yksi roolin vaatima omistettu elementti.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohde omistaa vain elementtejä, joilla on vaadittu rooli.",F1:"Kohde omistaa elementtejä, joilla ei ole vaadittua roolia."}},"QW-ACT-R39":{name:"Kaikki taulukon otsikkosolut kohdistuvat sisältösoluihin",description:"Tämä sääntö tarkastaa, että taulukkoelementin jokainen otsikkosolu kohdistuu johonkin sisältösoluun.",results:{I1:"Kohteita ei löytynyt.",P1:"Sarakkeen otsikkoelementti kohdistuu ainakin yhteen soluun.",F1:"Sarakkeen otsikkoelementti ei kohdistu yhteenkään soluun."}},"QW-ACT-R40":{name:"CSS:n `overflow`-määritys ei leikkaa zoomattua tekstiä.",description:"Tämä sääntö tarkastaa, että tekstit eivät tarkoituksetta leikkaudu `overflow`-määrityksellä, kun sivua zoomataan 200 %:lla 1280 x 1024 -kokoisessa näkymässä.",results:{I1:"Kohteita ei löytynyt.",W1:"Tarkista, etteivät tekstit tai niitä kehystävät elementit leikkaudu `overflow`-määrityksellä."}},"QW-ACT-R41":{name:"Virheilmoitus selittää virheen lomakekentän syötteessä.",description:"Tämä sääntö tarkastaa, että kun käyttäjä on syöttänyt lomakkeen kenttään virheellisen arvon tai antanut sen virheellisessä muodossa, saatu virheilmoitus kertoo virheen syyn tai miten sen voi korjata.",results:{I1:"Kohteita ei löytynyt.",W1:"Tarkista, että saatu virheilmoitus kertoo virheen syyn tai, miten sen voi korjata."}},"QW-ACT-R42":{name:"`Object`-elementillä on saavutettava nimi, joka ei ole tyhjä.",description:"Tämä sääntö tarkastaa, että jokaisella `object`-elementillä on saavutettava nimi, joka ei ole tyhjä.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi, joka ei ole tyhjä.",F1:"Kohteelta ei löydy saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R43":{name:"Vieritettävä elementti on käytettävissä näppäimistöllä",description:"Tämä sääntö tarkastaa, että vieritettäviä elementtejä voi vierittää pelkän näppäimistön avulla.",results:{I1:"Kohteita ei löytynyt.",P1:"Tämä vieritettävä osio sisältyy järjestyksessä kohdistamisella navigoitaviin sisältöihin.",F1:"Tämä vertikaalisesti tai horisontaalisesti vieritettävä osioelementti ei sisälly järjestyksessä kohdistamisella navigoitaviin sisältöihin eikä sisällä myöskään sellaisia alielementtejä."}},"QW-ACT-R44":{name:"Samassa yhteydessä sijaitsevilla linkeillä, joilla on sama saavutettava nimi, on sama käyttötarkoitusta.",description:"Tämä sääntö tarkastaa, että samassa yhteydessä sijaitsevat linkit, joilla sama saavutettava nimi, palauttavat saman tai vastaavan sisällön.",results:{I1:"Kohteita ei löytynyt.",P1:"Linkit, joilla on sama saavutettava nimi, viittaavaan samaan sisältöön.",W1:"Linkit, joilla on sama saavutettava nimi, viittaavat eri sisältöihin. Varmista, että nämä sisällöt ovat yhteneviä."}},"QW-ACT-R48":{name:"Koristeelliset elementit eivät näy saavutettavuuspuussa",description:"Tämä sääntö tarkastaa, että koristeellisiksi merkittyjä elementtejä ei ole sisällytetty saavutettavuuden sisältömalliin tai niillä on ainoastaan visualisoiva rooli.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohde ei sisälly saavutettavuuden sisältömalliin.",F1:"Kohde sisältyy saavutettavuuden sisältömalliin."}},"QW-ACT-R49":{name:"Ääni- tai videosisältö, joka käynnistyy automaattisesti, ei sisällä ääntä, joka kestää yli kolme (3) sekuntia",description:"Ääni- tai videosisältö, joka käynnistyy automaattisesti, ei tuota yli kolme (3) sekuntia kestävää ääntä.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen toisto kestää kolme (3) sekuntia tai vähemmän.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että kohteella on näkyvät toiminnot sen hallitsemiseksi."}},"QW-ACT-R50":{name:"Ääni- tai videosisällöllä, joka käynnistyy automaattisesti, on ohjausvälineet.",description:"Ääni- tai videosisällölle, joka käynnistyy automaattisesti, täytyy olla tarjolla toiminnallisuudet sen hallitsemiseksi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on näkyvät ohjausvälineet.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että kohteella on näkyvät toiminnot sen hallitsemiseksi."}},"QW-ACT-R51":{name:"Videon näkyvä sisältö on tekstin mediavastine",description:"Tämä sääntö tarkastaa, että pelkkää kuvaa sisältävä videotallenne on sivulla olevan tekstin mediavastine.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että videotallenteen sisältö vastaa tekstiä."}},"QW-ACT-R52":{name:"Ääntä sisältämättömän videon videosisällölle on kuvailutulkkauksen tekstitysraita",description:"Tämä sääntö tarkastaa, että ääntä sisältämättömien videotallenteiden kuvailutulkkauksen tekstitysraidat kuvailevat näkyvän sisällön.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että näkyvälle sisällölle on tarjolla saavutettava vaihtoehto."}},"QW-ACT-R53":{name:"Vain kuvaa sisältävälle videolle on tarjolla transkripti",description:"Ääntä sisältämättömän videotallenteen kaikki näkyvä tieto tulee löytyä transkriptista.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että näkyvälle sisällölle on tarjolla saavutettava vaihtoehto."}},"QW-ACT-R54":{name:"Vain kuvaa sisältävälle videotallenteelle on tarjolla vaihtoehto äänitallenteena",description:"Ääntä sisältämättömälle videotallenteelle täytyy löytyä vaihtoehto äänitallenteen muodossa.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että näkyvälle sisällölle on tarjolla saavutettava vaihtoehto."}},"QW-ACT-R55":{name:"Videon näkyvälle sisällölle on tarjolla kuvailutulkkaus",description:"Tämä sääntö tarkastaa, että videotallenteen kaikki näkyvä sisältö löytyy myös videon ääniraidalta.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Kohde-elementillä on ääniraita, mutta sen voimakkuuden todentaminen ei onnistunut. Tarkista, että kohteella on ääniraita, ja jos on, että se tarjoaa videon näkyvälle sisällölle saavutettavan vaihtoehdon."}},"QW-ACT-R56":{name:"Video on tekstin mediavastine",description:"Tämä sääntö tarkastaa, että videotallenne on sivulla olevan tekstin mediavastine.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että videotallenteen sisältö vastaa tekstiä."}},"QW-ACT-R57":{name:"Videon näkyvälle sisällölle on kuvailutulkkauksen tekstitysraita",description:"Tämä sääntö tarkastaa, että videotallenteiden kuvailutulkkauksen tekstitysraidat kuvailevat näkyvän sisällön.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Kohde-elementillä on ääniraita, mutta sen voimakkuuden todentaminen ei onnistunut. Tarkista, että kohteella on ääniraita, ja jos on, että se tarjoaa videon visuaaliselle sisällölle saavutettavan vaihtoehdon."}},"QW-ACT-R58":{name:"Äänitallenteelle on transkripti",description:"Äänitallenteille pitää olla tekstimuotoinen vaihtoehto, joka sisältää kaiken ääni-informaation.",results:{I1:"Kohteita ei löytynyt.",W1:"Tarkista, että kohteen ääniraidalle löytyy tekstimuotoinen vaihtoehto."}},"QW-ACT-R59":{name:"Äänitallenne on tekstin mediavastine",description:"Tämä sääntö tarkastaa, että äänitallenne on sivulla olevan tekstin mediavastine.",results:{I1:"Kohteita ei löytynyt.",W1:"Tarkista, että äänitallenteen sisältö vastaa tekstiä."}},"QW-ACT-R60":{name:"Videon äänisisällölle on tekstitys",description:"Tämä sääntö tarkastaa, että videotallenteen äänisisällölle on tarjolla tekstitys.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Kohde-elementillä on ääniraita, mutta sen voimakkuuden todentaminen ei onnistunut. Tarkista, että kohteella on ääniraita, ja jos on, että äänisisällölle on sitä vastaava tekstitys."}},"QW-ACT-R61":{name:"Video elementin ääni- ja kuvasisällölle on olemassa transkripti",description:"Tämä sääntö tarkastaa, että tallennetulle videosisällölle on transkripti, joka kattaa sen kaiken ääni- ja kuvasisällön.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Kohde-elementillä on ääniraita, mutta sen voimakkuuden todentaminen ei onnistunut. Tarkista, että kohteella on ääniraita ja transkripti. Jos on, tarkista, että transkripti kuvaa kaiken videolla olevan ääni- ja kuvasisällön."}},"QW-ACT-R62":{name:"Järjestyksessä kohdistettaviin sisältöihin kuuluvalla elementillä on näkyvä kohdistus",description:"Tämä sääntö tarkastaa, että jokaisella järjestyksessä kohdistettavalla elementillä on jokin näkyvä kohdistuksen osoitus.",results:{I1:"Kohteita ei löytynyt.",W1:"Tarkista, että elementillä on jokin näkyvä kohdistuksen osoitus."}},"QW-ACT-R63":{name:"Dokumentilla on maamerkki ei-toistuvalle sisällölle",description:"Tämä sääntö tarkastaa, että jokaisella sivulla on elementti, jonka semanttinen merkitys on olla maamerkki ei-toistuvalle sisällölle.",results:{I1:"Kohteita ei löytynyt.",P1:"Sivulla ei ole toistuvaa sisältöä.",W1:"Tarkista, että sivulla ei joko ole ei-toistuvaa sisältöä toistuvan sisällön jälkeen tai esiintyy elementti, joka täyttää seuraavat ehdot: elementillä on maamerkin semanttinen merkitys, elementin tulostusjärjestyksessä ensimmäinen havaittava alielementti on toistuvaa sisältöä seuraavaa ei-toistuvaa sisältöä ja elementti sisältyy saavutettavuuden sisältömalliin."}},"QW-ACT-R64":{name:"Dokumentilla on otsikko ei-toistuvalle sisällölle",description:"Tämä sääntö tarkastaa, että ei-toistuvalle sisällölle on otsikko.",results:{I1:"Kohteita ei löytynyt.",P1:"Sivulla ei ole toistuvaa sisältöä.",W1:"Tarkista, että sivulla ei joko ole ei-toistuvaa sisältöä toistuvan sisällön jälkeen tai esiintyy elementti, joka täyttää seuraavat ehdot: elementti on ei-toistuvaa sisältöä, joka sijaitsee toistuvan sisällön jälkeen; elementillä on otsikon semanttinen merkitys; elementti on näkyvissä ja elementti sisältyy saavutettavuuden sisältömalliin."}},"QW-ACT-R65":{name:"Elementeillä, jotka sisältävät vain visualisoivia alielementtejä, ei ole kohdistettavia sisältöjä",description:"Tämä sääntö tarkastaa, että elementit, joiden rooli tekee niiden alielementeistä vain visualisoivia, eivät sisällä kohdistettavia elementtejä.",results:{I1:"Kohteita ei löytynyt.",P1:"Elementillä ei ole tulostushierarkiassa alielementtejä, jotka olisivat järjestyksessä kohdistettavia.",F1:"Elementillä on tulostushierarkiassa alielementtejä, jotka ovat järjestyksessä kohdistettavia."}},"QW-ACT-R66":{name:"Valikon osalla on ei-tyhjä saavutettava nimi",description:"Tämä sääntö tarkastaa, että jokaisella elementillä, jolla on `menuitem`-rooli, on ei-tyhjä saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on ei-tyhjä saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R67":{name:"Tyylimäärityksissä kirjainten välistystä ei ole määritetty `!important`-säännöllä",description:"Tämä sääntö tarkastaa, että tyylimäärityksissä ei ole estetty kirjainten välityksen muokkaamista `!important`-säännöllä, paitsi jos `letter-spacing`-määreen arvo on vähintään 0,12 kertaa kirjaisimen koko.",results:{I1:"Kohteita ei löytynyt.",P1:"`Letter-spacing`-ominaisuudella ei ole `!important`-määrettä.",P2:"`Letter-spacing`-arvo on vähintään 0,12 kertaa kirjaisimen koko.",P3:"Elementille määräytynyt `letter-spacing`-arvo ei ole sama kuin elementille kirjattu arvo.",F1:"CSS-säännöt estävät `letter-spacing`-arvoa täyttämästä minimivaatimusta."}},"QW-ACT-R68":{name:"Tyylimäärityksissä rivin korkeutta ei ole määritetty `!important`-säännöllä",description:"Tämä sääntö tarkastaa, että tyylimäärityksissä ei ole estetty rivin korkeuden muokkaamista `!important`-säännöllä, paitsi jos rivikorkeus on vähintään 1,5 kertaa kirjaisimen koko.",results:{I1:"Kohteita ei löytynyt.",P1:"`Line-height`-ominaisuudella ei ole `!important`-määrettä.",P2:"`Line-height`-arvo on vähintään 1,5 kertaa kirjaisimen koko.",P3:"Elementille määräytynyt `line-height`-arvo ei ole sama kuin elementille kirjattu arvo.",F1:"CSS-säännöt estävät `line-height`-arvoa täyttämästä minimivaatimusta."}},"QW-ACT-R69":{name:"Tyylimäärityksissä sanojen välistystä ei ole määritetty `!important`-säännöllä",description:"Tämä sääntö tarkastaa, että tyylimäärityksissä ei ole estetty sanojen välistyksen muokkaamista `!important`-säännöllä, paitsi jos `word-spacing`-arvo on vähintään 0,16 kertaa kirjaisimen koko.",results:{I1:"Kohteita ei löytynyt.",P1:"`Word-spacing`-ominaisuudella ei ole `!important`-määrettä.",P2:"`Word-spacing`-arvo on vähintään 0,16 kertaa kirjaisimen koko.",P3:"Elementille määräytynyt `word-spacing`-arvo ei ole sama kuin elementille kirjattu arvo.",F1:"CSS-säännöt estävät `word-spacing`-arvoa täyttämästä minimivaatimusta."}},"QW-ACT-R70":{name:"`Iframe`, jolla on negatiivinen `tabindex`-attribuutti, ei sisällä interaktiivisia elementtejä",description:"Tämä sääntö tarkastaa, että `iframe`-elementti, jonka `tabindex`-attribuutilla on negatiivinen arvo, ei sisällä interaktiivisia elementtejä.",results:{I1:"Kohteita ei löytynyt.",P1:"Sisällytetty konteksti ei sisällä elementtejä, jotka olisivat näkyviä ja järjestyksessä kohdistettavia.",F1:"Sisällytetty konteksti sisältää elementtejä, jotka ovat näkyviä ja järjestyksessä kohdistettavia."}},"QW-ACT-R71":{name:"`Meta`-elementillä ei ole päivitysviivettä (ei poikkeusta)",description:"Tämä sääntö tarkastaa, että `meta`-elementtiä ei ole käytetty viivästettyyn uudelleenohjaukseen tai uudelleenlataukseen.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen uudelleen lataaminen tai uudelleenohjaus tehdään välittömästi.",F1:"Kohde uudelleenladataan {seconds} sekunnin jälkeen.",F2:"Kohde uudelleenohjataan {seconds} sekunnin jälkeen."}},"QW-ACT-R72":{name:"Ensimmäinen kohdistettava elementti on linkki ei-toistuvaan sisältöön",description:"Tämä sääntö tarkastaa, että ensimmäinen kohdistettava elementti on linkki ei-toistuvaan sisältöön sivulla.",results:{I1:"Kohteita ei löytynyt.",W1:"Tarkista, että ensimmäisellä kohdistettavalla elementillä on saavutettava nimi, jonka antaa ymmärtää, että sen avulla ohitetaan sisältöjä.",W2:"Tarkista, että ensimmäinen kohdistettava elementti hyppää sivun pääsisältöön ja että sen saavutettava nimi antaa niin myös ymmärtää.",F1:"Ensimmäinen kohdistettava elementti ei ole näppäimistöltä käytettävissä.",F2:"Ensimmäinen kohdistettava elementti ei sisälly saavutettavuuden sisältömalliin.",F3:"Ensimmäinen kohdistettava elementti ei ole tyypiltään linkki.",F4:"Ensimmäinen kohdistettava elementti ei hyppää sivun pääsisältöön.",F5:"Sivulla ei ole kohdistettavia elementtejä."}},"QW-ACT-R73":{name:"Toistuvan sisällön lohko on kutistettava",description:"Tämä sääntö tarkastaa, että toistuvien sisältöjen lohkot ovat kutistettavia.",results:{I1:"Kohteita ei löytynyt.",P1:"Sivulla ei ole toistuvia sisältöjä.",W1:"Tarkista jokaisen toistuvan sisällön lohkosta, joka sijaitsee elementissä, jota tulostusjärjestyksessä seuraa vähintään yksi toistuvan sisällön jälkeinen ei-toistuvan sisällön elementti, että seuraavat ehdot täyttyvät: on toiminnallisuus, jolla poistaa kaikkien tämän lohkon osioiden näkyvyys, ja on toiminnallisuus, jolla poistaa nämä osiot saavutettavuuden sisältömallista."}},"QW-ACT-R74":{name:"Dokumentilla on mekanismi kohdistuksen siirtämiseksi ei-toistuvaan sisältöön",description:"Tämä sääntö tarkastaa, että on olemassa mekanismi kohdistuksen siirtämiseksi ei-toistuvaan sisältöön sivulla.",results:{I1:"Kohteita ei löytynyt.",P1:"Tällä sivulla ei ole toistuvaa sisältöä.",W1:"Sivulta löytyy yksi tai useampi toiminnallisuus kohdistuksen siirtämiseksi. Tarkista, että jotain näistä käytetään ennen toistuvan sisällön lohkoa ja että kohdistus siirtyy kohtaan juuri ennen ei-toistuvan sisällön lohkoa.",W2:"Tarkista, että sivulta löytyy vähintään yksi toiminnallisuus kohdistuksen siirtämiseksi. Tarkista, että jotain näistä käytetään ennen toistuvan sisällön lohkoa ja että kohdistus siirtyy kohtaan juuri ennen ei-toistuvan sisällön lohkoa."}},"QW-ACT-R75":{name:"Ohita toistuvan sisällön lohkot",description:"Tämä sääntö tarkastaa, että jokaisella sivulla on mekanismi toistuvan sisällön lohkojen ohittamiseen.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voida todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R76":{name:"Teksti täyttää parannetun kontrastin vaatimukset",description:"Tämä sääntö tarkastaa, että jokaisen tekstissä esiintyvän kirjoitusmerkin suurin mahdollinen kontrasti taustaansa vasten täyttää parannetun kontrastin vaatimukset.",results:{I1:"Kohteita ei löytynyt.",P1:"Elementin kontrasti ylittää vähimmäisvaatimukset.",P2:"Elementin merkeillä ei esitetä tekstiä luonnollisella kielellä.",P3:"Elementin kontrasti taustan liukuvärin kanssa ylittää vähimmäisvaatimukset.",W1:"Elementillä on tekstin varjostus, joka vaatii manuaalista tarkistusta.",W2:"Elementin taustalla on kuva.",W3:"Elementillä taustalla on liukuväri, jota emme pysty todentamaan.",F1:"Elementin kontrasti ei täytä vähimmäisvaatimuksia.",F2:"Elementin kontrasti taustan liukuvärin kanssa ei täytä vähimmäisvaatimuksia."}},"QW-ACT-R77":{name:"ARIA required ID references exist",description:"This rule checks that every ID reference required by WAI-ARIA exists.",results:{I1:"No test targets found.",P1:"Referenced element exists.",F1:"Referenced element does not exist."}}}}},409:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(258),t),a(n(156),t),a(n(173),t),a(n(497),t),a(n(564),t)},173:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.nb=void 0,t.nb={"act-rules":{"QW-ACT-R1":{name:"HTML-side har en tittel",description:"Denne regelen sjekker at en HTML-side har en tittel.",results:{I1:"Ingen testobjekt funnet.",P1:"`title`-element eksisterer og er ikke tomt ('').",F1:"`title`-element eksisterer ikke.",F2:"`title`-element er tomt ('').",F3:"`title`-element er ikke i samme kontekst."}},"QW-ACT-R2":{name:"HTML har en lang-attributt",description:"Denne regelen sjekker at html-element ikke har et tomt lang- eller xml:lang-attributt.",results:{I1:"Ingen testobjekt funnet.",P1:"`lang`-attributtet finnes og har en verdi.",F1:"`lang`-attributtet finnes ikke eller er tomt ('')."}},"QW-ACT-R3":{name:"HTML lang og xml:lang er like",description:"Regelen sjekker at det for html-element er brukt samme verdi for primærspråk i ikke-tomme lang- og xml:lang-attributt, der begge disse attributtene er brukt.",results:{I1:"Ingen testobjekt funnet.",P1:"Attributtene `lang` og `xml:lang` har samme verdi.",F1:"Attributtene `lang` og `xml:lang` har ikke samme verdi."}},"QW-ACT-R4":{name:"Meta-refresh ingen forsinkelse",description:"Denne regelen sjekker at meta-element ikke brukes til forsinket omdirigering eller oppdatering.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet oppdateres/omdirigeres umiddelbart.",P2:"Testobjektet oppdateres/omdirigeres etter mer enn 20 timer.",F1:"Testobjektet oppdateres etter {seconds} sekunder.",F2:"Testobjektet omdirigeres etter {seconds} sekunder."}},"QW-ACT-R5":{name:"HTML lang-attributtet har gyldig innhold",description:"Denne regelen sjekker at lang- eller xml:lang-attributtet har en gyldig språkundertag.",results:{I1:"Ingen testobjekt funnet.",P1:"`lang`-attributtet har en gyldig verdi.",F1:"`lang`-attributtet har ikke en gyldig verdi."}},"QW-ACT-R6":{name:"Knapper kodet som bilde har et tilgjengelig navn",description:"Denne testregelen sjekker at knapper kodet som bilde har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Knapp kodet som bilde har et tilgjengelig navn.",F1:"Knapp kodet som bilde har ikke et tilgjengelig navn."}},"QW-ACT-R7":{name:"Visningsretning på nettsiden er ikke begrenset ved bruk av CSS-transformeringsegenskap",description:"Denne regelen sjekker at innhold på siden, ikke er begrenset til bare liggende eller stående visningsretning ved bruk av CSS-transformeringsegenskaper.",results:{I1:"Ingen testobjekt funnet.",P1:"En side der CSS-egenskaper ikke begrenser visningsretningen til verken stående eller liggende visningsretning.",F1:"En side der CSS-egenskaper begrenser visningsretningen til bare liggende visningsretning."}},"QW-ACT-R9":{name:"Lenker med identisk tilgjengelig navn har samme formål",description:"Denne regelen sjekker at lenker med identisk tilgjengelig navn har samme eller tilsvarende lenkemål.",results:{I1:"Ingen testobjekt funnet.",P1:"`Lenker` med samme tilgjengelige navn har samme lenkemål.",F1:"`Lenker` med samme tilgjengelige navn har ulikt lenkemål. Verifiser at lenkemålet er tilsvarende."}},"QW-ACT-R10":{name:"`iframe`-element med identisk tilgjengelige navn har tilsvarende formål",description:"Denne regelen sjekker at `iframe`-element med identiske tilgjengelige navn har samme innhold.",results:{I1:"Ingen testobjekt funnet.",P1:"`iframes` med samme tilgjengelige navn har likt innhold.",F1:"`iframes` med samme tilgjengelige navn har forskjellig innhold."}},"QW-ACT-R11":{name:"Knapper har et tilgjengelig navn",description:"Denne regelen sjekker at alle knapper kodet som button har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Knapp har et tilgjengelig navn.",F1:"Knapp mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R12":{name:"Lenker har et tilgjengelig navn",description:"Denne regelen sjekker at alle lenker har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Lenke med tilgjengelig navn.",F1:"Lenke mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R13":{name:"Element med `aria-hidden` inneholder ikke element som kan få fokus",description:"Denne regelen sjekker at element kodet med aria-aria-hidden-attributtet ikke inneholder element som kan få fokus.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet inneholder ikke element som kan få fokus.",P2:"Testobjektet kan ikke få fokus.",F1:"Testobjektet inneholder element som kan få fokus.",F2:"Testobjektet kan få fokus."}},"QW-ACT-R14":{name:"Bruk av meta viewport hindrer ikke zoom",description:"Denne regelen sjekker at bruk av meta-element beholder brukeragentens evne til å zoome.",results:{I1:"Ingen testobjekt funnet.",P1:"`meta` element med `name='viewport'` attributt definerer ikke verdiene `maximum-scale` og `user-scalable`.",P2:"`meta` element med `name='viewport'` attributt begrenser ikke brukeragentens evne til å zoome",F1:"`meta` element med `name='viewport'` attributt begrenser brukeragentens evne til å zoome ved bruk av user-scalable=no eller maximum-scale < 2."}},"QW-ACT-R15":{name:"Lyd eller video har ikke lyd som spilles av automatisk",description:"Denne regelen sjekker at automatisk avspilling av lyd ikke varer i mer enn 3 sekunder, eller at det finnes en kontrollmekanisme for å stoppe eller dempe lyd.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk samsvar basert på testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på testregelen ",F1:"Testobjektet feilet basert på testregelen "}},"QW-ACT-R16":{name:"Skjemaelement har et tilgjengelig navn",description:"Denne regelen sjekker at alle skjemaelement har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Skjemaelementet har et tilgjengelig navn.",F1:"Skjemaelementet mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R17":{name:"Bilder har et tilgjengelig navn",description:"Denne regelen sjekker at alle bilder som ikke er markert som dekorative, har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Bilde er markert som dekorativt.",P2:"Bilde har et tilgjengelig navn.",F1:"Bilde som ikke er markert som dekorativt mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R18":{name:"`id`-attributt har en unik verdi",description:"Denne regelen sjekker at alle id-attributt på en enkelt nettside er unike.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjekt har unik verdi på `id`-attributt.",F1:"Flere testobjekt har samme verdi på `id`-attributtet."}},"QW-ACT-R19":{name:"iframe-element har tilgjengelig navn",description:"Denne regelen sjekker at alle iframe-element har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"iframe-element har et tilgjengelig navn.",F1:"iframe-element mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R20":{name:"role-attributt har en gyldig verdi",description:"Denne regelen sjekker at alle role-attributt har en gyldig verdi.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med gyldig `role`-attributt.",F1:"Element med ugyldig `role`-attributt."}},"QW-ACT-R21":{name:"svg-element med en eksplisitt rolle har et tilgjengelig navn",description:"Denne regelen sjekker at alle SVG-element som er eksplisitt inkludert i accessibility tree har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"svg-element som er inkludert i accessibility tree har et tilgjengelig navn.",F1:"svg-element som er inkludert i accessibility tree mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R22":{name:"lang-attributt har en gyldig språkkode",description:"Denne regelen sjekker at alle ikke-tomme lang-attributt for et element på nettsiden har en gyldig språkkode.",results:{I1:"Ingen testobjekt funnet.",P1:"Element har `lang`-attributt med gyldig språkkode.",F1:"Element har `lang`-attributt med ugyldig språkkode."}},"QW-ACT-R23":{name:"Visuelt innhold i video med lyd er synstolket eller har et tekstalternativ.",description:"Denne regelen sjekker at alle video-element med lyd har et alternativ for det visuelle innholdet i form av lyd eller tekst.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk samsvar basert på testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på testregelen ",F1:"Testobjektet feilet basert på testregelen "}},"QW-ACT-R24":{name:"autocomplete-attributt har en gyldig verdi",description:"Denne regelen sjekker at alle HTML autocomplete-attributt har en gyldig verdi.",results:{I1:"Ingen testobjekt funnet.",P1:"Element har `autocomplete`-attributt med gyldig verdi.",F1:"Element har `autocomplete`-attributt med ugyldig verdi."}},"QW-ACT-R25":{name:"ARIA tilstander og egenskaper er gyldige",description:"Denne regelen sjekker at WAI-ARIA tilstander og egenskaper er gyldige for elementet de er spesifisert på.",results:{I1:"Ingen testobjekt funnet.",P1:"`{attr}` egenskapen er gyldig for eller arvet av `role` {role}.",F1:"`{attr}` egenskapen er hverken arvet eller gyldig for `role` {role}."}},"QW-ACT-R26":{name:"Video med lyd har et tilgjengelig alternativ",description:"Denne regelen sjekker at video-element med lyd enten er tekstet eller har et tekstalternativ til lyden.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk resultatet samsvar basert på resultatet fra testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på resultatet fra testregelen ",F1:"Testobjektet fikk resultatet feilet basert på resultatet fra testregelen "}},"QW-ACT-R27":{name:"aria-* attributt er definert i WAI-ARIA",description:"Denne regelen sjekker at alle aria-* attributt som er brukt er definert i ARIA 1.1.",results:{I1:"Ingen testobjekt funnet.",P1:"Alle aria-* attributt brukt i element er definert i ARIA 1.1.",F1:"En eller flere aria-* attributt er ikke definert i ARIA 1.1."}},"QW-ACT-R28":{name:"Element med role-attributt har nødvendige tilstander og egenskaper",description:"Denne regelen sjekker at element som har en eksplisitt rolle også spesifiserer alle nødvendige tilstander og egenskaper.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med eksplisitt rolle har alle nødvendige tilstander og egenskaper.",P2:"Element med eksplisitt rolle, der den definerte rollen ikke har obligatorisk tilstander eller egenskaper.",F1:"Element med eksplisitt rolle mangler nødvendige tilstander eller egenskaper."}},"QW-ACT-R29":{name:"Lydklipp har et tekstalternativ",description:"Denne regelen sjekker at lydklipp har et tekstalternativ.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk samsvar basert på testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på testregelen ",F1:"Testobjektet feilet basert på testregelen "}},"QW-ACT-R30":{name:"Synlig ledetekst er del av tilgjengelig navn",description:"Denne regelen sjekker at alle interaktive element med synlig ledetekst også har denne som del av sitt tilgjengelige navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med visuell ledetekst har et tilgjengelig navn som er identisk med eller inneholder den visuelle ledeteksten.",F1:"Element med visuell ledetekst mangler et tilgjengelig navn.",F2:"Element med visuell ledetekst har et tilgjengelig navn som ikke inneholder den visuelle ledeteksten."}},"QW-ACT-R31":{name:"Video uten lyd har et tilgjengelig alternativ",description:"Denne regelen sjekker at video-element uten lyd har et tilgjengelig alternativ.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk samsvar basert på testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på testregelen ",F1:"Testobjektet feilet basert på testregelen "}},"QW-ACT-R32":{name:"Video med lyd er synstolket",description:"Denne regelen sjekker at video-element med lyd er synstolket.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk samsvar basert på testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på testregelen ",F1:"Testobjektet feilet basert på testregelen "}},"QW-ACT-R33":{name:"ARIA påkrevd kontekst-rolle",description:"Denne regelen sjekker at element med en eksplisitt semantisk rolle finnes inni sin påkrevde kontekst.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med en eksplisitt semantisk rolle har overordnet element der påkrevd `role` finnes.",F1:"Element med en eksplisitt semantisk rolle har overordnet element der påkrevd `role` mangler."}},"QW-ACT-R34":{name:"ARIA tilstander og egenskaper har gyldig verdi",description:"Denne regelen sjekker at alle ARIA tilstander og egenskaper har en gyldig verdi.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med `{attr}`-attributtet har en gyldig verdi.",F1:"Element med `{attr}`-attributtet har en ugyldig verdi."}},"QW-ACT-R35":{name:"Overskrifter har et tilgjengelig navn",description:"Denne regelen sjekker at alle HTML-element med semantisk rolle overskrift har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"HTML-element med semantisk rolle overskrift har et tilgjengelig navn.",F1:"HTML-element med semantisk rolle overskrift mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R36":{name:"Overskrifts-attributt i tabeller har gyldig referanse",description:"Denne regelen sjekker at overskrift-attributt på en celle i en tabell refererer til andre celler i samme tabell-element og at disse har en semantisk rolle som kolonne eller radoverskrift.",results:{I1:"Ingen testobjekt funnet.",P1:"Alle overskrifts-attributt refererer til en celle i samme tabell med semantisk rolle som kolonne- eller radoverskrift.",F1:"Overskrifts-attributtet `{attr}` refererer til en id som ikke finnes i samme tabell.",F2:"Overskrifts-attributtet `{attr}` refererer til et element i samme tabell som mangler semantisk rolle som kolonne- eller radoverskrift."}},"QW-ACT-R37":{name:"Kontrast mellom tekst og bakgrunn (minimum)",description:"Denne regelen sjekker at element med tekst oppfyller minstekravet til kontrast mellom tekst og bakgrunn.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med målt kontrast over minstekravet.",P2:"Element har ikke tekst på et menneskelig språk.",P3:"Element har en gradient med kontrast over minstekravet.",W1:"Element har tekst-skygge som må verifiseres manuelt.",W2:"Element har bilde som bakgrunn.",W3:"Element har en gradient som ikke kan verifiseres automatisk.",F1:"Element har målt kontrast under minstekravet.",F2:"Element har en gradient med målt kontrast under minstekravet."}},"QW-ACT-R38":{name:"ARIA påkrevde element finnes",description:"Denne regelen sjekker at element med en eksplisitt semantisk rolle eier minst ett av sine påkrevde element.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med en eksplisitt semantisk rolle eier bare element med gyldig rolle.",F1:"Element med en eksplisitt semantisk rolle eier element som ikke har gyldig rolle."}},"QW-ACT-R39":{name:"Alle overskriftceller i en tabell er tilknyttet dataceller",description:"Denne regelen sjekker at alle overskriftsceller i en tabell er koblet til minst en datacelle i samme table-element",results:{I1:"Ingen testobjekt funnet.",P1:"Overskriftcelle er koblet til minst en datacelle.",F1:"Overskriftcelle mangler kobling til en datacelle."}},"QW-ACT-R40":{name:"CSS-overflow fører ikke til tap av innhold ved zooming.",description:"Denne regelen sjekker at bruk av CSS-overflow på tekst-elementer ikke fører til tap av innhold når siden blir zoomet inn med 200% på en 1280 x 1024 piksel stor viewport.",results:{I1:"Ingen testobjekt funnet.",W1:"Sjekk at tekst-element og underliggende element ikke mister innhold som følger av overflow."}},"QW-ACT-R41":{name:"Feilmeldinger i skjema er beskrivende",description:"Denne regelen sjekker at det blir gitt beskrivende feilmeldinger i skjemaelement når en bruker oppgir en verdi som er ugyldig eller i feil format.",results:{I1:"Ingen testobjekt funnet.",W1:"Sjekk at feilmeldingen identifiser årsaken til feilen eller beskriver hvordan feilen kan rettes."}},"QW-ACT-R42":{name:"object-element har et tilgjengelig navn",description:"Denne regelen sjekker at alle `object`-element har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"object-element har et tilgjengelig navn.",F1:"object-element mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R43":{name:"Element som skroller kan betjenes med tastatur",description:"Denne regelen sjekker at element som skroller kan betjenes med tastatur.",results:{I1:"Ingen testobjekt funnet.",P1:"Element som skroller kan få fokus med tastatur.",F1:"Element som skroller inkludert underordna element får ikke fokus med tastatur."}},"QW-ACT-R44":{name:"Lenker med samme tilgjengelige navn går til samme eller tilsvarende lenkemål.",description:"Denne regelen sjekker at lenker med samme tilgjengelige navn går til samme eller tilsvarende lenkemål.",results:{I1:"Ingen testobjekt funnet.",P1:"Lenker med samme tilgjengelige navn har samme lenkemål.",W1:"Lenker med samme tilgjengelige navn har forskjellig lenkemål. Verifiser at lenkemålet er tilsvarende."}},"QW-ACT-R48":{name:"Element markert som dekorative er ikke er del av accessibility tree",description:"Denne regelen sjekker at element markert som dekorative, ikke er del av accessibility tree.",results:{I1:"Ingen testobjekt funnet.",P1:"Element markert som dekorativt er ikke del av accessibility tree.",F1:"Element markert som dekorativt er en del av accessibility tree."}},"QW-ACT-R49":{name:"Lyd eller video som spilles av automatisk har ikke lyd som varer mer enn 3 sekunder",description:"Denne regelen sjekker at lyd eller video som spilles av automatisk, ikke har lyd som varer mer enn 3 sekunder.",results:{I1:"Ingen testobjekt funnet.",P1:"Lyd/video som spilles av automatisk har en avspillingstid på 3 sekunder eller mindre.",W1:"Kan ikke samle inn data fra element med lyd eller video.",W2:"Sjekk om lyd/video som spilles av automatisk har en synlig kontrollmekanisme."}},"QW-ACT-R50":{name:"Lyd eller video som spilles av automatisk har en kontrollmekanisme.",description:"Denne regelen sjekker at lyd eller video som spilles av automatisk har en synlig kontrollmekanisme.",results:{I1:"Ingen testobjekt funnet.",P1:"Lyd/video som spilles av automatisk har en synlig kontrollmekanisme.",W1:"Kan ikke samle inn data fra element med lyd eller video.",W2:"Sjekk om lyd/video som spilles av automatisk har en synlig kontrollmekanisme."}},"QW-ACT-R51":{name:"Video uten lyd er et mediealternativ til tekst",description:"Denne regelen sjekker at forhåndsinnspilt video uten lyd er et mediealternativ for tekst på siden.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data om video-element.",W2:"Sjekk at innholdet i videoen gjengir informasjonen i teksten."}},"QW-ACT-R52":{name:"Video uten lyd har et beskrivende track-element",description:"Denne regelen sjekker at forhåndsinnspilt video-element uten lyd inneholder et track-element som gjengir innholdet i videoen.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Sjekk at innholdet i videoens track-element gjengir innholdet i videoen."}},"QW-ACT-R53":{name:"Video uten lyd har har tekstalternativ",description:"Denne regelen sjekker at forhåndsinnspilt video uten lyd har et tekstalternativ som gjengir innholdet i videoen.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Sjekk at videoen har et tekstalternativ som gjengir innholdet i videoen."}},"QW-ACT-R54":{name:"Video uten lyd har et alternativt lydspor",description:"Denne regelen sjekker at forhåndsinnspilt video uten lyd har et lyd-alternativ.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Sjekk at videoen har minst et lyd-alternativ som gjengir innholdet i videoen."}},"QW-ACT-R55":{name:"Forhåndsinnspilt video er synstolka",description:"Denne regelen sjekker at forhåndsinnspilt video er synstolka.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Videoen har et lydspor, men vi kan ikke verifisere lydstyrken. Sjekk at lydsporet inneholder lyd og at det gjengir det visuelle innholdet i videoen."}},"QW-ACT-R56":{name:"Video er et mediealternativ for tekst.",description:"Denne regelen sjekker at forhåndsinnspilt video er et mediealternativ for tekst på siden.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Sjekk at innholdet i videoen gjengir informasjonen i teksten."}},"QW-ACT-R57":{name:"Video med lyd har et beskrivende track-element",description:"Denne regelen sjekker at forhåndsinnspilt video med lyd har et track-element gjengir innholdet i videoen.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Videoen har et lydspor, men vi kan ikke verifisere lydstyrken. Sjekk at videoen har lyd og at innholdet i track-element gjengir det visuelle innholdet i videoen."}},"QW-ACT-R58":{name:"Lydklipp har tekstalternativ",description:"Denne regelen sjekker at forhåndsinnspilt lydklipp har et tekstalternativ som gjengir innholdet i lydklippet.",results:{I1:"Ingen testobjekt funnet.",W1:"Sjekk at tekstalternativet gjengir innholdet i lydklippet."}},"QW-ACT-R59":{name:"Lydklipp er et mediealternativ for tekst",description:"Denne regelen sjekker at lydklipp er et mediealternativ til tekst på siden.",results:{I1:"Ingen testobjekt funnet.",W1:"Sjekk at innholdet i lydklippet gjengir innholdet i teksten"}},"QW-ACT-R60":{name:"Video med lyd er teksta",description:"Denne regelen sjekker at forhåndsinnspilt video med lyd er teksta.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Videoen har et lydspor, men vi kan ikke verifisere lydstyrken. Sjekk at videoen har lyd og at det finnes teksting som formidler innholdet i videoens lydspor."}},"QW-ACT-R61":{name:"Video har et tekstalternativ",description:"Denne regelen sjekket at forhåndsinnspilt video med lyd har et tekstalternativ.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Videoen har et lydspor, men vi kan ikke verifisere lydstyrken. Sjekk at videoen har lyd og at det finnes et tekstalternativ som gjengir innholdet i videoen."}},"QW-ACT-R62":{name:"Element som kan nås med tastatur har visuell fokusmarkering",description:"Denne regelen sjekker at alle element som kan nås med tastaturet har visuell fokusmarkering.",results:{I1:"Ingen testobjekt funnet.",W1:"Sjekk at element har visuell fokusmarkering"}},"QW-ACT-R63":{name:"Dokument har et landemerke med ikke-gjentatt innhold",description:"Denne regelen sjekker at hver side inneholder et element med semantisk rolle som landmerke og som starter med ikke-gjentatt innhold.",results:{I1:"Ingen testobjekt funnet.",P1:"Siden har ikke gjentatt innhold.",W1:"Sjekk at det ikke finnes gjentatt innhold som etterfølges av ikke-gjentatt innhold. Dersom ja sjekk om det eksisterer et element der følgende betingelser er oppfylt: - element har en semantisk rolle som arver fra landemerke; og - det første synlige innholdet (in tree order in the flat tree) som er en inkluderende etterkommer av element er ikke-gjentatt innhold etter gjentatt innhold; og - element er inkludert i accessibility tree."}},"QW-ACT-R64":{name:"Dokument har overskrift for ikke-gjentatt innhold",description:"Denne regelen sjekker at ikke-gjentatt innhold på nettsider inneholder en overskrift.",results:{I1:"Ingen testobjekt funnet.",P1:"Siden har ikke gjentatt innhold.",W1:"Sjekk at det ikke finnes gjentatt innhold som etterfølges av ikke-gjentatt innhold. Dersom ja, sjekk om det eksisterer et element der følgende betingelser er oppfylt: - element er ikke-gjentatt innhold etter gjentatt innhold. - element har en semantisk rolle som overskrift. - element er visuelt synlig - element er inkludert i accessibility tree."}},"QW-ACT-R65":{name:"Element ment for presentasjon får ikke fokus",description:"Denne regelen sjekker at element med en rolle som gjør at alle underordna element er ment for presentasjon ikke inneholder element som kan få fokus.",results:{I1:"Ingen testobjekt funnet.",P1:"Element har ingen underordna element som kan få fokus.",F1:"Element har underordna element som kan få fokus."}},"QW-ACT-R66":{name:"Element med rolle som menuitem har et tilgjengelig navn",description:"Denne regelen sjekker at element med en rolle som menuitem har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med rolle som menuitem har et tilgjengelig navn.",F1:"Element med rolle som menuitem mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R67":{name:"Bokstavavstand i style-attributt bruker ikke !important",description:"Denne regelen sjekker at style-attributtet angir en bokstavavstand (letter-spacing) på minst minst 0,12 ganger skriftstørrelsen eller at det ikke er brukt !important for å hindre justering av bokstavavstanden.",results:{I1:"Ingen testobjekt funnet.",P1:"Element der letter-spacing i style-attributtet ikke er satt til !important.",P2:"Element der letter-spacing i style-attributtet er satt til 0.12 ganger skriftstørrelsen eller mer.",P3:"Element der letter-spacing er satt i stilarket.",F1:"Element der letter-spacing i style-attributtet er satt slik at det hindrer at bokstavavstanden kan bli høyere enn 0.12 ganger skriftstørrelsen."}},"QW-ACT-R68":{name:"Linjehøyde i style-attributt bruker ikke !important",description:"Denne regelen sjekker om style-attributtet enten angir en linjehøyde (line-height) på minst 1.5 ganger skriftsstørelse eller at at det ikke er brukt !important for å hindre justering av linjehøyden.",results:{I1:"Ingen testobjekt funnet.",P1:"Element der line-height i style-attributtet ikke er satt til !important.",P2:"Element der line-height er satt til 1.5 ganger skriftstørrelsen eller mer.",P3:"Element der line-height er satt i stilarket.",F1:"Element der line-height i style-attributtet er satt slik at det hindrer at linjehøyden kan bli høyere enn 1.5 ganger skriftstørrelsen."}},"QW-ACT-R69":{name:"Ordavstand i style-attributt bruker ikke !important",description:"Denne regelen sjekker om style-attributtet angir en ordavstand (word-spacing) for å hindre justering av ordavstand ved å bruke !important, med mindre verdien er minst 0.16 ganger skriftstørrelsen.",results:{I1:"Ingen testobjekt funnet.",P1:"Element der word-spacing i style-attributtet ikke er satt til !important.",P2:"Element der word-spacing i style-attributtet er satt til 0.16 ganger skriftstørrelsen eller mer.",P3:"Element der word-spacing er satt i stilarket.",F1:"Element der word-spacing i style-attributtet er satt slik at det hindrer at ordavstanden kan bli høyere enn 0.16 ganger skriftstørrelsen."}},"QW-ACT-R70":{name:"iframe-element med negativ tabindex har ingen interaktive elementer.",description:"Denne regelen sjekker om `iframe`-element med en negativ `tabindex`-attributtverdi inneholder interaktive elementer.",results:{I1:"Ingen testobjekt funnet.",P1:"iframe-element med negativ tabindex inneholder ikke elementer som er synlige eller kan få fokus.",F1:"iframe-element med negativ tabindex inneholder elementer som er synlige eller kan få fokus."}},"QW-ACT-R71":{name:"`meta`-element har ingen oppdateringsforsinkelse (ingen unntak)",description:"Denne regelen sjekker om meta-element blir brukt for forsinket omdirigering eller oppdatering av en nettside.",results:{I1:"Ingen testobjekt funnet.",P1:"Nettsiden oppdaterer/omdirigerer umiddelbart.",F1:"Nettsiden oppdaterer seg etter {seconds} sekunder.",F2:"Nettsiden omdirigerer etter {seconds} sekunder."}},"QW-ACT-R72":{name:"Første fokuserbare element på nettsiden er en lenke til ikke-gjentatt innhold.",description:"Denne regelen sjekker om første fokuserbare element på nettsiden er en lenke til ikke-gjentatt innhold.",results:{I1:"Ingen testobjekt funnet.",W1:"Sjekk at første fokuserbare element har et tilgjengelig navn som formidler at det hopper over innhold.",W2:"Sjekk at første fokuserbare element lenker til sidens hovedinnhold og at det tilgjengelige navnet formidler dette.",F1:"Første fokuserbare element kan ikke aktiveres med tastaturet.",F2:"Første fokuserbare element er ikke i accessibility tree.",F3:"Første fokuserbare element har ikke rolle som lenke.",F4:"Første fokuserbare element lenker ikke til hovedinnholdet.",F5:"Siden har ingen element som kan få fokus."}},"QW-ACT-R73":{name:"Blokker med gjentatt innhold kan foldes sammen",description:"Denne regelen sjekker at blokker med gjentatt innhold kan foldes sammen.",results:{I1:"Ingen testobjekt funnet.",P1:"Siden har ikke gjentatt innhold.",W1:"For hver blokk med gjentatt innhold som er plassert (in the flat tree) før minst én node med ikke-gjentatt innhold etter gjentatt innhold, sjekk at det finnes en mekanisme for å gjøre alle noder i denne blokken usynlige både visuelt og i accessibility tree."}},"QW-ACT-R74":{name:"Siden har en mekanisme for å flytte fokus til ikke-gjentatt innhold",description:"Denne regelen sjekker om det finnes en mekanisme for å flytte fokus til ikke-gjentatt innhold på siden.",results:{I1:"Ingen testobjekt funnet.",P1:"Siden har ikke gjentatt innhold.",W1:"Siden har en eller flere mekanismer for å flytte fokus. Sjekk om noen av disse mekanismene blir brukt før en blokk med gjentatt innhold, og om fokus blir flyttet til rett før en blokk med ikke-gjentatt innhold."}},"QW-ACT-R75":{name:"Hopp over blokker med gjenntatt innhold",description:"Denne regelen sjekker at hver side har en mekanisme for å hoppe over blokker med gjentatt innhold.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk samsvar basert på testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på testregelen ",F1:"Testobjektet feilet basert på testregelen "}},"QW-ACT-R76":{name:"Kontrast mellom tekst og bakgrunn (forbedret)",description:"Denne regelen sjekker at element med tekst oppfyller kravet til forbedret kontrast.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med målt kontrast over minstekravet (forbedret).",P2:"Element har ikke tekst på et menneskelig språk.",P3:"Element har en gradient med kontrast over minstekravet (forbedret).",W1:"Element har tekst-skygge som må verifiseres manuelt.",W2:"Element har bilde som bakgrunn.",W3:"Element har en gradient som ikke kan verifiseres automatisk.",F1:"Element har målt kontrast under minstekravet (forbedret).",F2:"Element har en gradient med målt kontrast under minstekravet (forbedret)."}},"QW-ACT-R77":{name:"ARIA required ID references exist",description:"This rule checks that every ID reference required by WAI-ARIA exists.",results:{I1:"No test targets found.",P1:"Referenced element exists.",F1:"Referenced element does not exist."}}}}},497:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.nn=void 0,t.nn={"act-rules":{"QW-ACT-R1":{name:"HTML-side har ein tittel",description:"Denne regelen sjekkar at ei HTML-side har ein tittel.",results:{I1:"Testobjekt ikkje funne.",P1:"`title`-element eksisterer og er ikkje tomt ('').",F1:"`title`-element eksisterer ikkje.",F2:"`title`-element er tomt ('').",F3:"`title`-element er ikkje i same kontekst."}},"QW-ACT-R2":{name:"HTML har eit lang-attributt",description:"Denne regelen sjekkar at html-element ikkje har eit tomt lang- eller xml:lang-attributt.",results:{I1:"Testobjekt ikkje funne.",P1:"`lang`-attributtet finst og har ein verdi.",F1:"`lang`-attributtet finst ikkje eller er tomt ('')."}},"QW-ACT-R3":{name:"HTML lang og xml:lang er like",description:"Regelen sjekkar at det for html-element er brukt same verdi for primærspråk i ikkje-tomme lang- og xml:lang-attributt, der begge desse attributta er brukt.",results:{I1:"Testobjekt ikkje funne.",P1:"Attributta `lang` og `xml:lang` har same verdi.",F1:"Attributta `lang` og `xml:lang` har ikkje same verdi."}},"QW-ACT-R4":{name:"Meta-refresh er ikkje forsinka",description:"Denne regelen sjekkar at meta-element ikkje blir brukt til forsinka omdirigering eller oppdatering.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet blir oppdatert/omdirigert med ein gong.",P2:"Testobjektet blir oppdatert/omdirigert etter meir enn 20 timar.",F1:"Testobjektet blir oppdatert etter {seconds} sekund.",F2:"Testobjektet blir omdirigert etter {seconds} sekund."}},"QW-ACT-R5":{name:"HTML lang-attributtet har gyldig innhald",description:"Denne regelen sjekkar at lang- eller xml:lang-attributtet har ein gyldig språkundertag.",results:{I1:"Testobjekt ikkje funne.",P1:"`lang`-attributtet har ein gyldig verdi.",F1:"`lang`-attributtet har ikkje ein gyldig verdi."}},"QW-ACT-R6":{name:"Knappar koda som bilde har eit tilgjengeleg namn",description:"Denne testregelen sjekkar at knappar koda som bilde har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Knapp koda som bilde har eit tilgjengeleg namn.",F1:"Knapp koda som bilde har ikkje eit tilgjengeleg namn."}},"QW-ACT-R7":{name:"Visningsretning på nettsida er ikkje avgrensa med bruk av CSS-transformeringseigenskap",description:"Denne regelen sjekkar at innhald på sida, ikkje er avgrensa til berre liggande eller ståande visningsretning med bruk av CSS-transformeringseigenskapar.",results:{I1:"Testobjekt ikkje funne.",P1:"Ei side der CSS-eigenskapar ikkje avgrensar visningsretninga til anten ståande eller liggande visningsretning.",F1:"Ei side der CSS-eigenskapar avgrensar visningsretninga til berre liggande visningsretning."}},"QW-ACT-R9":{name:"Lenker med identisk tilgjengeleg namn har same formål",description:"Denne regelen sjekkar at lenker med identisk tilgjengeleg namn har same eller tilsvarande lenkemål.",results:{I1:"Testobjekt ikkje funne.",P1:"`Lenker` med same tilgjengeleg namn har same lenkemål.",F1:"`Lenker` med same tilgjengeleg namn har ulikt lenkemål. Verifiser at lenkemålet er tilsvarande."}},"QW-ACT-R10":{name:"`iframe`-element med identisk tilgjengeleg namn har tilsvarande formål",description:"Denne regelen sjekkar at `iframe`-element med identisk tilgjengeleg namn har same innhald.",results:{I1:"Testobjekt ikkje funne.",P1:"`iframes` med same tilgjengeleg namn har likt innhald.",F1:"`iframes` med same tilgjengeleg namn har forskjellig innhald."}},"QW-ACT-R11":{name:"Knappar har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle knappar koda som button har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Knapp har eit tilgjengeleg namn.",F1:"Knapp manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R12":{name:"Lenker har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle lenker har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Lenke med tilgjengeleg namn.",F1:"Lenke manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R13":{name:"Element med `aria-hidden` inneheld ikkje element som kan få fokus",description:"Denne regelen sjekkar at element koda med aria-aria-hidden-attributtet ikkje inneheld element som kan få fokus.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet inneheld ikkje element som kan få fokus.",P2:"Testobjektet kan ikkje få fokus.",F1:"Testobjektet inneheld element som kan få fokus.",F2:"Testobjektet kan få fokus."}},"QW-ACT-R14":{name:"Bruk av meta viewport hindrar ikkje zoom",description:"Denne regelen sjekkar at bruk av meta-element beheld brukeragenten si evne til å zoome.",results:{I1:"Testobjekt ikkje funne.",P1:"`meta` element med `name='viewport'` attributt definerer ikkje verdiane `maximum-scale` og `user-scalable`.",P2:"`meta` element med `name='viewport'` attributt avgrenser ikkje brukeragenten si evne til å zoome",F1:"`meta` element med `name='viewport'` attributt avgrenser brukeragenten si evne til å zoome med bruk av user-scalable=no eller maximum-scale < 2."}},"QW-ACT-R15":{name:"Lyd eller video har ikkje lyd som blir spelt av automatisk",description:"Denne regelen sjekkar at automatisk avspeling av lyd ikkje varer i meir enn 3 sekund, eller at det finst en kontrollmekanisme for å stoppa eller dempa lyd.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet fekk samsvar basert på testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på testregelen ",F1:"Testobjektet feila basert på testregelen "}},"QW-ACT-R16":{name:"Skjemaelement har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle skjemaelement har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Skjemaelementet har eit tilgjengeleg namn.",F1:"Skjemaelementet manglar et tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R17":{name:"Bilde har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle bilde som ikkje er markert som dekorative, har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Bilde er markert som dekorativt.",P2:"Bilde har et tilgjengeleg namn.",F1:"Bilde som ikkje er markert som dekorativt manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R18":{name:"`id`-attributt har ein unik verdi",description:"Denne regelen sjekkar at alle id-attributt på ei enkelt nettside er unike.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjekt har unik verdi på `id`-attributt.",F1:"Flere testobjekt har same verdi på `id`-attributt."}},"QW-ACT-R19":{name:"iframe-element har tilgjengeleg namn",description:"Denne regelen sjekkar at alle iframe-element har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"iframe-element har eit tilgjengeleg namn.",F1:"iframe-element manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R20":{name:"role-attributt har ein gyldig verdi",description:"Denne regelen sjekkar at alle role-attributt har ein gyldig verdi.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med gyldig `role`-attributt.",F1:"Element med ugyldig `role`-attributt."}},"QW-ACT-R21":{name:"svg-element med en eksplisitt rolle har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle SVG-element som er eksplisitt inkludert i accessibility tree har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"svg-element som er inkludert i accessibility tree har eit tilgjengeleg namn.",F1:"svg-element som er inkludert i accessibility tree manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R22":{name:"lang-attributt har ein gyldig språkkode",description:"Denne regelen sjekkar at alle lang-attributt, som ikkje er tome, for eit element på nettsida har ein gyldig språkkode.",results:{I1:"Testobjekt ikkje funne.",P1:"Element har `lang`-attributt med gyldig språkkode.",F1:"Element har `lang`-attributt med ugyldig språkkode."}},"QW-ACT-R23":{name:"Visuelt innhald i video med lyd er synstolka eller har eit tekstalternativ",description:"Denne regelen sjekkar at alle video-element med lyd har eit alternativ for det visuelle innhaldet i form av lyd eller tekst.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet fekk samsvar basert på testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på testregelen ",F1:"Testobjektet feila basert på testregelen "}},"QW-ACT-R24":{name:"autocomplete-attributt har ein gyldig verdi",description:"Denne regelen sjekkar at alle HTML autocomplete-attributt har ein gyldig verdi.",results:{I1:"Testobjekt ikkje funne.",P1:"Element har `autocomplete`-attributt med gyldig verdi.",F1:"Element har `autocomplete`-attributt med ugyldig verdi."}},"QW-ACT-R25":{name:"ARIA tilstandar og eigenskapar er gyldige",description:"Denne regelen sjekkar at WAI-ARIA tilstandar og eigenskapar er gyldige for elementet dei er spesifisert på.",results:{I1:"Testobjekt ikkje funne.",P1:"`{attr}` eigenskapen er gyldig for eller arva av `role` {role}.",F1:"`{attr}` eigenskapen er verken arva av eller gyldig for `role` {role}."}},"QW-ACT-R26":{name:"Video med lyd har eit tilgjengeleg alternativ",description:"Denne regelen sjekkar at video-element med lyd anten er teksta eller har eit tekstalternativ til lyden.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet fekk resultatet samsvar basert på resultatet frå testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på resultatet frå testregelen ",F1:"Testobjektet fekk resultatet feila basert på resultatet frå testregelen "}},"QW-ACT-R27":{name:"aria-* attributt er definert i WAI-ARIA",description:"Denne regelen sjekkar at alle aria-* attributt som er brukt er definert i ARIA 1.1.",results:{I1:"Testobjekt ikkje funne.",P1:"Alle aria-* attributt brukt i element er definert i ARIA 1.1.",F1:"En eller flere aria-* attributt er ikkje definert i ARIA 1.1."}},"QW-ACT-R28":{name:"Element med role-attributt har nødvendige tilstandar og eigenskapar",description:"Denne regelen sjekkar at element som har ei eksplisitt rolle òg spesifiserer alle nødvendige tilstandar og eigenskapar.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med eksplisitt rolle har alle nødvendige tilstandar og eigenskapar.",P2:"Element med eksplisitt rolle, der den definerte rolla ikkje har obligatorisk tilstand eller eigenskap.",F1:"Element med eksplisitt rolle manglar nødvendige tilstandar eller eigenskapar."}},"QW-ACT-R29":{name:"Lydklipp har eit tekstalternativ",description:"Denne regelen sjekkar at lydklipp har eit tekstalternativ.",results:{I1:"Testobjekt ikkje funnet.",P1:"Testobjektet fekk samsvar basert på testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på testregelen ",F1:"Testobjektet feila basert på testregelen "}},"QW-ACT-R30":{name:"Synleg ledetekst er del av tilgjengeleg namn",description:"Denne regelen sjekkar at alle interaktive element, med synleg ledetekst, òg har denne som del av sitt tilgjengelege namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med visuell ledetekst har eit tilgjengeleg namn som er identisk med eller inneheld den visuelle ledeteksten.",F1:"Element med visuell ledetekst manglar eit tilgjengeleg namn.",F2:"Element med visuell ledetekst har eit tilgjengeleg namn som ikkje er inneheld den visuelle ledeteksten."}},"QW-ACT-R31":{name:"Video utan lyd har eit tilgjengeleg alternativ",description:"Denne regelen sjekkar at video-element utan lyd har eit tilgjengeleg alternativ.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet fekk samsvar basert på testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på testregelen ",F1:"Testobjektet feila basert på testregelen "}},"QW-ACT-R32":{name:"Video med lyd er synstolka",description:"Denne regelen sjekkar at video-element med lyd er synstolka.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet fekk samsvar basert på testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på testregelen ",F1:"Testobjektet feila basert på testregelen "}},"QW-ACT-R33":{name:"ARIA påkravd kontekst-rolle",description:"Denne regelen sjekkar at element med ei eksplisitt semantisk rolle finst i sin påkrevde kontekst.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med en eksplisitt semantisk rolle har overordna element der påkravd `role` finst.",F1:"Element med en eksplisitt semantisk rolle har overordna element der påkravd `role` manglar."}},"QW-ACT-R34":{name:"ARIA tilstandar og eigenskapar har gyldig verdi",description:"Denne regelen sjekkar at alle ARIA tilstandar og eigenskapar har ein gyldig verdi.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med `{attr}`-attributtet har en gyldig verdi.",F1:"Element med `{attr}`-attributtet har en ugyldig verdi."}},"QW-ACT-R35":{name:"Overskrifter har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle HTML-element med semantisk rolle overskrift har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"HTML-element med semantisk rolle overskrift har eit tilgjengeleg namn.",F1:"HTML-element med semantisk rolle overskrift manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R36":{name:"Overskrifts-attributt i tabellar har gyldig referanse",description:"Denne regelen sjekkar at overskrift-attributt på ei celle i ein tabell refererer til andre celler i same tabell-element, og at desse har ei semantisk rolle som kolonne eller radoverskrift.",results:{I1:"Testobjekt ikkje funne.",P1:"Alle overskrifts-attributt refererer til ei celle i same tabell med semantisk rolle som kolonne- eller radoverskrift.",F1:"Overskrifts-attributtet `{attr}` refererer til ein id som ikkje finst i same tabell.",F2:"Overskrifts-attributtet `{attr}` refererer til eit element i same tabell som manglar semantisk rolle som kolonne- eller radoverskrift."}},"QW-ACT-R37":{name:"Kontrast mellom tekst og bakgrunn (minimum)",description:"Denne regelen sjekkar at element med tekst oppfyller minstekravet til kontrast mellom tekst og bakgrunn.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med målt kontrast over minstekravet.",P2:"Element har ikkje tekst på eit menneskeleg språk.",P3:"Element har ein gradient med kontrast over minstekravet.",W1:"Element har tekst-skygge som må bli verifisert manuelt.",W2:"Element har bilde som bakgrunn.",W3:"Element har ein gradient som ikkje kan bli verifisert automatisk.",F1:"Element har målt kontrast under minstekravet.",F2:"Element har ein gradient med målt kontrast under minstekravet."}},"QW-ACT-R38":{name:"ARIA påkrevde element finst",description:"Denne regelen sjekkar at element med en eksplisitt semantisk rolle eig minst eitt av sine påkravde element.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med en eksplisitt semantisk rolle eig berre element med gyldig rolle.",F1:"Element med en eksplisitt semantisk rolle eig element som ikkje har gyldig rolle."}},"QW-ACT-R39":{name:"Alle overskriftceller i ein tabell er knytt til dataceller",description:"Denne regelen sjekkar at alle overskriftsceller i ein tabell er kobla til minst ei datacelle i same table-element",results:{I1:"Testobjekt ikkje funne.",P1:"Overskriftcelle er kobla til minst ei datacelle.",F1:"Overskriftcelle manglar kobling til ei datacelle."}},"QW-ACT-R40":{name:"CSS-overflow fører ikkje til tap av innhald ved zooming",description:"Denne regelen sjekkar at bruk av CSS-overflow på tekst-element ikkje fører til tap av innhald når sida blir zooma inn med 200% på ein 1280 x 1024 piksel stor viewport.",results:{I1:"Testobjekt ikkje funne.",W1:"Sjekk at tekst-element og underliggande element ikkje mistar innhald som følge av overflow."}},"QW-ACT-R41":{name:"Feilmeldingar i skjema er beskrivande",description:"Denne regelen sjekkar at det blir gitt beskrivande feilmeldingar i skjemaelement når ein brukar skriv ein verdi som er ugyldig eller i feil format.",results:{I1:"Testobjekt ikkje funne.",W1:"Sjekk at feilmeldinga identifiser årsaka til feilen eller beskriv korleis feilen kan bli retta."}},"QW-ACT-R42":{name:"object-element har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle `object`-element har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"object-element har eit tilgjengeleg namn.",F1:"object-element manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R43":{name:"Element som skrollar kan betenast med tastatur",description:"Denne regelen sjekkar at element som skrollar kan betenast med tastatur.",results:{I1:"Testobjekt ikkje funne.",P1:"Element som skrollar kan få fokus med tastatur.",F1:"Element som skrollar inkludert underordna element får ikkje fokus med tastatur."}},"QW-ACT-R44":{name:"Lenker med same tilgjengelege namn går til same eller tilsvarande lenkemål",description:"Denne regelen sjekkar at lenker med same tilgjengelege namn går til same eller tilsvarande lenkemål.",results:{I1:"Testobjekt ikkje funne.",P1:"Lenker med same tilgjengelege namn har same lenkemål.",W1:"Lenker med same tilgjengelege namn har forskjellig lenkemål. Verifiser at lenkemålet er tilsvarande."}},"QW-ACT-R48":{name:"Element markert som dekorative er ikkje del av accessibility tree",description:"Denne regelen sjekkar at element markert som dekorative, ikkje er del av accessibility tree.",results:{I1:"Testobjekt ikkje funne.",P1:"Element markert som dekorativt, er ikkje del av accessibility tree.",F1:"Element markert som dekorativt, er del av accessibility tree."}},"QW-ACT-R49":{name:"Lyd eller video som blir spelt av automatisk, har ikkje lyd som varer meir enn 3 sekund",description:"Denne regelen sjekkar at lyd eller video som blir spelt av automatisk, ikkje har lyd som varer meir enn 3 sekund.",results:{I1:"Testobjekt ikkje funne.",P1:"Lyd/video som blir spelt av automatisk har ei avspelingstid på 3 sekund eller mindre.",W1:"Kan ikkje samle inn data frå element med lyd eller video.",W2:"Sjekk om lyd/video som blir spelt av automatisk har ein synleg kontrollmekanisme."}},"QW-ACT-R50":{name:"Lyd eller video som blir spelt av automatisk, har ein kontrollmekanisme",description:"Denne regelen sjekkar at lyd eller video som blir spelt av automatisk, har ein synleg kontrollmekanisme.",results:{I1:"Testobjekt ikkje funne.",P1:"Lyd/video som blir spelt av automatisk, har ein synleg kontrollmekanisme.",W1:"Kan ikkje samle inn data frå element med lyd eller video.",W2:"Sjekk om lyd/video som blir spelt av automatisk, har ein synleg kontrollmekanisme."}},"QW-ACT-R51":{name:"Video utan lyd er eit mediealternativ til tekst",description:"Denne regelen sjekkar at førehandsinnspelt video utan lyd er eit mediealternativ for tekst på sida.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data om video-element.",W2:"Sjekk at innhaldet i videoen gjengir informasjonen i teksten."}},"QW-ACT-R52":{name:"Video utan lyd har eit beskrivande track-element",description:"Denne regelen sjekkar at førehandsinnspelt video-element utan lyd inneheld eit track-element som gjengir innhaldet i videoen.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Sjekk at innhaldet i videoen sitt track-element gjengir innhaldet i videoen."}},"QW-ACT-R53":{name:"Video utan lyd har tekstalternativ",description:"Denne regelen sjekkar at førehandsinnspelt video utan lyd har eit tekstalternativ som gjengir innhaldet i videoen.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Sjekk at videoen har eit tekstalternativ som gjengir innhaldet i videoen."}},"QW-ACT-R54":{name:"Video utan lyd har eit alternativt lydspor",description:"Denne regelen sjekkar at førehandsinnspelt video utan lyd har eit lyd-alternativ.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Sjekk at videoen har minst eit lyd-alternativ som gjengir innhaldet i videoen."}},"QW-ACT-R55":{name:"Førehandsinnspelt video er synstolka",description:"Denne regelen sjekkar at førehandsinnspelt video er synstolka.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Videoen har eit lydspor, men vi kan ikkje verifisere lydstyrken. Sjekk at lydsporet inneheld lyd og at det gjengir det visuelle innhaldet i videoen."}},"QW-ACT-R56":{name:"Video er eit mediealternativ for tekst",description:"Denne regelen sjekkar at førehandsinnspelt video er eit mediealternativ for tekst på sida.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Sjekk at innhaldet i videoen gjengir informasjonen i teksten."}},"QW-ACT-R57":{name:"Video med lyd har eit beskrivande track-element",description:"Denne regelen sjekkar at førehandsinnspelt video med lyd har eit track-element gjengir innhaldet i videoen.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Videoen har eit lydspor, men vi kan ikkje verifisere lydstyrken. Sjekk at videoen har lyd og at innhaldet i track-element gjengir det visuelle innhaldet i videoen."}},"QW-ACT-R58":{name:"Lydklipp har tekstalternativ",description:"Denne regelen sjekkar at førehandsinnspelt lydklipp har eit tekstalternativ som gjengir innhaldet i lydklippet.",results:{I1:"Testobjekt ikkje funne.",W1:"Sjekk at tekstalternativet gjengir innhaldet i lydklippet."}},"QW-ACT-R59":{name:"Lydklipp er eit mediealternativ for tekst",description:"Denne regelen sjekkar at lydklipp er eit mediealternativ til tekst på sida.",results:{I1:"Testobjekt ikkje funne.",W1:"Sjekk at innhaldet i lydklippet gjengir innhaldet i teksten."}},"QW-ACT-R60":{name:"Video med lyd er teksta",description:"Denne regelen sjekkar at førehandsinnspelt video med lyd er teksta.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Videoen har eit lydspor, men vi kan ikkje verifisere lydstyrken. Sjekk at videoen har lyd og at det finst teksting som formidlar innhaldet i videoen sitt lydspor."}},"QW-ACT-R61":{name:"Video har eit tekstalternativ",description:"Denne regelen sjekkar at førehandsinnspelt video med lyd har eit tekstalternativ.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Videoen har eit lydspor, men vi kan ikkje verifisere lydstyrken. Sjekk at videoen har lyd og at det finst eit tekstalternativ som gjengir innhaldet i videoen."}},"QW-ACT-R62":{name:"Element som kan nåast med tastatur har visuell fokusmarkering",description:"Denne regelen sjekkar at alle element som kan nåast med tastaturet har visuell fokusmarkering.",results:{I1:"Testobjekt ikkje funne.",W1:"Sjekk at element har visuell fokusmarkering."}},"QW-ACT-R63":{name:"Dokument har eit landemerke med ikkje-gjenteke innhald",description:"Denne regelen sjekkar at kvar side inneheld eit element med semantisk rolle som landmerke og som startar med ikkje-gjenteke innhald.",results:{I1:"Testobjekt ikkje funne.",P1:"Sida har ikkje gjenteke innhald.",W1:"Sjekk at det ikkje finst gjenteke innhald som blir følgt av ikkje-gjenteke innhald. Dersom ja sjekk om det eksisterer eit element der følgande føresetnader er oppfylt: - element har ei semantisk rolle som arver frå landemerket; og - det første synlege innhaldet (in tree order in the flat tree) som er ein inkludert etterkomar av element er ikkje-gjenteke innhald etter gjenteke innhald; og - element er inkludert i accessibility tree."}},"QW-ACT-R64":{name:"Dokument har overskrift for ikkje-gjenteke innhald",description:"Denne regelen sjekkar at ikkje-gjenteke innhald på nettsider inneheld ei overskrift.",results:{I1:"Testobjekt ikkje funne.",P1:"Sida har ikkje gjenteke innhald.",W1:"Sjekk at det ikkje finst gjenteke innhald som blir følgt av ikkje-gjenteke innhald. Dersom ja sjekk om det eksisterer eit element der følgende føresetnader er oppfylt: - element har ei semantisk rolle som overskrift. - element er visuelt synleg - element er inkludert i accessibility tree."}},"QW-ACT-R65":{name:"Element meint for presentasjon får ikkje fokus",description:"Denne regelen sjekkar at element med ei rolle som gjer at alle underordna element er meint for presentasjon ikkje inneheld element som kan få fokus.",results:{I1:"Testobjekt ikkje funne.",P1:"Element har ingen underordna element som kan få fokus.",F1:"Element har underordna element som kan få fokus."}},"QW-ACT-R66":{name:"Element med rolle som menuitem har eit tilgjengeleg namn",description:"Denne regelen sjekkar at element med rolle som menuitem har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med rolle som menuitem har eit tilgjengeleg namn.",F1:"Element med rolle som menuitem manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R67":{name:"Bokstavavstand i style-attributt brukar ikkje !important",description:"Denne regelen sjekkar at style-attributtet gir ei bokstavavstand(letter-spacing) på minst 0,12 gonger skriftstørrelsen eller at det ikkje er brukt !important for å hindra justering av bokstavavstand.",results:{I1:"Testobjekt ikkje funne.",P1:"Element der letter-spacing i style-attributtet ikkje er sett til !important.",P2:"Element der letter-spacing i style-attributtet er sett til 0.12 ganger skriftstørrelsen eller meir.",P3:"Element der letter-spacing er sett i stilarket.",F1:"Element der letter-spacing i style-attributtet er sett slik at det hindrar at bokstavavstand kan bli høgare enn 0.12 gonger skriftstørrelsen."}},"QW-ACT-R68":{name:"Linjehøgde i style-attributt brukar ikkje !important",description:"Denne regelen sjekkar om style-attributtet anten gir ei linjehøgde (line-height) på minst 1.5 ganger skriftsstørelse eller at at det ikkje er brukt !important for å hindra justering av linjehøgda.",results:{I1:"Testobjekt ikkje funne.",P1:"Element der line-height i style-attributtet ikkje er sett til !important.",P2:"Element der line-height er sett til 1.5 gonger skriftstørrelsen eller meir.",P3:"Element der line-height er sett i stilarket.",F1:"Element der line-height i style-attributtet er satt slik at det hindrar at linjehøgda kan blir høgare enn 1.5 gonger skriftstørrelsen."}},"QW-ACT-R69":{name:"Ordavstand i style-attributt brukar ikkje !important",description:"Denne regelen sjekkar om style-attributtet gir ei ordavstand (word-spacing) for å hindra justering av ordavstand ved å bruke !important, med mindre verdien er minst 0.16 gonger skriftstørrelsen.",results:{I1:"Testobjekt ikkje funne.",P1:"Element der word-spacing i style-attributtet ikkje er sett til !important.",P2:"Element der word-spacing i style-attributtet er sett til 0.16 gonger skriftstørrelsen eller meir.",P3:"Element der word-spacing er sett i stilarket.",F1:"Element der word-spacing i style-attributtet er sett slik at det hindrar at ordavstanden kan bli høgare enn 0.16 gonger skriftstørrelsen."}},"QW-ACT-R70":{name:"iframe-element med negativ tabindex har ingen interaktive element",description:"Denne regelen sjekkar om `iframe`-element med ein negativ `tabindex`-attributtverdi inneheld interaktive element.",results:{I1:"Testobjekt ikkje funne.",P1:"iframe-element med negativ tabindex inneheld ikkje element som er synlege eller kan få fokus.",F1:"iframe-element med negativ tabindex inneheld element som er synlege eller kan få fokus."}},"QW-ACT-R71":{name:"`meta`-element har ingen oppdateringsforsinkelse (ingen unntak)",description:"Denne regelen sjekkar om meta-element blir brukt for forsinka omdirigering eller oppdatering av ei nettside.",results:{I1:"Testobjekt ikkje funne.",P1:"Nettsida oppdaterer/omdirigerer umiddelbart.",F1:"Nettsida oppdaterer seg etter {seconds} sekund.",F2:"Nettsida omdirigerer etter {seconds} sekund."}},"QW-ACT-R72":{name:"Første fokuserbare element på nettsida er ei lenke til ikkje-gjenteke innhald",description:"Denne regelen sjekkar om første fokuserbare element på nettsia er ei lenke til ikkje-gjenteke innhald.",results:{I1:"Testobjekt ikkje funne.",W1:"Sjekk at første fokuserbare element har eit tilgjengeleg namn som formidlar at det hoppar over innhald.",W2:"Sjekk at første fokuserbare element lenker til hovudinnhaldet på sida og at det tilgjengelege namnet formidlar dette.",F1:"Første fokuserbare element kan ikkje bli aktivert med tastaturet.",F2:"Første fokuserbare element er ikkje i accessibility tree.",F3:"Første fokuserbare element har ikkje rolle som lenke.",F4:"Første fokuserbare element lenker ikkje til hovudinnhaldet.",F5:"Sida har ingen element som kan få fokus."}},"QW-ACT-R73":{name:"Blokker med gjenteke innhald kan bli folda saman",description:"Denne regelen sjekkar at blokker med gjenteke innhald kan bli folda saman.",results:{I1:"Testobjekt ikkje funne.",P1:"Sida har ikkje gjenteke innhald.",W1:"For kvar blokk med gjenteke innhald som er plassert (in the flat tree) før minst éin node med ikkje-gjenteke innhald etter gjenteke innhald, sjekk at det finst ein mekanisme for å gjera alle noder i denne blokka usynlege både visuelt og i accessibility tree."}},"QW-ACT-R74":{name:"Sida har ein mekanisme for å flytta fokus til ikkje-gjenteke innhald",description:"Denne regelen sjekkar om det finst ein mekanisme for å flytta fokus til ikkje-gjenteke innhald på sida.",results:{I1:"Testobjekt ikkje funne.",P1:"Sida har ikkje gjenteke innhald.",W1:"Sida har ein eller fleire mekanismar for å flytta fokus. Sjekk om nokon av mekanismane blir brukt før ei blokk med gjenteke innhald, og om fokus blir flytta til rett før ei blokk med ikkje-gjenteke innhald."}},"QW-ACT-R75":{name:"Hopp over blokker med gjenteke innhald",description:"Denne regelen sjekkar at kvar side har ein mekanisme for å hoppa over blokker med gjenteke innhald.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet fekk samsvar basert på testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på testregelen ",F1:"Testobjektet feila basert på testregelen "}},"QW-ACT-R76":{name:"Kontrast mellom tekst og bakgrunn (forbedra)",description:"Denne regelen sjekkar at element med tekst oppfyller kravet til forbedra kontrast.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med målt kontrast over minstekravet (forbedra).",P2:"Element har ikkje tekst på et menneskeleg språk.",P3:"Element har ein gradient med kontrast over minstekravet (forbedra).",W1:"Element har tekst-skygge som må bli verifisert manuelt.",W2:"Element har bilde som bakgrunn.",W3:"Element har ein gradient som ikkje kan bli verifisert automatisk.",F1:"Element har målt kontrast under minstekravet (forbedra).",F2:"Element har ein gradient med målt kontrast under minstekravet (forbedra)."}},"QW-ACT-R77":{name:"ARIA-påkravde ID-referansar finst",description:"Denne regelen sjekkar at kvar ID-referanse som blir kravd av WAI-ARIA, finst.",results:{I1:"Testobjekt ikkje funne.",P1:"Det refererte elementet finst.",F1:"Det refererte elementet eksisterer ikkje."}}}}},564:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.sv=void 0,t.sv={"act-rules":{"QW-ACT-R1":{name:"På HTML-sidan finns en rubrik",description:"Denna regel kontrollerar att HTML-sidan har ett `title`-element.",results:{I1:"Inga objekt hittades.",P1:"`Title`-elementet hittas och är inte tomt.",F1:"`Title`-elementet hittas inte.",F2:"`Title`-elementet är tomt.",F3:"`Title`-elementet som hittats är inte sidans rubrik."}},"QW-ACT-R2":{name:"`Html`-elementet innehåller attributet `lang`",description:"TDenna regel kontrollerar att elementet `html` har ett `lang`- eller `xml:lang`-attribut som inte är tomt.",results:{I1:"Inga objekt hittades.",P1:"`Lang`-attributet hittades och ett värde har fastställts för det.",F1:"`Lang`-attributet hittats inte eller är tomt."}},"QW-ACT-R3":{name:"HTML-elementets `lang` och `xml:lang` motsvarar varandra",description:"Denna regel kontrollerar om elementet `html` innehåller både `lang` och `xml:lang`-attribut och de inte är tomma, att deras värden motsvarar varandra.",results:{I1:"Inga objekt hittades.",P1:"Attributen `lang` och `xml:lang’ har samma värde.",F1:"Attributen `lang’ och `xml:lang’ motsvarar inte varandra."}},"QW-ACT-R4":{name:"Ingen fördröjning vid omladdning av elementet `meta`",description:"Denna regel kontrollerar att elementet `meta’ inte har använts för fördröjd omdirigering eller omladdning.",results:{I1:"Inga objekt hittades.",P1:"Objektet laddas om eller omdirigeras omedelbart.",P2:"Objektet laddas om eller omdirigeras efter mer än 20 timmar.",F1:"Objektet laddas om efter {seconds} sekunder.",F2:"Objektet omdirigeras efter {seconds} sekunder."}},"QW-ACT-R5":{name:"Dugligheten för `html`-elementets `lang`-attribut",description:"Denna regel kontrollerar att attributet `lang` eller `xml:lang` har en godkänd språkkod.",results:{I1:"Inga objekt hittades.",P1:"`Lang`-attributet innehåller en godkänd språkkod.",F1:"`Lang`-attributet innehåller ingen godkänd språkkod."}},"QW-ACT-R6":{name:"Knappar i form av bilder har ett tillgängligt namn",description:"Denna regel kontrollerar att varje knapp som är i form av en bild har ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn."}},"QW-ACT-R7":{name:"Positioneringen på sidan är inte begränsad med CSS:s `transform`-regel",description:"Denna regel kontrollerar att sidans innehåll inte är begränsat till horisontellt eller vertikalt läge med CSS:s `transform`-regel.",results:{I1:"Inga objekt hittades.",P1:"Funktionen `rotateZ` i CSS:s `transform`-regel på sidan används tillsammans med `orientation`-villkoret på ett sätt som inte begränsar elementet vertikalt eller horisontellt till visningssättet.",F1:"Funktionen `rotate` i CSS:s `transform`-regel på sidan används tillsammans med `orientation`-villkoret på ett sätt som begränsar elementet vertikalt eller horisontellt till visningssättet."}},"QW-ACT-R9":{name:"Länkar med samma tillgängliga namn har också samma betydelse",description:"Denna regel kontrollerar att länkar med samma tillgängliga namn leder till samma eller motsvarande innehåll.",results:{I1:"Inga objekt hittades.",P1:"Länkar med samma tillgängliga namn leder till samma innehåll.",F1:"Länkar med samma tillgängliga namn leder till olika innehåll. Kontrollera att innehållen motsvarar varandra."}},"QW-ACT-R10":{name:"`Iframe`-element med samma tillgängliga namn har också samma syfte",description:"Denna regel kontrollerar att `iframe`-element med samma tillgängliga namn används samma eller motsvarande innehåll vid inbäddning.",results:{I1:"Inga objekt hittades.",P1:"`Iframe`-element med samma tillgängliga namn har samma innehåll.",F1:"`Iframe`-element med samma tillgängliga namn har olika innehåll."}},"QW-ACT-R11":{name:"Knappen har ett tillgängligt namn",description:"Denna regel kontrollerar att varje knapp-element har ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R12":{name:"Länken har ett tillgängligt namn",description:"Denna regel kontrollerar att varje länk har ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R13":{name:"Element för vilka attributet `aria-hidden` har definierats har inget fokuserat innehåll",description:"Denna regel kontrollerar att element med attributet `aria-hidden` inte innehåller underelement som kan ställas i fokus.",results:{I1:"Inga objekt hittades.",P1:"Objektets underelement kan inte ställas i fokus.",P2:"Objektet kan inte fokuseras.",F1:"Objektet har underelement som ställas i fokus.",F2:"Objektet kan ställas i fokus."}},"QW-ACT-R14":{name:"`Meta viewport’ förhindrar inte zoomning",description:"Denna regel kontrollerar att `meta`-elementet bibehåller webbläsarens zoomfunktion.",results:{I1:"Inga objekt hittades.",P1:"`Meta`-element med `name=viewport`-attribut definierar inte värdena `maximum-scale` eller `user-scalable`.",P2:"Ett `meta`-element med attribut `name=viewport` gör det möjligt att använda webbläsarens zoomfunktion.",F1:"Ett `meta`-element med attribut `name=viewport` tar bort möjligheten att zooma i webbläsaren med hjälp av definitionerna `user-scalable=no` eller `maximum-scale< 2`."}},"QW-ACT-R15":{name:"Ljud- eller videoinnehåll innehåller inte ljud som spelas upp automatiskt",description:"Denna regel kontrollerar att den automatiska uppspelningen av ljudinnehållet inte varar längre än tre (3) sekunder, eller att det finns en mekanism för att stoppa eller dämpa ljudinnehållet.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R16":{name:"Blankettelementet har ett tillgängligt namn",description:"Blankettelementet har ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R17":{name:"Bilden har ett tillgängligt namn",description:"Denna regel kontrollerar att alla bilder som inte är märkta som dekorativa måste ha ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Målet är dekorativt.",P2:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn."}},"QW-ACT-R18":{name:"`Id`-attributets värde är unikt",description:"Denna regel kontrollerar att varje `id`-attribut på samma sida har ett unikt värde.",results:{I1:"Inga objekt hittades.",P1:"Värdet för objektets `id`-attributet är unikt",F1:"Flera element har samma värde för `id`-attributet."}},"QW-ACT-R19":{name:"`Iframe`-elementet har ett tillgängligt namn",description:"Denna regel kontrollerar att varje `iframe`-elementet har ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R20":{name:"`Role`-attributet har ett tillåtet värde",description:"Denna regel kontrollerar att varje `role`-attribut har ett tillåtet värde.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillåtet värde i `role`-attributet.",F1:"Värdet för objektets `role`-attribut är felaktigt."}},"QW-ACT-R21":{name:"`Svg `-element med en explicit roll ska ha ett tillgängligt namn",description:"Denna regel kontrollerar att varje bild i formatet `svg’, som explicit har inkluderats i innehållsmodellen för tillgänglighet, har ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R22":{name:"Värde för `lang`-attributet för element inom `body` element är tillåtet.",description:"Denna regel kontrollerar att attributet `lang` för element inom sidans `body` innehåller en godkänd språkkod.",results:{I1:"Inga objekt hittades.",P1:"Objektets `lang`-attribut innehåller en godkänd språkkod.",F1:"Språkkoden för objektets `lang`-attribut är felaktig."}},"QW-ACT-R23":{name:"Det synliga innehållet i videon måste ges ett tillgängligt alternativ",description:"Denna regel kontrollerar att det i videor som innehåller ljud finns ett alternativ till visuellt innehåll även i ljud- eller textform.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R24":{name:"`Autocomplete`-attributet har ett tillåtet värde",description:"Denna regel kontrollerar att HTML:s attribut `autocomplete` har ett tillåtet värde.",results:{I1:"Inga objekt hittades.",P1:"Objektets `autocomplete`-attribut har ett tillåtet värde",F1:"Värdet för objektets `autocomplete`-attribut är felaktigt."}},"QW-ACT-R25":{name:"Det är tillåtet att använda ARIA-läget eller -egenskapen.",description:"Denna regel kontrollerar att WAI-ARIA-lägen och -egenskaper har använts endast i tillåtna element.",results:{I1:"Inga objekt hittades.",P1:"`{attr}`-egenskapen stöds eller hämtas från rollen `{role}`.",F1:"`{attr}`-egenskapen har varken hämtats från eller stöds för rollen `{role}`."}},"QW-ACT-R26":{name:"Videons ljudinnehåll har ett tillgängligt alternativ",description:"Denna regel kontrollerar att det finns ett alternativt sätt att återge videons ljudinnehåll.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R27":{name:"Attributet ARIA finns i WAI-ARIA-dokumentationen",description:"Denna regel kontrollerar att varje aria-*`-attribut som används har definierats i WAI-ARIA 1.1-dokumentationen.",results:{I1:"Inga objekt hittades.",P1:"Alla attribut som förekommer i elementet och börjar med `aria` ingår i WAI-ARIA 1.1-definitionerna.",F1:"Ett eller flera attribut som börjar med `aria` ingår inte i WAI-ARIA 1.1-definitionerna."}},"QW-ACT-R28":{name:"Ett element för vilket ett `role`-attribut har definierats har också de statusar och egenskaper som krävs",description:"Denna regel kontrollerar att element för vilka ett `role`-attribut har definierats också har tilldelats alla statusar och egenskaper som krävs i samband med `role`-attributet i fråga.",results:{I1:"Inga objekt hittades.",P1:"Alla obligatoriska attribut för objektelementet har angetts.",P2:"Objektelementets `role`-attribut innehåller inga obligatoriska status- eller egenskapsdefinitioner.",F1:"Objektets element saknar de status- eller egenskapsdefinitioner som krävs."}},"QW-ACT-R29":{name:"Ljudelementets innehåll kan också fås som text",description:"Denna regel kontrollerar om det finns ett textalternativ till innehåll som endast består av ljud.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R30":{name:"Elementets synliga namn är en del av dess tillgängliga namn",description:"Denna regel kontrollerar att det är det visuellt synliga namnet som är en del av det tillgängliga namnet för interaktiva element.",results:{I1:"Inga objekt hittades.",P1:"Objektets synliga text motsvarar helt och hållet eller är en del av dess tillgängliga namn.",F1:"Objektet har inte ett tillgängligt namn.",F2:"Objektets synliga text motsvarar inte det tillgängliga namnet och är inte en del av det."}},"QW-ACT-R31":{name:"Det synliga innehållet i en ljudlös video måste ges ett tillgängligt alternativ",description:"Denna regel kontrollerar att datainnehållet i en video som saknar ljudinnehåll också finns tillgängligt i alternativ form.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R32":{name:"Det synliga innehållet i videon måste ges ett tillgängligt alternativ",description:"Denna regel kontrollerar att videor som innehåller ljud även innehåller syntolkning.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R33":{name:"ARIA:s obligatoriska roll i kontexten",description:"Denna regel kontrollerar att ett element som har en explicit semantisk roll finns i den kontext som denna roll förutsätter.",results:{I1:"Inga objekt hittades.",P1:"Objektets moderelement har den roll som kontexten kräver.",F1:"Objektets moderelement har inte den roll som kontexten kräver."}},"QW-ACT-R34":{name:"ARIA-statusen eller -egenskap har ett tillåtet värde",description:"Denna regel kontrollerar att varje angiven ARIA-status och -egenskap har ett tillåtet värde.",results:{I1:"Inga objekt hittades.",P1:"Objektets `{attr}`-attribut har ett tillåtet värde",F1:"Värdet för objektets `{attr}`-attribut är felaktigt."}},"QW-ACT-R35":{name:"Rubriken har ett tillgängligt namn",description:"Denna regel gäller alla HTML-element som till sin semantiska betydelse definieras som rubriker och som ingår i innehållsmodellen för tillgänglighet.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn som inte är tomt.",F1:"Objektet har inte ett tillgängligt namn eller är tomt (``)."}},"QW-ACT-R36":{name:"Cellens `headers`-attribut avser en cell i samma tabellelement.",description:"Denna regel kontrollerar att cellens `headers`-attribut avser en cell i samma tabell som är av semantisk betydelse för kolumnens eller radens rubrik.",results:{I1:"Inga objekt hittades.",P1:"Alla värden i attributet `headers` hänvisar till rubrikceller i kolumnen och raden i samma tabell.",F1:"`Headers`-attributets värde `{attr}` hänvisar till elementets `id`-värde som inte förekommer i samma tabell.",F2:"`Headers`-attributets värde `{attr}` hänvisar till ett element i samma tabell som inte är kolumnens eller radens rubrik."}},"QW-ACT-R37":{name:"Texten uppfyller minimikraven för kontrast",description:"Denna regel kontrollerar att den största möjliga kontrasten mot bakgrunden för varje tecken i texten uppfyller minimikraven för kontrast.",results:{I1:"Inga objekt hittades.",P1:"Elementets kontrast överskrider minimikraven.",P2:"Med elementets tecken presenteras inte text på ett naturligt språk.",P3:"Elementets kontrast mot bakgrundens gradientfärg överskrider minimikraven.",W1:"Elementets text har skuggning som kräver manuell granskning.",W2:"Bakom elementet finns en bild.",W3:"Elementet har en gradientfärg som vi inte kan verifiera.",F1:"Elementets kontrast uppfyller inte minimikraven.",F2:"Elementets kontrast mot bakgrundens gradientfärg uppfyller inte minimikraven."}},"QW-ACT-R38":{name:"Dedikerade element som krävs av ARIA",description:"Denna regel kontrollerar att ett element som har en explicit semantisk roll har minst ett dedikerat element som rollen kräver.",results:{I1:"Inga objekt hittades.",P1:"Objektet tillägnar endast element som har den roll som krävs.",F1:"Objektet tillägnar element som inte har den roll som krävs."}},"QW-ACT-R39":{name:"Alla rubrikceller i tabellen riktar sig till innehållsceller",description:"Denna regel kontrollerar att varje rubrikcell i tabellelementet riktar sig till någon innehållscell.",results:{I1:"Inga objekt hittades.",P1:"Kolumnens rubrikelement riktar sig till åtminstone en cell.",F1:"Kolumnens rubrikelement riktar sig inte till någon cell."}},"QW-ACT-R40":{name:"CSS:s `overflow`-definition kommer inte att beskära den zoomade texten.",description:"Denna regel kontrollerar att texterna inte oavsiktligt beskärs med `overflow`-definitionen när sidan zoomas med 200 % i en vy på 1280 x 1024.",results:{I1:"Inga objekt hittades.",W1:"Kontrollera att texterna eller de element som ramar in dem inte beskärs med `overflow`-definitionen."}},"QW-ACT-R41":{name:"Felmeddelandet förklarar felet i blankettfältets inmatning.",description:"Denna regel kontrollerar att när användaren har matat in ett felaktigt värde i fältet på blanketten eller gett det i felaktig form anger felmeddelandet orsaken till felet eller hur det kan korrigeras.",results:{I1:"Inga objekt hittades.",W1:"Kontrollera att felmeddelandet anger orsaken till felet eller hur det kan korrigeras."}},"QW-ACT-R42":{name:"`Object`-elementet har ett tillgängligt namn som inte är tomt.",description:"Denna regel kontrollerar att varje `object`-element har ett tillgängligt namn som inte är tomt.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn som inte är tomt.",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R43":{name:"Skrollbart element är åtkomligt med ett tangentbord",description:"Denna regel kontrollerar att man kan skrolla skrollbara element enbart med hjälp av tangentbordet.",results:{I1:"Inga objekt hittades.",P1:"Denna skrollbara del ingår i navigerbart innehåll som fokuseras in i ordningsföljd.",F1:"Detta vertikalt eller horisontellt skrollbara delelement ingår inte i det navigerbara innehållet som fokuseras i ordningsföljd och innehåller inte heller sådana underelement."}},"QW-ACT-R44":{name:"Länkar i samma sammanhang och som har samma tillgängliga namn har samma användningsändamål.",description:"Denna regel kontrollerar att länkar i samma sammanhang och med samma tillgängliga namn returnerar samma eller motsvarande innehåll.",results:{I1:"Inga objekt hittades.",P1:"Länkar med samma tillgängliga namn hänvisar till samma innehåll.",W1:"Länkar med samma tillgängliga namn hänvisar till olika innehåll. Se till att innehållet stämmer överens."}},"QW-ACT-R48":{name:"Dekorativa element syns inte i tillgänglighetsträdet",description:"Denna regel kontrollerar att element som betecknats som dekorativa inte ingår i innehållsmodellen för tillgänglighet eller att de endast har en visualiserande roll.",results:{I1:"Inga objekt hittades.",P1:"Objektet ingår inte i innehållsmodellen för tillgänglighet.",F1:"Objektet ingår i innehållsmodellen för tillgänglighet."}},"QW-ACT-R49":{name:"Ljud- eller videoinnehåll som spelas upp automatiskt innehåller inget ljud som varar över tre (3) sekunder",description:"Ljud- eller videoinnehåll som spelas upp automatiskt producerar inte ljud som varar mer än tre (3) sekunder.",results:{I1:"Inga objekt hittades.",P1:"Objektets uppspelning tar tre (3) sekunder eller mindre.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att objektet har synliga funktioner för att hantera det."}},"QW-ACT-R50":{name:"Ljud- eller videoinnehåll som spelas upp automatiskt har styrverktyg.",description:"För ljud- eller videoinnehåll som spelas upp automatiskt måste det finnas funktioner för att hantera det.",results:{I1:"Inga objekt hittades.",P1:"Objektet har synliga styrverktyg.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att objektet har synliga funktioner för att hantera det."}},"QW-ACT-R51":{name:"Videons synliga innehåll är mediemotsvarighet till texten",description:"Denna regel kontrollerar att en videoinspelning som endast innehåller bild är mediemotsvarighet till texten på sidan.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att innehållet i videoinspelningen motsvarar texten."}},"QW-ACT-R52":{name:"Det finns textningsspår för syntolkning av videoinnehållet i en video som inte innehåller ljud",description:"Denna regel kontrollerar att textningsspåren för syntolkning av videoinspelningar som inte innehåller ljud beskriver det synliga innehållet.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att det finns ett tillgängligt alternativ till det synliga innehållet."}},"QW-ACT-R53":{name:"Video med endast visuellt innehåll har transkription.",description:"All synlig information i en videoinspelningen som inte innehåller ljud ska ha en transkription.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att det finns ett tillgängligt alternativ till det synliga innehållet."}},"QW-ACT-R54":{name:"Videoinspelningar med visuellt innehåll kan ges alternativt som ljudupptagningar.",description:"För videoinspelningar som inte innehåller ljud måste det finnas ett alternativ i form av en ljudupptagning.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att det finns ett tillgängligt alternativ till det synliga innehållet."}},"QW-ACT-R55":{name:"För synligt innehåll i videon ges syntolkning",description:"Denna regel kontrollerar att allt synligt innehåll i videoinspelningen också finns på videons ljudspår.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Målelementet har ljudspår, men det gick inte att verifiera dess styrka. Kontrollera att objektet har ett ljudspår och i förekommande fall att det finns ett tillgängligt alternativ till det synliga innehållet i videon."}},"QW-ACT-R56":{name:"Videon är mediemotsvarigheten till texten",description:"Denna regel kontrollerar att en videoinspelning är mediemotsvarighet till texten på sidan.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att innehållet i videoinspelningen motsvarar texten."}},"QW-ACT-R57":{name:"Textspår för syntolkning av videons synliga innehåll",description:"Denna regel kontrollerar att textningsspåren för syntolkning av videoinspelningar beskriver det synliga innehållet.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Målelementet har ljudspår, men det gick inte att verifiera dess styrka. Kontrollera att objektet har ett ljudspår och i förekommande fall att det finns ett tillgängligt alternativ till det visuella innehållet i videon."}},"QW-ACT-R58":{name:"Ljudupptagningen har en transkription",description:"Ljudupptagningar ska ha ett textalternativ som innehåller all ljudinformation.",results:{I1:"Inga objekt hittades.",W1:"Kontrollera att det finns ett textalternativ till objektets ljudspår."}},"QW-ACT-R59":{name:"Ljudupptagningen är mediemotsvarigheten till texten",description:"Denna regel kontrollerar att en ljudupptagning är mediemotsvarighet till texten på sidan.",results:{I1:"Inga objekt hittades.",W1:"Kontrollera att innehållet i ljudupptagningen motsvarar texten."}},"QW-ACT-R60":{name:"Videons ljudinnehåll har textning",description:"TDenna regel kontrollerar att det finns textning för videoinspelningens ljudinnehåll.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Målelementet har ljudspår, men det gick inte att verifiera dess styrka. Kontrollera att objektet har ett ljudspår och om det finns en motsvarande textning för ljudinnehållet."}},"QW-ACT-R61":{name:"Det finns en transkription för videoelementets ljud- och bildinnehåll.",description:"Denna regel kontrollerar att det inspelade videoinnehållet har en transkription som täcker allt ljud- och bildinnehåll.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Målelementet har ljudspår, men det gick inte att verifiera dess styrka. Kontrollera att objektet har ljudspår och transkription. I förekommande fall, kontrollera att transkriptionen beskriver allt ljud- och bildinnehåll på videon."}},"QW-ACT-R62":{name:"Ett element som hör till innehåll som fokuseras ordningsföljd har ett synligt fokus",description:"Denna regel kontrollerar att varje element som fokuseras ordningsföljd har någon synlig indikation på fokuset.",results:{I1:"Inga objekt hittades.",W1:"Kontrollera att elementet har någon synlig indikation på fokuset."}},"QW-ACT-R63":{name:"Dokumentet har ett landmärke för innehåll som inte upprepas",description:"Denna regel kontrollerar att varje sida har ett element vars semantiska betydelse är att vara ett landmärke för innehåll som inte upprepas.",results:{I1:"Inga objekt hittades.",P1:"Sidan innehåller inget innehåll som upprepas.",W1:"Kontrollera att det antingen inte finns innehåll som inte upprepas på sidan efter upprepat innehåll eller att det förekommer ett element som uppfyller följande villkor: elementet har semantisk betydelse som landmärke, det första underelementet som observeras i elementets utskriftsordning är innehåll som inte upprepas efter upprepat innehåll och elementet ingår i innehållsmodellen för tillgänglighet."}},"QW-ACT-R64":{name:"Dokumentet har en rubrik för innehåll som inte upprepas",description:"Denna regel kontrollerar att det finns en rubrik för innehåll som inte upprepas.",results:{I1:"Inga objekt hittades.",P1:"Sidan innehåller inget innehåll som upprepas.",W1:"Kontrollera att det antingen inte finns innehåll som inte upprepas på sidan efter upprepat innehåll eller att det förekommer ett element som uppfyller följande villkor: elementet är innehåll som inte upprepas efter upprepat innehåll; elementet har semantisk betydelse som rubrik; elementet syns och elementet ingår i innehållsmodellen för tillgänglighet."}},"QW-ACT-R65":{name:"Element som endast innehåller visualiserande underelement har inget fokuserat innehåll",description:"Denna regel kontrollerar att element vars roll gör deras underelement endast visualiserande inte innehåller fokuserade element.",results:{I1:"Inga objekt hittades.",P1:"I utskriftshierarkin har elementet inga underelement som fokuseras i ordningsföljd.",F1:"I utskriftshierarkin har elementet underelement som fokuseras i ordningsföljd."}},"QW-ACT-R66":{name:"I menyn finns ett tillgängligt namn som inte är tomt",description:"Denna regel kontrollerar att varje element som har en `menuitem`-roll har ett tillgängligt namn som inte är tomt.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn som inte är tomt",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R67":{name:"I stildefinitionerna har mellanrummet mellan bokstäverna inte definierats med `!important`-regeln",description:"Denna regel kontrollerar att stildefinitionerna inte har hindrat bearbetning av bokstävernas mellanrum med `!important`-regeln, utom när värdet på definitionen `letter-spacing` är minst 0,12 gånger bokstavens storlek.",results:{I1:"Inga objekt hittades.",P1:"`Letter-spacing`-egenskapen har ingen `!important`-definition.",P2:"`Letter-spacing`-värdet är minst 0,12 gånger bokstavens storlek.",P3:"Det `letter-spacing`-värde som fastställts för elementet är inte detsamma som det värde som antecknats för elementet.",F1:"CSS-reglerna hindrar `letter-spacing`-värdet från att uppfylla minimikravet."}},"QW-ACT-R68":{name:"I stildefinitionerna har radhöjden inte definierats med `!important`-regeln",description:"Denna regel kontrollerar att stildefinitionerna inte har hindrat bearbetning av radhöjden med `!important`-regeln, utom när radhöjden är minst 1,5 gånger bokstavens storlek.",results:{I1:"Inga objekt hittades.",P1:"`Line-height`-egenskapen har ingen `!important`-definition.",P2:"`Line-height`-värdet är minst 1,5 gånger bokstavens storlek..",P3:"Det `line-height`-värde som fastställts för elementet är inte detsamma som det värde som antecknats för elementet.",F1:"CSS-reglerna hindrar `line-height`-värdet från att uppfylla minimikravet."}},"QW-ACT-R69":{name:"I stildefinitionerna har mellanrummet mellan ord inte definierats med `!important`-regeln",description:"Denna regel kontrollerar att stildefinitionerna inte har hindrat bearbetning av ordens mellanrum med `!important`-regeln, utom när värdet på definitionen `word-spacing` är minst 0,16 gånger bokstavens storlek.",results:{I1:"Inga objekt hittades.",P1:"`Word-spacing`-egenskapen har ingen `!important`-definition.",P2:"`Word-spacing`-värdet är minst 0,16 gånger bokstavens storlek.",P3:"Det `word-spacing`-värde som fastställts för elementet är inte detsamma som det värde som antecknats för elementet.",F1:"CSS-reglerna hindrar `word-spacing`-värdet från att uppfylla minimikravet."}},"QW-ACT-R70":{name:"`Iframe` med negativt `tabindex`-attribut innehåller inga interaktiva element",description:"Denna regel kontrollerar att ett `iframe`-element vars `tabindex`-attribut har ett negativt värde inte innehåller interaktiva element.",results:{I1:"Inga objekt hittades.",RC1:"Den inkluderade kontexten innehåller inga element som är synliga och fokuseras i ordningsföljd.",RC2:"Den inkluderade kontexten innehåller element som är synliga och fokuseras i ordningsföljd."}},"QW-ACT-R71":{name:"`Meta`-elementet har ingen uppdateringsfördröjning (inget undantag)",description:"Denna regel kontrollerar att elementet `meta’ inte har använts för fördröjd omdirigering eller omladdning.",results:{I1:"Inga objekt hittades.",P1:"Objektet laddas om eller omdirigeras omedelbart.",F1:"Objektet laddas om efter {seconds} sekunder.",F2:"Objektet omdirigeras efter {seconds} sekunder."}},"QW-ACT-R72":{name:"Det första fokuserade elementet är en länk till innehåll som inte upprepas",description:"Denna regel kontrollerar att det första fokuserade elementet är en länk till innehåll som inte upprepas på sidan.",results:{I1:"Inga objekt hittades.",W1:"Kontrollera att det första fokuserade elementet har ett tillgängligt namn som låter förstå att man hoppar över innehåll med den.",W2:"Kontrollera att det första fokuserade elementet hoppar till sidans huvudinnehåll och att dess tillgängliga namn också låter förstå detta.",F1:"Det första fokuserade elementet är inte åtkomligt med tangentbord.",F2:"Det första fokuserade elementet ingår inte i innehållsmodellen för tillgänglighet.",F3:"Det första fokuserade elementet är inte en länk.",F4:"Det första fokuserade elementet hoppar inte till sidans huvudinnehåll.",F5:"På sidan finns inga fokuserade element."}},"QW-ACT-R73":{name:"Blocket med upprepat innehåll måste krympas",description:"Denna regel kontrollerar att block med upprepat innehåll kan krympas.",results:{I1:"Inga objekt hittades.",P1:"Sidan innehåller inget innehåll som upprepas.",W1:"Kontrollera i varje block med upprepat innehåll som finns i ett element som i utskriftsordningen åtföljs av minst ett element med innehåll som upprepas efter upprepat innehåll att följande villkor uppfylls: det finns en funktion för att dölja alla delar av detta block och det finns en funktion för att ta bort dessa delar från innehållsmodellen för tillgänglighet."}},"QW-ACT-R74":{name:"Dokumentet har en mekanism för att flytta fokus till innehåll som inte upprepas",description:"Denna regel kontrollerar att det finns en mekanism för att flytta fokus till innehåll som inte upprepas på sidan.",results:{I1:"Inga objekt hittades.",P1:"Sidan innehåller inget innehåll som upprepas.",W1:"På sidan finns en eller flera funktioner för att flytta fokus. Kontrollera att någon av dessa används före blocket med upprepat innehåll och att fokuset placeras strax före blocket med innehåll som inte upprepas.",W2:"Kontrollera att det finns minst en funktion på sidan för att flytta fokus. Kontrollera att någon av dessa används före blocket med upprepat innehåll och att fokuset placeras strax före blocket med innehåll som inte upprepas."}},"QW-ACT-R75":{name:"Hoppa över block med upprepat innehåll",description:"Denna regel kontrollerar att det på varje sida finns en mekanism för att hoppa över block med upprepat innehåll.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R76":{name:"Texten uppfyller kraven på utökad kontrast",description:"Denna regel kontrollerar att den största möjliga kontrasten mot bakgrunden för varje tecken i texten uppfyller kraven på utökad kontrast.",results:{I1:"Inga objekt hittades.",P1:"Elementets kontrast överskrider minimikraven.",P2:"Med elementets tecken presenteras inte text på ett naturligt språk.",P3:"Elementets kontrast mot bakgrundens gradientfärg överskrider minimikraven.",W1:"Elementets text har skuggning som kräver manuell granskning.",W2:"Bakom elementet finns en bild.",W3:"Elementet har en gradientfärg som vi inte kan verifiera.",F1:"Elementets kontrast uppfyller inte minimikraven.",F2:"Elementets kontrast mot bakgrundens gradientfärg uppfyller inte minimikraven."}},"QW-ACT-R77":{name:"ARIA required ID references exist",description:"This rule checks that every ID reference required by WAI-ARIA exists.",results:{I1:"No test targets found.",P1:"Referenced element exists.",F1:"Referenced element does not exist."}}}}},847:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Translator=void 0,t.Translator=class{locale;constructor(e){this.locale=e}get(e){let t;const n=Array.isArray(e)?e:e.split(".");let i=this.locale.translate;return n.forEach((e=>i=i?.[e])),t=i,"string"!=typeof t&&(i=this.locale.fallback,n.forEach((e=>i=i?.[e])),t=i),"string"==typeof t?t:void 0}}},300:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})}},t={},n=function n(i){var a=t[i];if(void 0!==a)return a.exports;var s=t[i]={exports:{}};return e[i].call(s.exports,s,s.exports,n),s.exports}(973);for(var i in n)this[i]=n[i];n.__esModule&&Object.defineProperty(this,"__esModule",{value:!0})})()},4715:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QWElement=void 0;class QWElement{constructor(e,t){this.selector="",this.element=e,this.elementsCSSRules=t;const n=e.getAttribute("qw-selector");n&&(this.selector=n)}addCSSRulesPropertyToElement(e){var t;e&&(null===(t=this.elementsCSSRules)||void 0===t?void 0:t.has(e))&&e.setAttribute("qw-css-rules","true")}hasCSSRules(){return"true"===this.element.getAttribute("qw-css-rules")}getCSSRules(){var e;return null===(e=this.elementsCSSRules)||void 0===e?void 0:e.get(this.element)}hasCSSProperty(e,t,n){var i,a;if(null===(i=this.elementsCSSRules)||void 0===i?void 0:i.has(this.element)){const i=null===(a=this.elementsCSSRules)||void 0===a?void 0:a.get(this.element);if(i){if(t&&n)return void 0!==i.media[n][t][e];if(t)return void 0!==i[t][e];if(n)return void 0!==i.media[n][e]}return!i||void 0!==i[e]}return!1}getCSSProperty(e,t,n){var i,a;if(null===(i=this.elementsCSSRules)||void 0===i?void 0:i.has(this.element)){const i=null===(a=this.elementsCSSRules)||void 0===a?void 0:a.get(this.element);if(i)return t&&n?i.media[n][t][e]:t?i[t][e]:n?i.media[n][e]:i[e]}}getCSSMediaRules(){var e,t;if(null===(e=this.elementsCSSRules)||void 0===e?void 0:e.has(this.element)){const e=null===(t=this.elementsCSSRules)||void 0===t?void 0:t.get(this.element);if(e)return e.media}}getCSSPseudoSelectorRules(e){var t,n;if(null===(t=this.elementsCSSRules)||void 0===t?void 0:t.has(this.element)){const t=null===(n=this.elementsCSSRules)||void 0===n?void 0:n.get(this.element);if(t)return t[e]}}elementHasAttribute(e){return this.element.getAttributeNames().includes(e)}elementHasAttributes(){return this.element.getAttributeNames().length>0}elementHasChild(e){const t=this.element.children;for(let n=0;n<t.length;n++){const i=t.item(n);if(i&&i.tagName.toLowerCase()===e.toLowerCase())return!0}return!1}elementHasChildren(){return this.element.children.length>0}elementHasParent(e){const t=this.element.parentElement;return!!t&&t.tagName.toLowerCase()===e.toLowerCase()}hasTextNode(){let e=!1;return this.element.childNodes.forEach((t=>{var n;3===t.nodeType&&""!==(null===(n=t.textContent)||void 0===n?void 0:n.trim())&&(e=!0)})),e}getElementAttribute(e){return this.element.getAttribute(e)}getElementAttributes(){var e;const t={};for(const n of null!==(e=this.element.getAttributeNames())&&void 0!==e?e:[]){const e=this.element.getAttribute(n);e&&(t[n]=e)}return t}getElementAttributesName(){return this.element.getAttributeNames()}getElementChildren(){const e=new Array,t=this.element.children;for(let n=0;n<t.length;n++){const i=t.item(n);i&&(this.addCSSRulesPropertyToElement(i),e.push(new QWElement(i,this.elementsCSSRules)))}return e}getElementChildTextContent(e){var t;const n=this.element.children;for(let i=0;i<n.length;i++){const a=n.item(i);if(a&&a.tagName.toLowerCase()===e.toLowerCase())return null!==(t=a.textContent)&&void 0!==t?t:void 0}}getElementHtmlCode(e,t){const n=this.element.getAttribute("qw-css-rules"),i=this.element.getAttribute("qw-selector"),a=this.element.getAttribute("_documentSelector");let s;if(this.element.removeAttribute("qw-css-rules"),this.element.removeAttribute("qw-selector"),this.element.removeAttribute("_documentSelector"),t){const e=this.element.children,t=new Array;for(let n=0;n<e.length;n++){const i=e.item(n);if(i){const e=i.getAttribute("qw-css-rules"),n=i.getAttribute("qw-selector"),a=i.getAttribute("_documentSelector");t.push({cssRulesValue:e,selectorValue:n,documentSelectorValue:a}),i.removeAttribute("qw-css-rules"),i.removeAttribute("qw-selector"),i.removeAttribute("_documentSelector")}}s=this.element.outerHTML;for(let n=0;n<e.length;n++){const i=e.item(n);if(i){const e=t[n];e.cssRulesValue&&i.setAttribute("qw-css-rules",e.cssRulesValue),e.selectorValue&&i.setAttribute("qw-selector",e.selectorValue),e.documentSelectorValue&&i.setAttribute("_documentSelector",e.documentSelectorValue)}}}else if(e){const e=this.element.cloneNode(!1),t=this.getElementText();e.innerHTML=void 0!==t?t:"",s=e.outerHTML}else{const e=this.element.cloneNode(!1);e.innerHTML="",s=e.outerHTML}return n&&this.element.setAttribute("qw-css-rules",n),i&&this.element.setAttribute("qw-selector",i),a&&this.element.setAttribute("_documentSelector",a),s}getElement(e){const t=this.element.querySelector(e);return this.addCSSRulesPropertyToElement(t),this.convertElementToQWElement(t)}convertElementToQWElement(e){return e?(this.addCSSRulesPropertyToElement(e),new QWElement(e,this.elementsCSSRules)):null}convertElementsToQWElement(e){const t=new Array;return null==e||e.forEach((e=>{this.addCSSRulesPropertyToElement(e),t.push(new QWElement(e,this.elementsCSSRules))})),t}getElements(e){return this.convertElementsToQWElement(this.element.querySelectorAll(e))}getElementNextSibling(){return this.convertElementToQWElement(this.element.nextElementSibling)}getAllPreviousSiblings(){const e=new Array;let t=this.element.previousSibling;for(;null!==t;){if(1===t.nodeType){const n=this.convertElementToQWElement(t);n&&e.unshift(n)}else 3===t.nodeType&&t.textContent&&e.unshift(t.textContent);t=t.previousSibling}return e}getAllNextSiblings(){const e=new Array;let t=this.element.nextSibling;for(;null!==t;){if(1===t.nodeType){const n=this.convertElementToQWElement(t);n&&e.push(n)}else 3===t.nodeType&&t.textContent&&e.push(t.textContent);t=t.nextSibling}return e}getPreviousSibling(){const e=this.element.previousSibling;if(e){if(1===e.nodeType)return this.convertElementToQWElement(e);if(3===e.nodeType)return e.textContent;{let t=e.previousSibling,n=null;for(;null!==t;){if(1===t.nodeType){n=this.convertElementToQWElement(t);break}3===t.nodeType&&(n=t.textContent),t=t.previousSibling}return n}}return null}getNextSibling(){const e=this.element.nextSibling;if(e){if(1===e.nodeType)return this.convertElementToQWElement(e);if(3===e.nodeType)return e.textContent;{let t=e.nextSibling,n=null;for(;null!==t;){if(1===t.nodeType){n=this.convertElementToQWElement(t);break}3===t.nodeType&&(n=t.textContent),t=t.nextSibling}return n}}return null}getElementParent(){return this.convertElementToQWElement(this.element.parentElement)}getParentAllContexts(){let e=this.element.parentElement;if(!e){const t=this.element.getAttribute("_documentSelector");t&&(e=document.querySelector(t))}return this.convertElementToQWElement(this.element.parentElement)}getElementPreviousSibling(){return this.convertElementToQWElement(this.element.previousElementSibling)}getElementProperty(e){const t=this.element[e];return null===t?"":t.toString()}getElementSelector(){if(""===this.selector){if("html"===this.element.tagName.toLowerCase())return"html";if("head"===this.element.tagName.toLowerCase())return"html > head";if("body"===this.element.tagName.toLowerCase())return"html > body";let e="";const t=new Array;let n=this.element.parentElement;for(;n;)t.unshift(this.getSelfLocationInParent(n)),n=n.parentElement;t.length>0?(e+=t.join(" > "),e+=" > "+this.getSelfLocationInParent(this.element)):e+=this.getSelfLocationInParent(this.element);const i=this.element.getAttribute("_documentSelector");return i&&(e=i+e),this.selector=e,e}return this.selector}getSelfLocationInParent(e){let t="";if("body"===e.tagName.toLowerCase()||"head"===e.tagName.toLowerCase())return e.tagName.toLowerCase();let n=0,i=e.previousElementSibling;for(;i;)i.tagName.toLowerCase()===e.tagName.toLowerCase()&&n++,i=i.previousElementSibling;return t+=`${e.tagName.toLowerCase()}:nth-of-type(${n+1})`,t}getElementStyleProperty(e,t){return getComputedStyle(this.element,t).getPropertyValue(e)}getElementTagName(){return this.element.tagName.toLowerCase()}getElementText(){var e,t;return this.element.shadowRoot?null!==(e=this.element.shadowRoot.textContent)&&void 0!==e?e:"":null!==(t=this.element.textContent)&&void 0!==t?t:""}getElementOwnText(){let e;e=this.element.shadowRoot?this.element.shadowRoot.childNodes:this.element.childNodes;let t,n="";return e.forEach((e=>{t=e.textContent,3===e.nodeType&&t&&""!==t.trim()&&(n+=t.trim())})),n}getElementType(){return 1===this.element.nodeType?"tag":2===this.element.nodeType?"attribute":3===this.element.nodeType?"text":"comment"}getNumberOfSiblingsWithTheSameTag(){let e=1,t=this.element.nextElementSibling;for(;t;)"a"===t.tagName.toLowerCase()&&e++,t=t.nextElementSibling;return e}setElementAttribute(e,t){this.element.setAttribute(e,t)}concatANames(e){const t=this.element.childNodes;let n,i="",a=0,s=0;return t.forEach((t=>{n=t.textContent,3===t.nodeType&&n&&""!==n.trim()?(i=i+(0===s?"":" ")+n.trim(),s++):1===t.nodeType&&(i=i+(s>0&&e[a]?" ":"")+e[a],a++)})),i||(i=""),i}isOffScreen(){const e=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight),t=Math.max(document.body.scrollWidth,document.documentElement.scrollWidth,document.body.offsetWidth,document.documentElement.offsetWidth,document.body.clientWidth,document.documentElement.clientHeight),n=this.element.getBoundingClientRect(),i=n.left,a=n.right,s=n.bottom,r=n.top,l=this.noParentScrolled(s);return i>t||a<0||s<0&&l||r>e||0===a&&0===i}isElementHTMLElement(){return this.element instanceof HTMLElement}getContentFrame(){let e=null;if("iframe"===this.getElementTagName()){const t=this.element.contentWindow;t&&(e=t.document)}return e}elementHasTextNode(){let e=!1;if(null!==this.element.childNodes){this.element.childNodes.forEach((t=>{var n;3===t.nodeType&&""!==(null===(n=t.textContent)||void 0===n?void 0:n.trim())&&(e=!0)}))}return e}noParentScrolled(e){let t=this.element.parentElement;for(;t&&"html"!==t.nodeName.toLowerCase();){if(t.scrollTop&&(e+=t.scrollTop)>=0)return!1;t=t.parentElement}return!0}focusElement(){this.element.focus()}dispatchEvent(e){this.element.dispatchEvent(e)}click(){this.element.click()}getBoundingBox(){return this.element.getBoundingClientRect()}getShadowElement(e){const t=this.element.shadowRoot;let n=null;return t&&(n=t.querySelector(e)),this.convertElementToQWElement(n)}getShadowElements(e){const t=this.element.shadowRoot;let n=null;return t&&(n=t.querySelectorAll(e)),this.convertElementsToQWElement(n)}getSlotElements(){const e=this.element.assignedElements(),t=new Array;return null==e||e.forEach((e=>{this.addCSSRulesPropertyToElement(e),t.push(new QWElement(e,this.elementsCSSRules))})),t}getSlotNodes(){return this.element.assignedNodes()}isShadowRoot(){return!!this.element.shadowRoot}}t.QWElement=QWElement},3408:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(4715),t),a(n(2357),t)},2357:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3920:function(e,t){"use strict";var n=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,s){function r(e){try{o(i.next(e))}catch(e){s(e)}}function l(e){try{o(i.throw(e))}catch(e){s(e)}}function o(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,l)}o((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ElementExists=function(e,t,n){const i=n.value;n.value=function(){if(arguments[0])return i.apply(this,arguments)}},t.ElementIsHTMLElement=function(e,t,n){const i=n.value;n.value=function(){if(arguments[0].isElementHTMLElement())return i.apply(this,arguments)}},t.ElementHasAttributes=function(e,t,n){const i=n.value;n.value=function(){if(arguments[0].elementHasAttributes())return i.apply(this,arguments)}},t.ElementHasAttribute=function(e){return function(t,n,i){const a=i.value;i.value=function(){if(arguments[0].elementHasAttribute(e))return a.apply(this,arguments)}}},t.ElementHasNonEmptyAttribute=function(e){return function(t,n,i){const a=i.value;i.value=function(){const t=arguments[0].getElementAttribute(e);if(t&&t.trim())return a.apply(this,arguments)}}},t.ElementHasAttributeRole=function(e){return function(t,n,i){const a=i.value;i.value=function(){const t=window.AccessibilityUtils.getElementRole(arguments[0]);if(!t||t===e)return a.apply(this,arguments)}}},t.ElementHasAttributeValue=function(e,t){return function(n,i,a){const s=a.value;a.value=function(){const n=arguments[0].getElementAttribute(e);if(n&&n===t)return s.apply(this,arguments)}}},t.IfElementHasTagNameMustHaveAttributeRole=function(e,t){return function(n,i,a){const s=a.value;a.value=function(){if(arguments[0].getElementTagName()!==e)return s.apply(this,arguments);{const e=arguments[0].getElementAttribute("role");if(!e||e===t)return s.apply(this,arguments)}}}},t.ElementHasText=function(e,t,n){const i=n.value;n.value=function(){const e=arguments[0];if(""!==window.DomUtils.getTrimmedText(e))return i.apply(this,arguments)}},t.ElementHasTextNode=function(e,t,n){const i=n.value;n.value=function(){if(arguments[0].elementHasTextNode())return i.apply(this,arguments)}},t.ElementIsInAccessibilityTree=function(e,t,n){const i=n.value;n.value=function(){if(window.AccessibilityUtils.isElementInAT(arguments[0]))return i.apply(this,arguments)}},t.ElementHasNegativeTabIndex=function(e,t,n){const i=n.value;n.value=function(){const e=arguments[0].getElementAttribute("tabindex");if(e&&parseInt(e)<=-1)return i.apply(this,arguments)}},t.ElementIsNotHidden=function(e,t,n){const i=n.value;n.value=function(){if(!window.DomUtils.isElementHidden(arguments[0]))return i.apply(this,arguments)}},t.ElementSrcAttributeFilenameEqualsAccessibleName=function(e,t,n){const i=n.value;n.value=function(){const e=arguments[0].getElementAttribute("src"),t=arguments[0].getElementAttribute("srcset"),n=arguments[0].getElementParent();let a=new Array;if(e){const t=e.split("/");a=[t[t.length-1].trim().toLowerCase()]}if(t){const e=t.split(",");for(const t of e||[]){const e=t.split(" ")[0].split("/");a.push(e[e.length-1].trim().toLowerCase())}}if(n){if("picture"===n.getElementTagName()){const e=n.getElements("source");for(const t of e){const e=t.getElementAttribute("srcset");if(e){const t=e.split("/");a.push(t[t.length-1].trim().toLowerCase())}}}}const s=window.AccessibilityUtils.getAccessibleName(arguments[0]);if(s&&a&&a.includes(s.toLowerCase()))return i.apply(this,arguments)}},t.IsInMainContext=function(e,t,n){const i=n.value;n.value=function(){const e=arguments[0].getElementAttribute("_documentSelector");if(!e||!e.includes(">"))return i.apply(this,arguments)}},t.ElementIsVisible=function(e,t,n){const i=n.value;n.value=function(){if(window.DomUtils.isElementVisible(arguments[0]))return i.apply(this,arguments)}},t.ElementIsNot=function(e){return function(t,n,i){const a=i.value;i.value=function(){const t=arguments[0].getElementTagName();if(t&&!e.includes(t))return a.apply(this,arguments)}}},t.ElementHasOneOfTheFollowingRoles=function(e){return function(t,n,i){const a=i.value;i.value=function(){const t=window.AccessibilityUtils.getElementRole(arguments[0]);if(t&&e.includes(t))return a.apply(this,arguments)}}},t.ElementIsWidget=function(e,t,n){const i=n.value;n.value=function(){if(window.AccessibilityUtils.isElementWidget(arguments[0]))return i.apply(this,arguments)}},t.ElementIsNotWidget=function(e,t,n){const i=n.value;n.value=function(){if(!window.AccessibilityUtils.isElementWidget(arguments[0]))return i.apply(this,arguments)}},t.ElementAllowsNameFromContent=function(e,t,n){const i=n.value;n.value=function(){if(window.AccessibilityUtils.allowsNameFromContent(arguments[0]))return i.apply(this,arguments)}},t.ElementHasCSSRules=function(e,t,n){const i=n.value;n.value=function(){if(arguments[0].getCSSRules())return i.apply(this,arguments)}},t.IsLangSubTagValid=function(e){return function(t,n,i){const a=i.value;i.value=function(){const t=arguments[0].getElementAttribute(e);if(t&&function(e){const t=window.AccessibilityUtils.languages;return e.toLowerCase()in t}(t.split("-")[0]))return a.apply(this,arguments)}}},t.ElementIsImage=function(e,t,n){const i=n.value;n.value=function(){const e=arguments[0],t=window.AccessibilityUtils.getElementRole(e);if("img"===e.getElementTagName()||"img"===t)return i.apply(this,arguments)}},t.ElementIsNonText=function(e,t,n){const i=n.value;n.value=function(){const e=arguments[0];if(window.DomUtils.objectElementIsNonText(e))return i.apply(this,arguments)}},t.ElementIsSemanticLink=function(e,t,n){const a=n.value;n.value=function(){const e=arguments[0],t=window.AccessibilityUtils.getElementRole(e);if(t&&i.includes(t))return a.apply(this,arguments)}},t.ElementIsDataTable=function(e,t,n){const i=n.value;n.value=function(){if(window.AccessibilityUtils.isDataTable(arguments[0]))return i.apply(this,arguments)}},t.ElementHasAccessibleName=function(e,t,n){const i=n.value;n.value=function(){const e=window.AccessibilityUtils.getAccessibleName(arguments[0]);if(""!==(null==e?void 0:e.trim()))return i.apply(this,arguments)}},t.ElementHasChild=function(e){return function(t,i,a){const s=a.value;a.value=function(){var t=arguments;return n(this,void 0,void 0,(function*(){if(0!==t[0].getElements(e).length)return s.apply(this,t)}))}}},t.ElementHasVisibleChild=function(e){return function(t,i,a){const s=a.value;a.value=function(){var t=arguments;return n(this,void 0,void 0,(function*(){const n=t[0].getElements(e);if(0!==n.length){let e=!1;for(const t of null!=n?n:[])e||(e=window.DomUtils.isElementVisible(t));if(e)return s.apply(this,t)}}))}}},t.ElementDoesNotHaveChild=function(e){return function(t,i,a){const s=a.value;a.value=function(){var t=arguments;return n(this,void 0,void 0,(function*(){if(0===t[0].getElements(e).length)return s.apply(this,t)}))}}},t.ElementHasParent=function(e){return function(t,i,a){const s=a.value;a.value=function(){var t=arguments;return n(this,void 0,void 0,(function*(){if(t[0].elementHasParent(e))return s.apply(this,t)}))}}},t.ElementIsNotChildOf=function(e){return function(t,i,a){const s=a.value;a.value=function(){var t=arguments;return n(this,void 0,void 0,(function*(){if(!t[0].elementHasParent(e))return s.apply(this,t)}))}}},t.ElementIsNotInert=function(e,t,n){const i=n.value;n.value=function(){let e=!0;if(arguments[0].elementHasAttribute("inert")){if("false"!==arguments[0].getElementAttribute("inert")&&(e=!1),!e)return}let t=!0,n=arguments[0].getElementParent();for(;n;){const e=n.getElementAttribute("inert");e&&"true"===e&&(t=!1),n=n.getElementParent()}if(t&&!window.qwPage.pageHasOpenDialog())return i.apply(this,arguments)}},t.ElementIsVisibleOrInAccessibilityTree=function(e,t,n){const i=n.value;n.value=function(){if(window.qwPage.getElements("*").filter((e=>e.hasTextNode()&&(window.DomUtils.isElementVisible(e)||window.AccessibilityUtils.isElementInAT(e)))).length>0)return i.apply(this,arguments)}},t.IsHTMLDocument=function(e,t,n){const i=n.value;n.value=function(){let e=!1;const t=window.qwPage.getElement("html");if(t&&(e="true"===t.getElementAttribute("nonHTMLPage")),!e)return i.apply(this,arguments)}};const i=["link","doc-backlink","doc-biblioref","doc-glossref","doc-noteref"]},2765:e=>{"use strict";e.exports=JSON.parse('{"QW_BP1":{"name":"Using h1-h6 to identify headings","code":"QW-BP1","mapping":"H42","description":"It is recommended to use HTML and XHTML heading markup to provide semantic code for headings in the content","metadata":{"target":{"element":["h1","h2","h3","h4","h5","h6"]},"success-criteria":[{"name":"1.3.1","level":"A","principle":"Perceivable","url":"https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html"}],"related":["H69","G141","F2","F43"],"url":"https://www.w3.org/TR/WCAG20-TECHS/H42.html"}},"QW_BP2":{"name":"Concise images alt text","code":"QW-BP2","description":"Image alt text attribute with more than 100 characters","metadata":{"target":{"element":"img"}}},"QW_BP4":{"name":"Grouped links not within a nav element","code":"QW-BP4","description":"Set of 10 or more links not grouped within a list (nav)","metadata":{"target":{"element":"a"}}},"QW_BP5":{"name":"Using table elements inside other table elements","code":"QW-BP5","description":"It is not recommended to use table elements inside other table elements","metadata":{"target":{"element":"table","parent":"table"}}},"QW_BP6":{"name":"title element is not too long (100 characters)","code":"QW-BP6","description":"The webpage title element shouldn\'t have more than 100 characters","metadata":{"target":{"element":"title"}}},"QW_BP7":{"name":"Title element contains ASCII-art","code":"QW-BP7","description":"Title element contains ASCII-art","metadata":{"target":{"element":"title"}}},"QW_BP8":{"name":"Headings with images should have an accessible name","code":"QW-BP8","description":"Headings with at least one image should have an accessible name","metadata":{"target":{"element":["h1","h2","h3","h4","h5","h6","[role=\'heading\']"],"children":"img"},"related":["G130"]}},"QW_BP9":{"name":"Table element without header cells has a caption","code":"QW-BP9","description":"A table without th elements should have a caption element to describe it.","metadata":{"target":{"element":"table"}}},"QW_BP10":{"name":"HTML elements are used to control visual presentation of content","code":"QW-BP10","description":"No HTML elements are used to control the visual presentation of content","metadata":{"target":{"element":["b","blink","blockquote","basefont","center","cite","em","font","i","link","mark","strong","s","strike","u","vlink"]}}},"QW_BP11":{"name":"Using br to make a list","code":"QW-BP11","description":"Using 3 consecutive br elements","metadata":{"target":{"element":"br"}}},"QW_BP12":{"name":"Using scope col and row","code":"QW-BP12","description":"Using scope col in the first row and scope row in the first element of each row","metadata":{"target":{"element":["table","tr"]}}},"QW_BP13":{"name":"Using consecutive links with the same href and one contains an image","code":"QW-BP13","description":"Using consecutive links with the same href in which one of the links contains an image","metadata":{"target":{"element":"a"}}},"QW_BP15":{"name":"At least one width attribute of an HTML element is expressed in absolute values","code":"QW-BP15","description":"At least one width attribute of an HTML element is expressed in absolute values","metadata":{"target":{"element":"*","attributes":"width"}}},"QW_BP17":{"name":"Adding a link at the beginning of a block of repeated content to go to the end of the block","code":"QW-BP17","mapping":"G123","description":"The objective of this technique is to provide a mechanism to bypass a block of material by skipping to the end of the block.","metadata":{"target":{"element":"a","attributes":"href"},"success-criteria":[{"name":"2.4.1","level":"A","principle":"Operable","url":"https://www.w3.org/WAI/WCAG21/Understanding/bypass-blocks"}],"related":["G1","G124"],"url":"https://www.w3.org/WAI/WCAG21/Techniques/general/G123"}},"QW_BP18":{"name":"Using percentage values in CSS for container sizes","code":"QW-BP18","mapping":"C24","description":"The objective of this technique is to enable users to increase the size of text without having to scroll horizontally to read that text. To use this technique, an author specifies the width of text containers using percent values.","metadata":{"target":{"element":"span article section nav aside hgroup header footer address p hr blockquote div h1 h2 h3 h4 h5 h6 li ul ol dd dt dl figcaption","attributes":"width"},"success-criteria":[{"name":"1.4.8","level":"AAA","principle":"Perceivable","url":"https://www.w3.org/WAI/WCAG21/Understanding/visual-presentation"}],"related":["C20"],"url":"https://www.w3.org/WAI/WCAG21/Techniques/css/C24"}},"QW_BP19":{"name":"Landmark banner is top level","code":"QW-BP19","description":"Ensures the banner landmark is at top level","metadata":{"target":{"element":"header:not([role]), [role=banner]"}}},"QW_BP20":{"name":"Landmark no duplicate banner","code":"QW-BP20","description":"Ensures the document has at most one banner landmark","metadata":{"target":{"element":"body"}}},"QW_BP21":{"name":"Landmark no duplicate contentinfo","code":"QW-BP21","description":"Ensures the document has at most one contentinfo landmark","metadata":{"target":{"element":"body"}}},"QW_BP22":{"name":"Landmark has one main","code":"QW-BP22","description":"Ensures the document has a main landmark","metadata":{"target":{"element":"body"}}},"QW_BP23":{"name":"Listitems are used semantically","code":"QW-BP23","description":"Ensures <li> elements are used semantically","metadata":{"target":{"element":"li"}}},"QW_BP24":{"name":"Lists are used correctly","code":"QW-BP24","description":"Ensures that lists are structured correctly. <ul> and <ol> must only directly contain <li>, <script> or <template> elements","metadata":{"target":{"element":"ul,ol,menu"}}},"QW_BP25":{"name":"Landmark complementary is top level","code":"QW-BP25","description":"Ensures the complementary landmark or aside is at top level","metadata":{"target":{"element":"aside:not([role]), [role=complementary]"}}},"QW_BP26":{"name":"Landmark contentinfo is top level","code":"QW-BP26","description":"Ensures the contentinfo landmark is at top level","metadata":{"target":{"element":"footer:not([role]), [role=contentinfo]"}}},"QW_BP27":{"name":"Landmark main is top level","code":"QW-BP27","description":"Ensures the main landmark is at top level","metadata":{"target":{"element":"main:not([role]), [role=main]"}}},"QW_BP28":{"name":"H1 element is used and unique","code":"QW-BP28","description":"Ensures theres is only one H1","metadata":{"target":{"element":"h1"}}},"QW_BP29":{"name":"HTML page lang and xml:lang attributes have matching values","code":"QW-BP29","description":"This best practice checks that both lang and xml:lang attributes on the root element of a non-embedded HTML page, have the same primary language subtag.","metadata":{"target":{"element":"html"}}}}')}},t={};function n(i){var a=t[i];if(void 0!==a)return a.exports;var s=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(s.exports,s,s.exports,n),s.loaded=!0,s.exports}n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var i={};(()=>{"use strict";var e=i;Object.defineProperty(e,"__esModule",{value:!0}),e.BestPracticesRunner=e.BestPractices=void 0;var t=n(4614);Object.defineProperty(e,"BestPractices",{enumerable:!0,get:function(){return t.BestPracticesModule}});var a=n(7368);Object.defineProperty(e,"BestPracticesRunner",{enumerable:!0,get:function(){return a.BestPracticesRunner}})})();for(var a in i)this[a]=i[a];i.__esModule&&Object.defineProperty(this,"__esModule",{value:!0})})();
|
|
1
|
+
(()=>{var e={8290:(e,t,n)=>{e=n.nmd(e);var i="__lodash_hash_undefined__",a=9007199254740991,s="[object Arguments]",r="[object Boolean]",l="[object Date]",o="[object Function]",d="[object GeneratorFunction]",m="[object Map]",u="[object Number]",c="[object Object]",h="[object Promise]",k="[object RegExp]",g="[object Set]",f="[object String]",p="[object Symbol]",v="[object WeakMap]",b="[object ArrayBuffer]",y="[object DataView]",j="[object Float32Array]",T="[object Float64Array]",W="[object Int8Array]",P="[object Int16Array]",A="[object Int32Array]",I="[object Uint8Array]",C="[object Uint8ClampedArray]",R="[object Uint16Array]",E="[object Uint32Array]",Q=/\w*$/,w=/^\[object .+?Constructor\]$/,_=/^(?:0|[1-9]\d*)$/,F={};F[s]=F["[object Array]"]=F[b]=F[y]=F[r]=F[l]=F[j]=F[T]=F[W]=F[P]=F[A]=F[m]=F[u]=F[c]=F[k]=F[g]=F[f]=F[p]=F[I]=F[C]=F[R]=F[E]=!0,F["[object Error]"]=F[o]=F[v]=!1;var x="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,S="object"==typeof self&&self&&self.Object===Object&&self,D=x||S||Function("return this")(),B=t&&!t.nodeType&&t,O=B&&e&&!e.nodeType&&e,L=O&&O.exports===B;function N(e,t){return e.set(t[0],t[1]),e}function M(e,t){return e.add(t),e}function K(e,t,n,i){var a=-1,s=e?e.length:0;for(i&&s&&(n=e[++a]);++a<s;)n=t(n,e[a],a,e);return n}function V(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function H(e){var t=-1,n=Array(e.size);return e.forEach((function(e,i){n[++t]=[i,e]})),n}function q(e,t){return function(n){return e(t(n))}}function U(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var G,z=Array.prototype,$=Function.prototype,X=Object.prototype,Z=D["__core-js_shared__"],J=(G=/[^.]+$/.exec(Z&&Z.keys&&Z.keys.IE_PROTO||""))?"Symbol(src)_1."+G:"",Y=$.toString,ee=X.hasOwnProperty,te=X.toString,ne=RegExp("^"+Y.call(ee).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ie=L?D.Buffer:void 0,ae=D.Symbol,se=D.Uint8Array,re=q(Object.getPrototypeOf,Object),le=Object.create,oe=X.propertyIsEnumerable,de=z.splice,me=Object.getOwnPropertySymbols,ue=ie?ie.isBuffer:void 0,ce=q(Object.keys,Object),he=Oe(D,"DataView"),ke=Oe(D,"Map"),ge=Oe(D,"Promise"),fe=Oe(D,"Set"),pe=Oe(D,"WeakMap"),ve=Oe(Object,"create"),be=Ve(he),ye=Ve(ke),je=Ve(ge),Te=Ve(fe),We=Ve(pe),Pe=ae?ae.prototype:void 0,Ae=Pe?Pe.valueOf:void 0;function Ie(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Ce(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Re(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Ee(e){this.__data__=new Ce(e)}function Qe(e,t){var n=qe(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&Ue(e)}(e)&&ee.call(e,"callee")&&(!oe.call(e,"callee")||te.call(e)==s)}(e)?function(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}(e.length,String):[],i=n.length,a=!!i;for(var r in e)!t&&!ee.call(e,r)||a&&("length"==r||Me(r,i))||n.push(r);return n}function we(e,t,n){var i=e[t];ee.call(e,t)&&He(i,n)&&(void 0!==n||t in e)||(e[t]=n)}function _e(e,t){for(var n=e.length;n--;)if(He(e[n][0],t))return n;return-1}function Fe(e,t,n,i,a,h,v){var w;if(i&&(w=h?i(e,a,h,v):i(e)),void 0!==w)return w;if(!$e(e))return e;var _=qe(e);if(_){if(w=function(e){var t=e.length,n=e.constructor(t);t&&"string"==typeof e[0]&&ee.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!t)return function(e,t){var n=-1,i=e.length;t||(t=Array(i));for(;++n<i;)t[n]=e[n];return t}(e,w)}else{var x=Ne(e),S=x==o||x==d;if(Ge(e))return function(e,t){if(t)return e.slice();var n=new e.constructor(e.length);return e.copy(n),n}(e,t);if(x==c||x==s||S&&!h){if(V(e))return h?e:{};if(w=function(e){return"function"!=typeof e.constructor||Ke(e)?{}:(t=re(e),$e(t)?le(t):{});var t}(S?{}:e),!t)return function(e,t){return De(e,Le(e),t)}(e,function(e,t){return e&&De(t,Xe(t),e)}(w,e))}else{if(!F[x])return h?e:{};w=function(e,t,n,i){var a=e.constructor;switch(t){case b:return Se(e);case r:case l:return new a(+e);case y:return function(e,t){var n=t?Se(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,i);case j:case T:case W:case P:case A:case I:case C:case R:case E:return function(e,t){var n=t?Se(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,i);case m:return function(e,t,n){var i=t?n(H(e),!0):H(e);return K(i,N,new e.constructor)}(e,i,n);case u:case f:return new a(e);case k:return function(e){var t=new e.constructor(e.source,Q.exec(e));return t.lastIndex=e.lastIndex,t}(e);case g:return function(e,t,n){var i=t?n(U(e),!0):U(e);return K(i,M,new e.constructor)}(e,i,n);case p:return s=e,Ae?Object(Ae.call(s)):{}}var s}(e,x,Fe,t)}}v||(v=new Ee);var D=v.get(e);if(D)return D;if(v.set(e,w),!_)var B=n?function(e){return function(e,t,n){var i=t(e);return qe(e)?i:function(e,t){for(var n=-1,i=t.length,a=e.length;++n<i;)e[a+n]=t[n];return e}(i,n(e))}(e,Xe,Le)}(e):Xe(e);return function(e,t){for(var n=-1,i=e?e.length:0;++n<i&&!1!==t(e[n],n,e););}(B||e,(function(a,s){B&&(a=e[s=a]),we(w,s,Fe(a,t,n,i,s,e,v))})),w}function xe(e){return!(!$e(e)||(t=e,J&&J in t))&&(ze(e)||V(e)?ne:w).test(Ve(e));var t}function Se(e){var t=new e.constructor(e.byteLength);return new se(t).set(new se(e)),t}function De(e,t,n,i){n||(n={});for(var a=-1,s=t.length;++a<s;){var r=t[a],l=i?i(n[r],e[r],r,n,e):void 0;we(n,r,void 0===l?e[r]:l)}return n}function Be(e,t){var n,i,a=e.__data__;return("string"==(i=typeof(n=t))||"number"==i||"symbol"==i||"boolean"==i?"__proto__"!==n:null===n)?a["string"==typeof t?"string":"hash"]:a.map}function Oe(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return xe(n)?n:void 0}Ie.prototype.clear=function(){this.__data__=ve?ve(null):{}},Ie.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Ie.prototype.get=function(e){var t=this.__data__;if(ve){var n=t[e];return n===i?void 0:n}return ee.call(t,e)?t[e]:void 0},Ie.prototype.has=function(e){var t=this.__data__;return ve?void 0!==t[e]:ee.call(t,e)},Ie.prototype.set=function(e,t){return this.__data__[e]=ve&&void 0===t?i:t,this},Ce.prototype.clear=function(){this.__data__=[]},Ce.prototype.delete=function(e){var t=this.__data__,n=_e(t,e);return!(n<0)&&(n==t.length-1?t.pop():de.call(t,n,1),!0)},Ce.prototype.get=function(e){var t=this.__data__,n=_e(t,e);return n<0?void 0:t[n][1]},Ce.prototype.has=function(e){return _e(this.__data__,e)>-1},Ce.prototype.set=function(e,t){var n=this.__data__,i=_e(n,e);return i<0?n.push([e,t]):n[i][1]=t,this},Re.prototype.clear=function(){this.__data__={hash:new Ie,map:new(ke||Ce),string:new Ie}},Re.prototype.delete=function(e){return Be(this,e).delete(e)},Re.prototype.get=function(e){return Be(this,e).get(e)},Re.prototype.has=function(e){return Be(this,e).has(e)},Re.prototype.set=function(e,t){return Be(this,e).set(e,t),this},Ee.prototype.clear=function(){this.__data__=new Ce},Ee.prototype.delete=function(e){return this.__data__.delete(e)},Ee.prototype.get=function(e){return this.__data__.get(e)},Ee.prototype.has=function(e){return this.__data__.has(e)},Ee.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ce){var i=n.__data__;if(!ke||i.length<199)return i.push([e,t]),this;n=this.__data__=new Re(i)}return n.set(e,t),this};var Le=me?q(me,Object):function(){return[]},Ne=function(e){return te.call(e)};function Me(e,t){return!!(t=null==t?a:t)&&("number"==typeof e||_.test(e))&&e>-1&&e%1==0&&e<t}function Ke(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||X)}function Ve(e){if(null!=e){try{return Y.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function He(e,t){return e===t||e!=e&&t!=t}(he&&Ne(new he(new ArrayBuffer(1)))!=y||ke&&Ne(new ke)!=m||ge&&Ne(ge.resolve())!=h||fe&&Ne(new fe)!=g||pe&&Ne(new pe)!=v)&&(Ne=function(e){var t=te.call(e),n=t==c?e.constructor:void 0,i=n?Ve(n):void 0;if(i)switch(i){case be:return y;case ye:return m;case je:return h;case Te:return g;case We:return v}return t});var qe=Array.isArray;function Ue(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=a}(e.length)&&!ze(e)}var Ge=ue||function(){return!1};function ze(e){var t=$e(e)?te.call(e):"";return t==o||t==d}function $e(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Xe(e){return Ue(e)?Qe(e):function(e){if(!Ke(e))return ce(e);var t=[];for(var n in Object(e))ee.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}e.exports=function(e){return Fe(e,!0,!0)}},4614:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BestPracticesModule=void 0;const i=n(7105);class BestPracticesModule extends i.ExecutableModuleContext{constructor(){super(...arguments),this.name=i.ModuleType.BEST_PRACTICES}getModulePackage(){return"@qualweb/best-practices"}runModule(e,t,n){return e.evaluate(((e,t)=>new BestPracticesRunner(e,t).configure(e).test({}).getReport()),t,n)}}t.BestPracticesModule=BestPracticesModule},7368:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BestPracticesRunner=void 0;const i=n(9599),a=n(7105),s=n(640);class BestPracticesRunner extends a.EvaluationModuleDefinition{constructor(e,t){const n=a.ModuleType.BEST_PRACTICES,r=new a.ModuleReport(n);super(n,e,t,r,new s.BestPracticesTester(r)),this.translator=new i.ModuleTranslator(this.type,this.translate),this.tester.init(this.translator)}}t.BestPracticesRunner=BestPracticesRunner},3556:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP1=void 0;const s=n(7105),r=n(3920),l=n(1906);class QW_BP1 extends l.BestPractice{execute(e){const t=e.getElements('h1, h2, h3, h4, h5, h6, [role="heading"]');for(const e of null!=t?t:[])if(window.AccessibilityUtils.isElementInAT(e)||window.DomUtils.isElementVisible(e)){const t=new s.Test(s.Verdict.WARNING,void 0,"W1");t.addElement(e),this.addTestResult(t)}0===this.bestPractice.metadata.warning&&this.addTestResult(new s.Test(s.Verdict.FAILED,void 0,"F1"))}}t.QW_BP1=QW_BP1,i([r.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP1.prototype,"execute",null)},9742:function(e,t,n){"use strict";var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,s){function r(e){try{o(i.next(e))}catch(e){s(e)}}function l(e){try{o(i.throw(e))}catch(e){s(e)}}function o(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,l)}o((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP10=void 0;const a=n(7105),s=n(1906);class QW_BP10 extends s.BestPractice{execute(e){return i(this,void 0,void 0,(function*(){const t=new a.Test;if(void 0===e)t.verdict=a.Verdict.PASSED,t.resultCode="P1";else{const n=e.getElementTagName();t.verdict=a.Verdict.FAILED,t.description=this.translate("F1",{name:n}),t.resultCode="F1",t.attributes.push(n),t.addElement(e)}this.addTestResult(t)}))}}t.QW_BP10=QW_BP10},9917:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP11=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP11 extends l.BestPractice{execute(e){const t=new r.Test;let n=0,i=!1;for(const t of e.getElementChildren()||[]){const e=t.getElementType();t&&"br"===t.getElementTagName()?(n++,i=!0):"text"!==e&&(n=0)}i&&n<=3?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):i&&(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),i&&(t.addElement(e),this.addTestResult(t))}}t.QW_BP11=QW_BP11,i([s.ElementExists,(0,s.ElementHasChild)("*"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP11.prototype,"execute",null)},5332:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP12=void 0;const s=n(3408),r=n(3920),l=n(7105),o=n(1906);class QW_BP12 extends o.BestPractice{execute(e){const t=e.getElements("tr");let n=[];if(t.length>0){let i,a;n=t[0].getElementChildren();let s=!0;for(i=1;i<n.length;i++)("td"===n[i].getElementTagName()||"th"===n[i].getElementTagName()&&s)&&(a=n[i].getElementAttribute("scope"),s="col"===a);let r,o=!0;for(i=1;i<t.length;i++)if(o){r=t[i];const e=r.getElements("td");e.length>0&&(a=e[0].getElementAttribute("scope"),o="row"===a)}const d=new l.Test;s&&o?(d.verdict=l.Verdict.PASSED,d.resultCode="P1"):(d.verdict=l.Verdict.FAILED,d.resultCode="F1"),d.addElement(e),this.addTestResult(d)}}}t.QW_BP12=QW_BP12,i([r.ElementExists,(0,r.ElementHasChild)("tr"),a("design:type",Function),a("design:paramtypes",[s.QWElement]),a("design:returntype",void 0)],QW_BP12.prototype,"execute",null)},955:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP13=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP13 extends l.BestPractice{execute(e){const t=e.getElementParent();if(!t)return;const n=new r.Test,i=t.getElementAttribute("href"),a=t.getElementNextSibling(),s=t.getElementPreviousSibling();a&&a.getElementAttribute("href")===i||s&&s.getElementAttribute("href")===i?(n.verdict=r.Verdict.FAILED,n.resultCode="F1"):(n.verdict=r.Verdict.PASSED,n.resultCode="P1"),t.getElementParent()&&n.addElement(e),this.addTestResult(n)}}t.QW_BP13=QW_BP13,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP13.prototype,"execute",null)},9057:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP15=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP15 extends l.BestPractice{constructor(){super(...arguments),this.absoluteLengths=["cm","mm","in","px","pt","pc"]}execute(e){const t=new r.Test,n=e.getElementAttribute("width"),i=n.trim().substring(n.length-2,n.length);this.absoluteLengths.includes(i)||parseFloat(n).toString().length===n.length?(t.verdict=r.Verdict.FAILED,t.resultCode="F1"):(t.verdict=r.Verdict.PASSED,t.resultCode="P1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP15=QW_BP15,i([s.ElementExists,s.ElementIsVisible,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP15.prototype,"execute",null)},3423:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP17=void 0;const i=n(7105),a=n(1906);class QW_BP17 extends a.BestPractice{execute(e){const t=new i.Test;if(e){const n=window.DomUtils.getElementReferencedByHREF(e);n&&(t.verdict=i.Verdict.WARNING,t.resultCode="W1",t.addElement(e),t.addElement(n),this.addTestResult(t))}else t.verdict=i.Verdict.FAILED,t.resultCode="F1",this.addTestResult(t)}}t.QW_BP17=QW_BP17},6758:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP18=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP18 extends l.BestPractice{constructor(){super(...arguments),this.containers=["span","article","section","nav","aside","hgroup","header","footer","address","p","hr","blockquote","div","h1","h2","h3","h4","h5","h6","li","ul","ol","dd","dt","dl","figcaption"]}execute(e){var t,n,i;if("style"===e.getElementTagName()){const a=e.getElementProperty("sheet");for(const s of a.cssRules||[])if((null===(n=null===(t=null==s?void 0:s.style)||void 0===t?void 0:t.cssText)||void 0===n?void 0:n.includes("width:"))&&this.checkIfCssSelectorIsApplicable(s)){const t=null===(i=null==s?void 0:s.style)||void 0===i?void 0:i.cssText;t&&this.checkCssProperty(t,e)}}else{const t=e.getElementAttribute("style");this.checkCssProperty(t,e)}}checkIfCssSelectorIsApplicable(e){const t=e.selectorText.split(new RegExp(/(?![^)(]*\([^)(]*?\)\)),(?![^\(]*\))/gm)).map((e=>e.trim()))||[e.selectorText.trim()];if(this.hasContainers(t).length>0)return!0;let n=!1;for(const e of t||[])if(e.startsWith(".")||e.startsWith("#")){const t=window.qwPage.getElements(e);for(const e of t||[])if(this.containers.includes(e.getElementTagName())){n=!0;break}}return n}checkCssProperty(e,t){const n=new r.Test,i=e.split(";").filter((e=>""!==e.trim()))||[e];for(const e of i||[])if(null==e?void 0:e.includes("width")){const i=e.split(":")[1];(null==i?void 0:i.includes("!important"))&&(i.endsWith("%")?(n.verdict=r.Verdict.PASSED,n.resultCode="P1"):(n.verdict=r.Verdict.FAILED,i.endsWith("px")?n.resultCode="F1":n.resultCode="F2"),n.attributes.push(e),n.addElement(t),this.addTestResult(n))}}hasContainers(e){var t;const n=new Array;for(const i of null!=e?e:[])for(const e of null!==(t=this.containers)&&void 0!==t?t:[])i===e&&n.push(i);return n}}t.QW_BP18=QW_BP18,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP18.prototype,"execute",null)},8677:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP19=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP19 extends l.BestPractice{execute(e){const t=new r.Test;window.AccessibilityUtils.landmarkIsTopLevel(e)?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP19=QW_BP19,i([s.ElementExists,(0,s.ElementHasAttributeRole)("banner"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP19.prototype,"execute",null)},5613:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,s){function r(e){try{o(i.next(e))}catch(e){s(e)}}function l(e){try{o(i.throw(e))}catch(e){s(e)}}function o(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,l)}o((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP2=void 0;const r=n(3920),l=n(7105),o=n(1906);class QW_BP2 extends o.BestPractice{execute(e){return s(this,void 0,void 0,(function*(){const t=new l.Test;e.getElementAttribute("alt").trim().length<=100?(t.verdict=l.Verdict.PASSED,t.resultCode="P1"):(t.verdict=l.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}))}}t.QW_BP2=QW_BP2,i([r.ElementExists,(0,r.ElementHasAttribute)("alt"),(0,r.ElementHasNonEmptyAttribute)("alt"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",Promise)],QW_BP2.prototype,"execute",null)},5649:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP20=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP20 extends l.BestPractice{execute(e){const t=e.getElements("header:not([role]), [role=banner]").filter((e=>"banner"===window.AccessibilityUtils.getElementRole(e)));if(t.length>0){const e=new r.Test;t.length<2?(e.verdict=r.Verdict.PASSED,e.resultCode="P1"):(e.verdict=r.Verdict.FAILED,e.resultCode="F1"),e.addElements(t),super.addTestResult(e)}}}t.QW_BP20=QW_BP20,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP20.prototype,"execute",null)},8018:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP21=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP21 extends l.BestPractice{execute(e){const t=e.getElements("footer:not([role]), [role=contentinfo]");if(t.length>0){const e=new r.Test;t.length<2?(e.verdict=r.Verdict.PASSED,e.resultCode="P1"):(e.verdict=r.Verdict.FAILED,e.resultCode="F1"),e.addElements(t),super.addTestResult(e)}}}t.QW_BP21=QW_BP21,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP21.prototype,"execute",null)},4815:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP22=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP22 extends l.BestPractice{execute(e){const t=e.getElements("main:not([role]), [role=main]");if(t.length>0){const e=new r.Test;t.length<2?(e.verdict=r.Verdict.PASSED,e.resultCode="P1"):(e.verdict=r.Verdict.FAILED,e.resultCode="F1"),e.addElements(t),super.addTestResult(e)}}}t.QW_BP22=QW_BP22,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP22.prototype,"execute",null)},2728:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP23=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP23 extends l.BestPractice{execute(e){const t=new r.Test,n=e.getElementParent();let i=!1;const a=null==n?void 0:n.getElementTagName();a&&(i=["ul","ol","menu"].includes(a)),i?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP23=QW_BP23,i([s.ElementExists,s.ElementIsInAccessibilityTree,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP23.prototype,"execute",null)},8781:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP24=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP24 extends l.BestPractice{execute(e){const t=new r.Test,n=e.getElementChildren();let i=!0;n.map((e=>{const t=window.AccessibilityUtils.getElementRole(e);"li"!==e.getElementTagName()&&"listitem"!==t&&(i=!1)})),i?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP24=QW_BP24,i([s.ElementExists,(0,s.ElementHasChild)("*"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP24.prototype,"execute",null)},2510:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP25=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP25 extends l.BestPractice{execute(e){const t=new r.Test;window.AccessibilityUtils.landmarkIsTopLevel(e)?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP25=QW_BP25,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP25.prototype,"execute",null)},8523:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP26=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP26 extends l.BestPractice{execute(e){const t=new r.Test;window.AccessibilityUtils.landmarkIsTopLevel(e)?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP26=QW_BP26,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP26.prototype,"execute",null)},580:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP27=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP27 extends l.BestPractice{execute(e){const t=new r.Test;window.AccessibilityUtils.landmarkIsTopLevel(e)?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP27=QW_BP27,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP27.prototype,"execute",null)},6633:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP28=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP28 extends l.BestPractice{execute(e){let t,n;const i=e.getElements("h1");1===i.length?(t=r.Verdict.PASSED,n="P1"):(t=r.Verdict.FAILED,n="F1"),i.forEach((e=>{const i=new r.Test;i.verdict=t,i.resultCode=n,i.addElement(e),this.addTestResult(i)}))}}t.QW_BP28=QW_BP28,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP28.prototype,"execute",null)},3850:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP29=void 0;const s=n(3408),r=n(3920),l=n(7105),o=n(1906);class QW_BP29 extends o.BestPractice{execute(e){const t=e.getElementAttribute("lang"),n=e.getElementAttribute("xml:lang"),i=t.split("-")[0],a=n.split("-")[0],s=new l.Test;i.toLowerCase()===a.toLowerCase()?(s.verdict=l.Verdict.PASSED,s.resultCode="P1"):(s.verdict=l.Verdict.FAILED,s.resultCode="F1"),s.addElement(e),this.addTestResult(s)}}t.QW_BP29=QW_BP29,i([r.ElementExists,r.IsHTMLDocument,r.IsInMainContext,(0,r.ElementHasNonEmptyAttribute)("lang"),(0,r.ElementHasNonEmptyAttribute)("xml:lang"),(0,r.IsLangSubTagValid)("lang"),(0,r.IsLangSubTagValid)("xml:lang"),a("design:type",Function),a("design:paramtypes",[s.QWElement]),a("design:returntype",void 0)],QW_BP29.prototype,"execute",null)},6335:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP4=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP4 extends l.BestPractice{execute(e){if(e.getNumberOfSiblingsWithTheSameTag()>=10){const t=new r.Test(r.Verdict.FAILED,void 0,"F1");e.getElementParent()&&t.addElement(e),this.addTestResult(t)}}}t.QW_BP4=QW_BP4,i([s.ElementExists,(0,s.ElementIsNotChildOf)("nav"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP4.prototype,"execute",null)},3176:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP5=void 0;const i=n(7105),a=n(1906);class QW_BP5 extends a.BestPractice{execute(e){const t=new i.Test;e?(t.verdict=i.Verdict.FAILED,t.resultCode="F1",t.addElement(e)):(t.verdict=i.Verdict.PASSED,t.resultCode="P1"),this.addTestResult(t)}}t.QW_BP5=QW_BP5},4209:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP6=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP6 extends l.BestPractice{execute(e){const t=new r.Test;e.getElementText().length<100?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP6=QW_BP6,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP6.prototype,"execute",null)},5794:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP7=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP7 extends l.BestPractice{execute(e){const t=new r.Test,n=e.getElementText().replace(/\s/g,"");new RegExp("@([[:punct:]]{4,})@iU").test(n)?(t.verdict=r.Verdict.FAILED,t.resultCode="F1"):(t.verdict=r.Verdict.PASSED,t.resultCode="P1"),t.addElement(e),this.addTestResult(t)}}t.QW_BP7=QW_BP7,i([s.ElementExists,a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP7.prototype,"execute",null)},8451:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP8=void 0;const s=n(3920),r=n(7105),l=n(1906);class QW_BP8 extends l.BestPractice{execute(e){const t=new r.Test,n=e.getElements("*"),i=e.getElements("img"),a=e.getElements("svg");let s=!1;if(n.length>i.length+a.length&&(s=this.checkApplicability(e)),!s){const n=new Array;for(const e of a||[]){const t=window.AccessibilityUtils.getAccessibleNameSVG(e);t&&""!==t.trim()&&n.push(t)}const i=window.AccessibilityUtils.getAccessibleName(e);i&&""!==i.trim()||n.length>0?(t.verdict=r.Verdict.PASSED,t.resultCode="P1"):(t.verdict=r.Verdict.FAILED,t.resultCode="F1"),t.addElement(e,!0,!0),this.addTestResult(t)}}checkApplicability(e){var t;let n=!1;for(const i of null!==(t=e.getElementChildren())&&void 0!==t?t:[]){const e=i.getElementTagName();if("img"!==e&&"svg"!==e){const e=i.getElementText(),t=window.DomUtils.isElementVisible(i),a=window.AccessibilityUtils.getAccessibleName(i);t&&(""!==e.trim()||a&&!this.checkApplicability(i))&&(n=!0)}}return n}}t.QW_BP8=QW_BP8,i([s.ElementExists,(0,s.ElementHasVisibleChild)("img, svg"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",void 0)],QW_BP8.prototype,"execute",null)},7164:function(e,t,n){"use strict";var i=this&&this.__decorate||function(e,t,n,i){var a,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(r=(s<3?a(r):s>3?a(t,n,r):a(t,n))||r);return s>3&&r&&Object.defineProperty(t,n,r),r},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,s){function r(e){try{o(i.next(e))}catch(e){s(e)}}function l(e){try{o(i.throw(e))}catch(e){s(e)}}function o(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,l)}o((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.QW_BP9=void 0;const r=n(3920),l=n(7105),o=n(1906);class QW_BP9 extends o.BestPractice{execute(e){return s(this,void 0,void 0,(function*(){if(0===e.getElements("th").length){const t=e.getElements("caption"),n=new l.Test;0!==t.length?(n.verdict=l.Verdict.PASSED,n.resultCode="P1"):(n.verdict=l.Verdict.FAILED,n.resultCode="F1"),n.addElement(e),this.addTestResult(n)}}))}}t.QW_BP9=QW_BP9,i([r.ElementExists,(0,r.ElementDoesNotHaveChild)("th"),a("design:type",Function),a("design:paramtypes",[Function]),a("design:returntype",Promise)],QW_BP9.prototype,"execute",null)},3734:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(3556),t),a(n(9742),t),a(n(9917),t),a(n(5332),t),a(n(955),t),a(n(9057),t),a(n(3423),t),a(n(6758),t),a(n(8677),t),a(n(5613),t),a(n(5649),t),a(n(8018),t),a(n(4815),t),a(n(2728),t),a(n(8781),t),a(n(2510),t),a(n(8523),t),a(n(580),t),a(n(6633),t),a(n(3850),t),a(n(6335),t),a(n(3176),t),a(n(4209),t),a(n(5794),t),a(n(8451),t),a(n(7164),t)},1906:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.BestPractice=void 0;const a=n(7105),s=i(n(2765));class BestPractice extends a.Guideline{constructor(e){super(),this.translator=e;const t=s.default[new.target.name];t.metadata.passed=0,t.metadata.warning=0,t.metadata.failed=0,t.metadata.inapplicable=0,t.metadata.outcome=a.Verdict.INAPPLICABLE,t.results=new Array,this.bestPractice=t,this.translator.translateAssertion(this.bestPractice)}translate(e,t){return this.translator.translateTest(this.bestPractice.code,e,t)}getCode(){return this.bestPractice.code}getMapping(){return this.bestPractice.mapping}hasPrincipleAndLevels(e,t){return this.bestPractice.metadata["success-criteria"].some((n=>e.includes(n.principle)&&t.includes(n.level)))}getFinalResults(){return this.generateOutcome(),this.bestPractice}addTestResult(e){e.description&&""!==e.description.trim()||(e.description=this.translate(e.resultCode)),this.bestPractice.results.push(e),e.verdict&&e.verdict!==a.Verdict.INAPPLICABLE&&this.bestPractice.metadata[e.verdict]++}generateOutcome(){this.bestPractice.metadata.failed?this.bestPractice.metadata.outcome=a.Verdict.FAILED:this.bestPractice.metadata.warning?this.bestPractice.metadata.outcome=a.Verdict.WARNING:this.bestPractice.metadata.passed?this.bestPractice.metadata.outcome=a.Verdict.PASSED:(this.bestPractice.metadata.outcome=a.Verdict.INAPPLICABLE,this.bestPractice.metadata.inapplicable=1),this.bestPractice.results.length>0&&this.addDescription()}addDescription(){var e;for(const t of null!==(e=this.bestPractice.results)&&void 0!==e?e:[])if(t.verdict===this.bestPractice.metadata.outcome){this.bestPractice.metadata.description=t.description;break}}}t.BestPractice=BestPractice},640:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.BestPracticesTester=void 0;const l=n(7105),o=r(n(8548)),d=s(n(3734));class BestPracticesTester extends l.Tester{init(e){for(const t in d){const n=new d[t](e);this.assertions.set(n.getCode(),n),this.toExecute[n.getCode()]=!0}return this}execute(){var e;for(const t in null!==o.default&&void 0!==o.default?o.default:[])for(const n of null!==(e=o.default[t])&&void 0!==e?e:[])this.toExecute[n]&&this.executeBestPractice(n,t)}executeBestPractice(e,t){var n;const i=this.assertions.get(e);if(i){const e=window.qwPage.getElements(t);e.length>0?e.forEach((e=>{var t;return null===(t=i.execute)||void 0===t?void 0:t.call(i,e)})):null===(n=i.execute)||void 0===n||n.call(i),this.report.addAssertionResult(i)}}}t.BestPracticesTester=BestPracticesTester},8548:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={"img[alt]":["QW-BP2"],table:["QW-BP9","QW-BP12"],"table table":["QW-BP5"],":not(svg) > title":["QW-BP6","QW-BP7"],'h1, h2, h3, h4, h5, h6, [role="heading"]':["QW-BP8"],"basefont, big, blink, center, font, marquee, multicol, nobr, spacer, tt, b, u, strong":["QW-BP10"],"body, body *":["QW-BP11"],body:["QW-BP1","QW-BP20","QW-BP21","QW-BP22","QW-BP28"],"a > img":["QW-BP13"],"a:first-child":["QW-BP4"],"[width]:not(img)":["QW-BP15"],"a[href]":["QW-BP17"],"style, [style]":["QW-BP18"],"header:not([role]), [role=banner]":["QW-BP19"],li:["QW-BP23"],"ul, ol,menu":["QW-BP24"],"aside:not([role]), [role=complementary]":["QW-BP25"],"footer:not([role]), [role=contentinfo]":["QW-BP26"],"main:not([role]), [role=main]":["QW-BP27"],html:["QW-BP29"]}},9313:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},9712:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3471:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},1177:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},4015:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5279:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EvaluationModuleDefinition=void 0;const i=n(9237);t.EvaluationModuleDefinition=class EvaluationModuleDefinition{type;moduleOptions;report;tester;translate;constructor(e,t,n,a,s){this.type=e,this.moduleOptions=t,this.report=a,this.tester=s,this.translate=i.LocaleFetcher.transform(n),this.configure(t)}configure(e){return this.tester.resetConfiguration(),this.tester.configureByPrinciplesAndLevels(e.principles,e.levels),this.tester.configureIncluded(e.include),this.tester.configureExcluded(e.exclude),this}test(e){return this.tester.execute(e),this}testSpecial(){throw new Error("Method not implemented.")}getReport(){return this.report.getCopy()}}},8541:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},4649:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExecutableModuleContext=void 0;t.ExecutableModuleContext=class ExecutableModuleContext{options;constructor(e={}){this.options=e}async execute(e,t,n){const i=this.getModulePackage?.();return i&&await e.addEvaluationScript(i),this.runModule(e,this.options,t,n)}}},9135:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Guideline=void 0;t.Guideline=class Guideline{}},4253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},6063:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7372:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8824:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8631:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},4891:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModuleReport=void 0;t.ModuleReport=class ModuleReport{report;constructor(e){this.report={type:e,metadata:{passed:0,warning:0,failed:0,inapplicable:0},assertions:{}}}getAssertions(e){return this.report.assertions[e]}addAssertionResult(e){const t=e.getCode();this.report.assertions[t]=e.getFinalResults(),this.report.metadata[this.report.assertions[t].metadata.outcome]++}getCopy(){return{...this.report}}}},7177:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.ModuleType=void 0,function(e){e.ACT_RULES="act-rules",e.WCAG_TECHNIQUES="wcag-techniques",e.BEST_PRACTICES="best-practices",e.COUNTER="counter",e.CUI_CHECKS="cui-checks"}(n||(t.ModuleType=n={}))},4164:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8353:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7224:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},683:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7408:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7997:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Test=void 0;const i=n(1368);t.Test=class Test{verdict;description;resultCode;elements;attributes;constructor(e,t,n){this.verdict=e??i.Verdict.INAPPLICABLE,this.description=t??"",this.resultCode=n??"I1",this.elements=[],this.attributes=[]}addElement(e,t=!0,n=!1,i){const a=e.getElementHtmlCode(t,n),s=e.getElementSelector();let r;return i&&(r=window.AccessibilityUtils.getAccessibleName(e)),this.elements.push({htmlCode:a,pointer:s,accessibleName:r}),this}addElements(e,t=!0,n=!1,i){return e.forEach((e=>this.addElement(e,t,n,i))),this}}},9992:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8678:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Tester=void 0;t.Tester=class Tester{assertions=new Map;toExecute={};report;constructor(e){this.report=e}configureByPrinciplesAndLevels(e,t){for(const[n,i]of this.assertions)e&&0!==e.length?t&&0!==t.length?i.hasPrincipleAndLevels(e,t)||(this.toExecute[n]=!1):i.hasPrincipleAndLevels(e,["A","AA","AAA"])||(this.toExecute[n]=!1):t&&0!==t.length&&!i.hasPrincipleAndLevels(["Perceivable","Operable","Understandable","Robust"],t)&&(this.toExecute[n]=!1)}configureIncluded(e){if(0!==this.assertions?.size&&e&&0!==e.length){const t=e?.map((e=>e.toLowerCase().startsWith("qw")?e.toUpperCase().trim():e.trim()));for(const[e,n]of this.assertions)this.toExecute[e]=!(!t?.includes(n.getCode())&&!t?.includes(n.getMapping()))}}configureExcluded(e){if(e&&0!==e.length){const t=e.map((e=>e.toLowerCase().startsWith("qw")?e.toUpperCase().trim():e.trim()));for(const[e,n]of this.assertions)this.toExecute[e]=!t.includes(n.getCode())&&!t.includes(n.getMapping())}}resetConfiguration(){for(const e in this.toExecute??{})this.toExecute[e]=!0}}},425:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2920:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},1368:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Verdict=void 0,function(e){e.PASSED="passed",e.WARNING="warning",e.FAILED="failed",e.INAPPLICABLE="inapplicable"}(n||(t.Verdict=n={}))},7105:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(9313),t),a(n(9712),t),a(n(3471),t),a(n(1177),t),a(n(4015),t),a(n(5279),t),a(n(8541),t),a(n(4649),t),a(n(9135),t),a(n(4253),t),a(n(6063),t),a(n(7372),t),a(n(8824),t),a(n(8631),t),a(n(4891),t),a(n(4164),t),a(n(7177),t),a(n(8353),t),a(n(7224),t),a(n(683),t),a(n(7408),t),a(n(7997),t),a(n(8678),t),a(n(425),t),a(n(9992),t),a(n(2920),t),a(n(1368),t)},2849:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AssertionTranslator=void 0;const i=n(9237);t.AssertionTranslator=class AssertionTranslator{module;translator;constructor(e,t){this.module=e,this.translator=new i.Translator(t)}translate(e){e.name=this.translator.get([this.module,e.code,"name"])??e.name,e.description=this.translator.get([this.module,e.code,"description"])??e.description,e.metadata.description=this.translator.get([this.module,e.code,"results","I1"])??e.metadata.description}}},8941:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModuleTranslator=void 0;const i=n(2849),a=n(4873);t.ModuleTranslator=class ModuleTranslator{module;assertionTranslator;testTranslator;constructor(e,t){this.module=e,this.assertionTranslator=new i.AssertionTranslator(e,t),this.testTranslator=new a.TestTranslator(e,t)}translate(e){const t=e.modules[this.module];for(const e in t?.assertions??{}){const n=t?.assertions[e];n&&this.translateAssertion(n)}}translateAssertion(e){this.assertionTranslator.translate(e);for(const t of e.results??[])t.description=this.testTranslator.translate(e.code,t.resultCode);for(const t of e.results??[])if(t.verdict===e.metadata.outcome){e.metadata.description=t.description;break}}translateTest(e,t,n){return this.testTranslator.translate(e,t,n)}}},5007:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReportTranslator=void 0;const a=i(n(8290)),s=n(9237),r=n(7105),l=n(8941);t.ReportTranslator=class ReportTranslator{locale;constructor(e){this.locale=s.LocaleFetcher.transform(e)}translate(e){const t=(0,a.default)(e);return this.translateModule(t,r.ModuleType.ACT_RULES),this.translateModule(t,r.ModuleType.WCAG_TECHNIQUES),this.translateModule(t,r.ModuleType.BEST_PRACTICES),t}translateModule(e,t){new l.ModuleTranslator(t,this.locale).translate(e)}}},4873:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TestTranslator=void 0;const i=n(9237);t.TestTranslator=class TestTranslator{module;translator;constructor(e,t){this.module=e,this.translator=t instanceof i.Translator?t:new i.Translator(t)}translate(e,t,n){let i=this.translator.get([this.module,e,"results",t]);if(i&&n)for(const e of Object.keys(n)||[])i=i.replace(new RegExp(`{${e}}`,"g"),n[e].toString());return i??""}}},9599:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(2849),t),a(n(8941),t),a(n(5007),t),a(n(4873),t)},9237:function(){(()=>{"use strict";var e={973:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(847),t),a(n(69),t),a(n(300),t)},69:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.LocaleFetcher=void 0;const r=s(n(409));t.LocaleFetcher=class{static get(e){return r[e]}static transform(e){if(e){if("string"==typeof e){if(e in r)return{translate:r[e],fallback:r.en};throw new Error(`Locale "${e}" not supported.`)}return"translate"in e?this.verifyTranslationObject(e):{translate:e,fallback:r.en}}return{translate:r.en,fallback:r.en}}static verifyTranslationObject(e){const t={translate:r.en,fallback:r.en};if("string"==typeof e.translate){if(!(e.translate in r))throw new Error(`Locale "${e.translate}" not supported.`);t.translate=r[e.translate]}else t.translate=e.translate;if("string"==typeof e.fallback){if(!(e.fallback in r))throw new Error(`Locale "${e.fallback}" not supported.`);t.fallback=r[e.fallback]}else t.fallback=e.fallback;return t}}},258:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.en=void 0,t.en={"act-rules":{"QW-ACT-R1":{name:"HTML Page has a title",description:"This rule checks that the HTML page has a title.",results:{I1:"No test targets found.",P1:"The `title` element exists and it's not empty ('').",F1:"The `title` element doesn't exist.",F2:"The `title` element is empty ('').",F3:"The `title` element is not in the same context."}},"QW-ACT-R2":{name:"HTML has lang attribute",description:"This rule checks that the html element has a non-empty lang or xml:lang attribute.",results:{I1:"No test targets found.",P1:"The `lang` attribute exists and has a value.",F1:"The `lang` attribute doesn't exist or is empty ('')."}},"QW-ACT-R3":{name:"HTML lang and xml:lang match",description:"The rule checks that for the html element, there is no mismatch between the primary language in non-empty lang and xml:lang attributes, if both are used.",results:{I1:"No test targets found.",P1:"The `lang` and `xml:lang` attributes have the same value.",F1:"The `lang` and `xml:lang` attributes don't have the same value."}},"QW-ACT-R4":{name:"Meta-refresh no delay",description:"This rule checks that the meta element is not used for delayed redirecting or refreshing.",results:{I1:"No test targets found.",P1:"The test target refreshes/redirects immediately.",P2:"The test target refreshes/redirects after more than 20 hours.",F1:"The test target refreshes after {seconds} seconds.",F2:"The test target redirects after {seconds} seconds."}},"QW-ACT-R5":{name:"Validity of HTML Lang attribute",description:"This rule checks the lang or xml:lang attribute has a valid language subtag.",results:{I1:"No test targets found.",P1:"The `lang` attribute has a valid value.",F1:"The `lang` attribute does not have a valid value."}},"QW-ACT-R6":{name:"Image button has accessible name",description:"This rule checks that each image button element has an accessible name.",results:{I1:"No test targets found.",P1:"The test target has an accessible name.",F1:"The test target doesn't have an accessible name."}},"QW-ACT-R7":{name:"Orientation of the page is not restricted using CSS transform property",description:"This rule checks that page content is not restricted to either landscape or portrait orientation using CSS transform property.",results:{I1:"No test targets found.",P1:"A page where CSS transform property has rotateZ transform function conditionally applied on the orientation media feature which does not restrict the element to either portrait or landscape orientation.",F1:"A page where CSS transform property has rotate transform function conditionally applied on the orientation media feature which restricts the element to landscape orientation."}},"QW-ACT-R9":{name:"Links with identical accessible names have equivalent purpose",description:"This rule checks that links with identical accessible names resolve to the same resource or equivalent resources.",results:{I1:"No test targets found.",P1:"The `links` with the same accessible name have equal content.",F1:"The `links` with the same accessible name have different content. Verify is the content is equivalent."}},"QW-ACT-R10":{name:"`iframe` elements with identical accessible names have equivalent purpose",description:"This rule checks that `iframe` elements with identical accessible names embed the same resource or equivalent resources.",results:{I1:"No test targets found.",P1:"The `iframes` with the same accessible name have equal content.",F1:"The `iframes` with the same accessible name have different content."}},"QW-ACT-R11":{name:"Button has accessible name",description:"This rule checks that each button element has an accessible name.",results:{I1:"No test targets found.",P1:"The test target has an accessible name.",F1:"The test target doesn't have an accessible name, or it's empty ('')."}},"QW-ACT-R12":{name:"Link has accessible name",description:"This rule checks that each link has an accessible name.",results:{I1:"No test targets found.",P1:"The test target has an accessible name.",F1:"The test target doesn't have an accessible name, or it's empty ('')."}},"QW-ACT-R13":{name:"Element with `aria-hidden` has no focusable content",description:"This rule checks that elements with an aria-hidden attribute do not contain focusable elements.",results:{I1:"No test targets found.",P1:"The test target children are not focusable.",P2:"The test target is not focusable.",F1:"The test target has focusable children.",F2:"This test target is focusable."}},"QW-ACT-R14":{name:"meta viewport does not prevent zoom",description:"This rule checks that the meta element retains the user agent ability to zoom.",results:{I1:"No test targets found.",P1:"The `meta` element with a `name='viewport'` attribute doesn't define the `maximum-scale` and `user-scalable` values.",P2:"The `meta` element with a `name='viewport'` attribute retains the user agent ability to zoom.",F1:"The `meta` element with a `name='viewport'` attribute abolishes the user agent ability to zoom with user-scalable=no or maximum-scale < 2."}},"QW-ACT-R15":{name:"audio or video has no audio that plays automatically",description:"This rule checks that auto-play audio does not last for more than 3 seconds, or the audio has a control mechanism to stop or mute it.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R16":{name:"Form control has accessible name",description:"Form control has accessible name",results:{I1:"No test targets found.",P1:"The test target has an accessible name.",F1:"The test target accessible name doesn't exist or it's empty ('')."}},"QW-ACT-R17":{name:"Image has accessible name",description:"This rule checks that each image that is not marked as decorative, has an accessible name.",results:{I1:"No test targets found.",P1:"The test target is decorative.",P2:"The test target has an accessible name.",F1:"The test target doesn't have an accessible name."}},"QW-ACT-R18":{name:"`id` attribute value is unique",description:"This rule checks that all id attribute values on a single page are unique.",results:{I1:"No test targets found.",P1:"The test target has a unique `id` attribute.",F1:"Several elements have the same `id` attribute."}},"QW-ACT-R19":{name:"iframe element has accessible name",description:"This rule checks that each iframe element has an accessible name.",results:{I1:"No test targets found.",P1:"The test target has an accessible name.",F1:"The test target accessible name doesn't exist or it's empty ('')."}},"QW-ACT-R20":{name:"role attribute has valid value",description:"This rule checks that each role attribute has a valid value.",results:{I1:"No test targets found.",P1:"The test target has a valid `role` attribute.",F1:"The test target has an invalid `role` attribute."}},"QW-ACT-R21":{name:"svg element with explicit role has accessible name",description:"This rule checks that each SVG image element that is explicitly included in the accessibility tree has an accessible name.",results:{I1:"No test targets found.",P1:"The test target has an accessible name.",F1:"The test target accessible name doesn't exist or it's empty ('')."}},"QW-ACT-R22":{name:"Element within body has valid lang attribute",description:"This rule checks that the lang attribute of an element in the page body has a valid primary language subtag.",results:{I1:"No test targets found.",P1:"The test target has a valid `lang` attribute.",F1:"The test target has an invalid `lang` attribute."}},"QW-ACT-R23":{name:"video element visual content has accessible alternative",description:"This rule checks that video elements with audio have an alternative for the video content as audio or as text.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R24":{name:"autocomplete attribute has valid value",description:"This rule checks that the HTML autocomplete attribute has a correct value.",results:{I1:"No test targets found.",P1:"The test target has a valid `autocomplete` attribute.",F1:"The test target `autocomplete` attribute is not valid."}},"QW-ACT-R25":{name:"ARIA state or property is permitted",description:"This rule checks that WAI-ARIA states or properties are allowed for the element they are specified on.",results:{I1:"No test targets found.",P1:"The `{attr}` property is supported or inherited by the `role` {role}.",F1:"The `{attr}` property is neither inherited nor supported by the `role` {role}."}},"QW-ACT-R26":{name:"video element auditory content has accessible alternative",description:"This rule checks that video elements have an alternative for information conveyed through audio.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R27":{name:"aria-* attribute is defined in WAI-ARIA",description:"This rule checks that each aria-* attribute specified is defined in ARIA 1.1.",results:{I1:"No test targets found.",P1:"All aria-* attributes in this element are defined in ARIA 1.1.",F1:"One or more aria-* attributes are not defined in ARIA 1.1."}},"QW-ACT-R28":{name:"Element with role attribute has required states and properties",description:"This rule checks that elements that have an explicit role also specify all required states and properties.",results:{I1:"No test targets found.",P1:"The test target required attributes are listed.",P2:"The test target `role` doesn't have required state or property",F1:"The test target has unlisted required states or properties."}},"QW-ACT-R29":{name:"Audio element content has text alternative",description:"This rule checks if audio only elements have a text alternative available.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R30":{name:"Visible label is part of accessible name",description:"This rule checks that interactive elements labeled through their content have their visible label as part of their accessible name.",results:{I1:"No test targets found.",P1:"The complete visible text content of the test target either matches or is contained within its accessible name.",F1:"The test target doesn't have an accessible name.",F2:"The complete visible text content of the test target neither matches or is contained within its accessible name."}},"QW-ACT-R31":{name:"Video element visual-only content has accessible alternative",description:"This rule checks that video elements without audio have an alternative available.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R32":{name:"video element visual content has strict accessible alternative",description:"This rule checks that video elements with audio have audio description.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R33":{name:"ARIA required context role",description:"This rule checks that an element with an explicit semantic role exists inside its required context.",results:{I1:"No test targets found.",P1:"The test target parent has the required context `role`.",F1:"The test target parent doesn't have the required context `role`."}},"QW-ACT-R34":{name:"ARIA state or property has valid value",description:"This rule checks that each ARIA state or property has a valid value.",results:{I1:"No test targets found.",P1:"The test target `{attr}` attribute has a valid value.",F1:"The test target `{attr}` attribute has an invalid value."}},"QW-ACT-R35":{name:"Heading has accessible name",description:"This rule applies to any HTML element with the semantic role of heading that is included in the accessibility tree.",results:{I1:"No test targets found.",P1:"The test target has a non-empty accessible name.",F1:"The test target accessible name doesn't exist or it's empty ('')."}},"QW-ACT-R36":{name:"Headers attribute specified on a cell refers to cells in the same table element",description:"This rule checks that the headers attribute on a cell refer to other cells in the same table element with a semantic role of columnheader or rowheader.",results:{I1:"No test targets found.",P1:"All headers attributes refer to a cell with a semantic role of columnheader of rowheader within the same table.",F1:"The headers attribute `{attr}` refers to an ID that does not exist within the same table.",F2:"The headers attribute `{attr}` refers to an element inside the same table which does not have a role of rowheader or columnheader."}},"QW-ACT-R37":{name:"Text has minimum contrast",description:"This rule checks that the highest possible contrast of every text character with its background meets the minimal contrast requirement.",results:{I1:"No test targets found.",P1:"Element has contrast ratio higher than minimum.",P2:"Element doesn't have human language text.",P3:"Element has gradient with contrast ratio higher than minimum.",W1:"Element has text-shadow that needs manual verification.",W2:"Element has an image on background.",W3:"Element has an gradient that we can't verify.",F1:"Element has contrast ratio lower than minimum.",F2:"Element has gradient with contrast ratio lower than minimum."}},"QW-ACT-R38":{name:"ARIA required owned elements",description:"This rule checks that an element with an explicit semantic role has at least one of its required owned elements.",results:{I1:"No test targets found.",P1:"The test target only owns elements with correct role.",F1:"The test target owns elements that doesn't have the correct role."}},"QW-ACT-R39":{name:"All table header cells have assigned data cells",description:"This rule checks that each table header has assigned data cells in a table element.",results:{I1:"No test targets found.",P1:"The column header element has at least one assigned cell.",F1:"The column header element does not have at least one assigned cell."}},"QW-ACT-R40":{name:"Zoomed text node is not clipped with CSS overflow",description:"This rule checks that text nodes are not unintentionally clipped by overflow, when a page is zoomed to 200% on 1280 by 1024 viewport.",results:{I1:"No test targets found.",W1:"Check if each ancestor or the text node is not clipped by overflow."}},"QW-ACT-R41":{name:"Error message describes invalid form field value",description:"This rule checks that text error messages provided when the user completes a form field with invalid values or using an invalid format, identify the cause of the error or how to fix the error.",results:{I1:"No test targets found.",W1:"Check that text error messages provided, identify the cause of the error or how to fix the error."}},"QW-ACT-R42":{name:"Object element has non-empty accessible name",description:"This rule checks that each `object` element has a non-empty accessible name.",results:{I1:"No test targets found.",P1:"The test target has a non-empty accessible name.",F1:"The test target accessible name doesn't exist or it's empty ('')."}},"QW-ACT-R43":{name:"Scrollable element is keyboard accessible",description:"This rule checks that scrollable elements can be scrolled by keyboard",results:{I1:"No test targets found.",P1:"This scrollable section element is included in sequential focus navigation.",F1:"This vertically/horizontally scrollable section element is not included in sequential focus navigation, nor does it have any descendants that are."}},"QW-ACT-R44":{name:"Links with identical accessible names and context serve equivalent purpose",description:"This rule checks that links with identical accessible names and context resolve to the same or equivalent resources.",results:{I1:"No test targets found.",P1:"The `links` with the same accessible name have equal content.",W1:"The `links` with the same accessible name have different content. Verify is the content is equivalent."}},"QW-ACT-R48":{name:"Element marked as decorative is not exposed",description:"This rule checks that elements marked as decorative either are not included in the accessibility tree, or have a presentational role.",results:{I1:"No test targets found.",P1:"The test target is not in the accessibility tree.",F1:"The test target is in the accessibility tree."}},"QW-ACT-R49":{name:"Audio or video that plays automatically has no audio that lasts more than 3 seconds",description:"audio or video that plays automatically does not output audio for more than 3 seconds.",results:{I1:"No test targets found.",P1:"The test target plays for 3 seconds or less.",W1:"Can't collect data from the test target element.",W2:"Check if test target has a visible control mechanism."}},"QW-ACT-R50":{name:"audio or video that plays automatically has a control mechanism",description:"audio or video that plays automatically must have a control mechanism.",results:{I1:"No test targets found.",P1:"The test target has a visible control mechanism.",W1:"Can't collect data from the test target element.",W2:"Check if test target has a visible control mechanism."}},"QW-ACT-R51":{name:"video element visual-only content is media alternative for text",description:"This rule checks non-streaming silent video is a media alternative for text on the page.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"Check that the content in the video matches the information in the text."}},"QW-ACT-R52":{name:"video element visual-only content has description track",description:"This rule checks that description tracks that come with non-streaming video elements, without audio, are descriptive.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"Check if visual content has an accessible alternative."}},"QW-ACT-R53":{name:"video element visual-only content has transcript",description:"Non-streaming video elements without audio must have all visual information available in a transcript.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"Check if visual content has an accessible alternative."}},"QW-ACT-R54":{name:"video element visual-only content has audio track alternative",description:"Non-streaming video elements without audio must have an audio alternative.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"Check if visual content has an accessible alternative."}},"QW-ACT-R55":{name:"video element visual content has audio description",description:"This rule checks that non-streaming video elements have all visual information also contained in the audio.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"The test target has a sound track but we can't verify the volume. Check if the test target has audio and if it does check if visual content has an accessible alternative."}},"QW-ACT-R56":{name:"video element content is media alternative for text",description:"This rule checks non-streaming video is a media alternative for text on the page.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"Check that the content in the video matches the information in the text."}},"QW-ACT-R57":{name:"video element visual content has description track",description:"This rule checks that description tracks that come with non-streaming video elements are descriptive.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"The test target has a sound track but we can't verify the volume. Check if the test target has audio and if it does check if visual content has an accessible alternative."}},"QW-ACT-R58":{name:"audio element content has transcript",description:"Non-streaming audio elements must have a text alternative for all included auditory information.",results:{I1:"No test targets found.",W1:"Check if the test target audio has text-alternative."}},"QW-ACT-R59":{name:"audio element content is media alternative for text",description:"This rule checks audio is a media alternative for text on the page.",results:{I1:"No test targets found.",W1:"Check that the content in the audio matches the information in the text."}},"QW-ACT-R60":{name:"video element auditory content has captions",description:"This rule checks that captions are available for audio information in non-streaming video elements.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"The test target has a sound track but we can't verify the volume. Check if the test target has audio and if it does check if audio content has matching captions."}},"QW-ACT-R61":{name:"Audio and visuals of video element have transcript",description:"This rule checks that non-streaming video elements have all audio and visual information available in a transcript.",results:{I1:"No test targets found.",W1:"Can't collect data from the test target.",W2:"The test target has a sound track but we can't verify the volume. Check if the test target has audio and a transcript. If it does check if the transcript contains all the visual and audio information of the video."}},"QW-ACT-R62":{name:"Element in sequential focus order has visible focus",description:"This rule checks that each element in sequential focus order has some visible focus indication.",results:{I1:"No test targets found.",W1:"Check if the element has some visible focus indication"}},"QW-ACT-R63":{name:"Document has a landmark with non-repeated content",description:"This rule checks that each page has an element with a landmark semantic role starting with non-repeated content",results:{I1:"No test targets found.",P1:"The page doesn't have repeated content.",W1:"Check either there is no non-repeated content after repeated content or there exists an element for which all the following are true: - the element has semantic role inheriting from landmark; and - the first perceivable content (in tree order in the flat tree) which is an inclusive descendant of the element is non-repeated content after repeated content; and - the element is included in the accessibility tree."}},"QW-ACT-R64":{name:"Document has heading for non-repeated content",description:"This rule checks that the non-repeated content contains a heading",results:{I1:"No test targets found.",P1:"The page doesn't have repeated content.",W1:"Check either there is no non-repeated content after repeated content or there exists an element for which all the following are true: - the element is non-repeated content after repeated content; and - the element has a semantic role of heading; and - the element is visible; and - the element is included in the accessibility tree."}},"QW-ACT-R65":{name:"Element with presentational children has no focusable content",description:"This rule checks that elements with a role that makes its children presentational do not contain focusable elements.",results:{I1:"No test targets found.",P1:"The element doesn't have descendants in the flat tree that are part of sequential focus navigation.",F1:"The element has descendants in the flat tree that are part of sequential focus navigation."}},"QW-ACT-R66":{name:"Menuitem has non-empty accessible name",description:"This rule checks that each element with a menuitem role has a non-empty accessible name.",results:{I1:"No test targets found.",P1:"The test target has a non-empty accessible name.",F1:"The test target accessible name doesn't exist or it's empty ('')."}},"QW-ACT-R67":{name:"Letter spacing in style attributes is not !important",description:"This rule checks that the style attribute is not used to prevent adjusting letter-spacing by using !important, except if it's at least 0.12 times the font size.",results:{I1:"No test targets found.",P1:"The letter-spacing property is not !important.",P2:"The letter-spacing is at least 0.12 times the font-size.",P3:"The cascaded letter-spacing is not the declared value.",F1:"CSS styles prevent the letter-spacing to be above the minimum value."}},"QW-ACT-R68":{name:"Line height in style attributes is not !important",description:"This rule checks that the style attribute is not used to prevent adjusting line-height by using !important, except if it's at least 1.5 times the font size.",results:{I1:"No test targets found.",P1:"The line-height property is not !important.",P2:"The line-height is at least 1.5 times the font-size.",P3:"The cascaded line-height is not the declared value.",F1:"CSS styles prevent the line-height to be above the minimum value."}},"QW-ACT-R69":{name:"Word spacing in style attributes is not !important",description:"This rule checks that the style attribute is not used to prevent adjusting word-spacing by using !important, except if it's at least 0.16 times the font size.",results:{I1:"No test targets found.",P1:"The word-spacing property is not !important.",P2:"The word-spacing is at least 0.16 times the font-size.",P3:"The cascaded word-spacing is not the declared value.",F1:"CSS styles prevent the word-spacing to be above the minimum value."}},"QW-ACT-R70":{name:"iframe with negative tabindex has no interactive elements",description:"This rule checks that `iframe` elements with a negative `tabindex` attribute value contain no interactive elements.",results:{I1:"No test targets found.",P1:"The nested browsing context does not include elements that are visible and part of the sequential focus navigation.",F1:"The nested browsing context includes elements that are visible and part of the sequential focus navigation."}},"QW-ACT-R71":{name:"`meta` element has no refresh delay (no exception)",description:"This rule checks that the `meta` element is not used for delayed redirecting or refreshing.",results:{I1:"No test targets found.",P1:"The test target refreshes/redirects immediately.",F1:"The test target refreshes after {seconds} seconds.",F2:"The test target redirects after {seconds} seconds."}},"QW-ACT-R72":{name:"First focusable element is link to non-repeated content",description:"This rule checks that the first focusable element is a link to non-repeated content in the page",results:{I1:"No test targets found.",W1:"Check that the first focusable element has an accessible name that communicates that it skips content",W2:"Check that the first focusable element skips to the main content and its accessible name communicates so.",F1:"The first focusable element is not keyboard actionable.",F2:"The first focusable element is not in the accessibility tree.",F3:"The first focusable element does not have the role of link.",F4:"The first focusable element does not skip to the main content.",F5:"The page does not have focusable elements."}},"QW-ACT-R73":{name:"Block of repeated content is collapsible",description:"This rule checks that repeated blocks of content are collapsible.",results:{I1:"No test targets found.",P1:"The page doesn't have repeated content.",W1:"For each block of repeated content in each test target, which is before (in the flat tree) at least one node of non-repeated content after repeated content, check that all the following are true: - there exists an instrument to make all nodes in this block not visible; and - there exists an instrument to remove all nodes in this block from the accessibility tree."}},"QW-ACT-R74":{name:"Document has an instrument to move focus to non-repeated content",description:"This rule checks that there is an instrument to move focus to non-repeated content in the page.",results:{I1:"No test targets found.",P1:"The page doesn't have repeated content.",W1:"The page has one or more instrument(s) to move focus. Check if any of these instrument(s) is being used before a block of repeated content, and the focus is moved to just before a block of non-repeated content.",W2:"Check if the page has any instrument(s) to move focus. Check if any of these instrument(s) is being used before a block of repeated content, and the focus is moved to just before a block of non-repeated content."}},"QW-ACT-R75":{name:"Bypass Blocks of Repeated Content",description:"This rule checks that each page has a mechanism to bypass repeated blocks of content.",results:{I1:"No test targets found.",P1:"The rule passed because of the rule ",W1:"The rule can't tell because of the rule ",F1:"The rule failed because of the rule "}},"QW-ACT-R76":{name:"Text has enhanced contrast",description:"This rule checks that the highest possible contrast of every text character with its background meets the enhanced contrast requirement.",results:{I1:"No test targets found.",P1:"Element has contrast ratio higher than minimum.",P2:"Element doesn't have human language text.",P3:"Element has gradient with contrast ratio higher than minimum.",W1:"Element has text-shadow that needs manual verification.",W2:"Element has an image on background.",W3:"Element has an gradient that we can't verify.",F1:"Element has contrast ratio lower than minimum.",F2:"Element has gradient with contrast ratio lower than minimum."}},"QW-ACT-R77":{name:"ARIA required ID references exist",description:"This rule checks that every ID reference required by WAI-ARIA exists.",results:{I1:"No test targets found.",P1:"Referenced element exists.",F1:"Referenced element does not exist."}}},"wcag-techniques":{"QW-WCAG-T1":{name:"Providing text alternatives for the area elements of image maps",description:"This technique checks the text alternative of area elements of images maps",results:{I1:"No test targets found.",W1:"Please verify that the `alt` attribute describes correctly the corresponding area of the image.",F1:"The `alt` attribute doesn't exist or is empty ('')."}},"QW-WCAG-T2":{name:"Using caption elements to associate data table captions with data tables",description:"This technique checks the caption element is correctly use on tables",results:{I1:"No test targets found.",W1:"Please verify that the `caption` element identifies the table correctly.",F1:"The `caption` element doesn't exist or is empty ('')."}},"QW-WCAG-T3":{name:"Providing a description for groups of form controls using `fieldset` and `legend` elements",description:"This technique checks the correct use of the description element for form controls",results:{I1:"No test targets found.",W1:"Please verify that the `legend` description is valid.",F1:"The `fieldset` element is neither inside nor referencing a `form` element.",F2:"The `legend` element doesn't exist or is empty ('')."}},"QW-WCAG-T4":{name:"Using the summary attribute of the table element to give an overview of data tables",description:"This technique checks the correct use of the summary attribute for table elements",results:{I1:"No test targets found.",W1:"Please verify that the summary is a valid description of the table.",F1:"The summary is empty.",F2:"The caption is a duplicate of the summary."}},"QW-WCAG-T5":{name:"Using alt attributes on images used as submit buttons",description:"This technique checks all input elements that are buttons use alt text",results:{I1:"No test targets found.",W1:"Please verify that the value of the alt attribute correctly describes the function of the button.",F1:"The input element does not have an alt attribute.",F2:"The input element has an empty alt attribute."}},"QW-WCAG-T6":{name:"Using both keyboard and other device-specific functions",description:"The objective of this technique is to verify the parity of keyboard-specific and mouse-specific events when code that has a scripting function associated with an event is used",results:{I1:"No test targets found.",P1:"The mouse event attribute has a keyboard equivalent.",W1:"The test target has a keyboard event, but we can't verify if it's equivalent to the mouse event."}},"QW-WCAG-T7":{name:"Providing definitions for abbreviations by using the abbr element",description:"The objective of this technique is to provide expansions or definitions for abbreviations by using the abbr element",results:{I1:"No test targets found.",P1:"The test target has the definition in the title attribute.",F1:"The test target doesn't have the definition in the title attribute."}},"QW-WCAG-T8":{name:"Failure of Success Criterion 1.1.1 and 1.2.1 due to using text alternatives that are not alternatives",description:'This describes a failure condition for all techniques involving text alternatives. If the text in the "text alternative" cannot be used in place of the non-text content without losing information or function then it fails because it is not, in fact, an alternative to the non-text content',results:{I1:"No test targets found.",W1:"Text alternative needs manual verification.",F1:"Text alternative is not actually a text alternative for the non-text content."}},"QW-WCAG-T9":{name:"Organizing a page using headings",description:"The objective of this technique is to ensure that sections have headings that identify them and that the heading are used in the correct order",results:{I1:"No test targets found.",W1:"Please verify that headers are used to divide the page correctly.",F1:"Headings are not in the correct order.",F2:"Heading number is missing.",F3:"Headings don't start with h1"}},"QW-WCAG-T10":{name:"Combining adjacent image and text links for the same resource",description:"The objective of this technique is to provide both text and iconic representations of links without making the web page more confusing or difficult for keyboard users or assistive technology users. Since different users finding text and icons more usable, providing both can improve the accessibility of the link.",results:{I1:"No test targets found.",P1:"The a element contains an image that has an empty alt attribute.",W1:"The link contains an image that has an alt attribute that should be manually verified.",F1:"The link text is equal to the image's alternative text."}},"QW-WCAG-T11":{name:"Providing text alternatives on applet elements",description:"Provide a text alternative for an applet by using the alt attribute to label an applet and providing the text alternative in the body of the applet element. In this technique, both mechanisms are required due to the varying support of the alt attribute and applet body text by user agents.",results:{I1:"No test targets found.",W1:"Please verify that the values of the alt attribute and the body text correctly describe the applet element.",F1:"The applet element does not contain an alt attribute.",F2:"The applet element has an empty alt attribute.",F3:"The applet element does not contain alternative text in its body."}},"QW-WCAG-T12":{name:"Failure of Success Criterion 1.3.1 due to using th elements, caption elements, or non-empty summary attributes in layout tables",description:"The objective of this technique is to describe a failure that occurs when a table used only for layout includes either th elements, a summary attribute, or a caption element. This is a failure because it uses structural (or semantic) markup only for presentation. The intent of the HTML and XHTML table elements is to present data.",results:{I1:"No test targets found.",W4:"No incorrect elements used in layout table.",W1:"The table has a non-empty summary - Amend it if it's a layout table.",W2:"The table has a th element - Amend it if it's a layout table.",W3:"The table has a caption element - Amend it if it's a layout table."}},"QW-WCAG-T13":{name:"Failure of Success Criterion 2.2.2 due to using the blink element",description:"The blink element, while not part of the official HTML or XHTML specification, is supported by many user agents. It causes any text inside the element to blink at a predetermined rate. This cannot be interrupted by the user, nor can it be disabled as a preference. The blinking continues as long as the page is displayed. Therefore, content that uses blink fails the Success Criterion because blinking can continue for more than three seconds.",results:{I1:"No test targets found.",P1:"Blink is not used.",F1:"Used blink element."}},"QW-WCAG-T14":{name:"Using id and headers attributes to associate data cells with header cells in data tables",description:"This technique checks if data cells are associated with header cells in data tables.",results:{I1:"No test targets found.",I2:"This table is a layout table.",I3:"No header attributes are used in this data table.",P1:"id and headers attributes are correctly used.",F1:"This table is a layout table with id or headers attributes.",F2:"There are duplicate `id`s in this data table.",F3:"id and headers attributes are not correctly used."}},"QW-WCAG-T15":{name:"Using the link element and navigation tools",description:"The objective of this technique is to describe how the link element can provide metadata about the position of an HTML page within a set of Web pages or can assist in locating content with a set of Web pages.",results:{I1:"No test targets found.",I2:"The element doesn't contain a rel attribute or doesn't pertains navigation.",P1:"The link has rel and href attributes and pertains navigation.",F1:"The element doesn't contain an href attribute and pertains navigation."}},"QW-WCAG-T16":{name:"Using HTML according to spec",description:"This technique checks that the HTML or XHTML web page follows the specification.",results:{I1:"No test targets found.",P1:"The HTML document doesn't have errors.",W1:"The HTML document has warnings.",F1:"The HTML document has errors."}},"QW-WCAG-T17":{name:"Positioning labels to maximize predictability of relationships",description:"This technique checks the correct position of labels in forms",results:{I1:"No test targets found.",P1:"The form field has well positioned label.",F1:"The form field has incorrect positioned label.",F2:"The form field label is empty.",F3:"The form field label is not visible."}},"QW-WCAG-T18":{name:"Using table markup to present tabular information",description:"The objective of this technique is to present tabular information in a way that preserves relationships within the information even when users cannot see the table or the presentation format is changed. Using the table element with the child elements tr, th, and td makes these relationships perceivable.",results:{I1:"No test targets found.",P1:"There is at least one occurrence of table, tr, td and th.",F1:"There are missing table child elements."}},"QW-WCAG-T19":{name:"Providing submit buttons",description:"The objective of this technique is to provide a mechanism that allows users to explicitly request changes of context. The intended use of a submit button is to generate an HTTP request that submits data entered in a form, so it is an appropriate control to use for causing a change of context.",results:{I1:"No test targets found.",P1:"The form contains one of the following elements input[type~='submit image'], button[type='submit'].",F1:"Form tag doesn't contain any of the following elements input[type~='submit image'], button[type='submit']."}},"QW-WCAG-T20":{name:"Supplementing link text with the title attribute",description:"Supplementing link text with the title attribute",results:{I1:"No test targets found.",W1:"Please verify that the element's title attribute describes correctly the link.",F1:"The element's title attribute is empty.",F2:"The element contains a title attribute equal to the text in the link"}},"QW-WCAG-T21":{name:"Failure of Success Criteria 2.4.4, 2.4.9 and 4.1.2 due to not providing an accessible name for an image which is the only content in a link",description:"This technique checks the text alternative of images which are the only content of a link",results:{I1:"No test targets found.",P1:"The link has an accessible name.",F1:"The image doesn't have an accessible name."}},"QW-WCAG-T22":{name:"Failure of Success Criterion 3.2.1 and 3.2.5 due to opening a new window as soon as a new page is loaded",description:"The objective of this technique is to ensure that pages do not disorient users by opening up one or more new windows that automatically attain focus as soon as a page is loaded.",results:{I1:"No test targets found.",P1:"Browser didn't open new tab.",F1:"Browser opened a new tab."}},"QW-WCAG-T23":{name:"Adding a link at the top of each page that goes directly to the main content area",description:"The objective of this technique is to provide a mechanism to bypass blocks of material that are repeated on multiple Web pages by skipping directly to the main content of the Web page.",results:{I1:"No test targets found.",W1:"The first focusable control is a visible link to a <main> element.",W2:"The first focusable control is a visible link to some content in the Web Page. Verify if it links to the main content.",F1:"The first focusable control on the Web page links to an inexistent element.",F2:"The first focusable control on the Web page links to the top of the page.",F3:"The first focusable control on the Web page does not links to local content.",F4:"The first focusable control on the Web page is not a link.",F5:"This Web page does not have focusable controls."}},"QW-WCAG-T24":{name:"Failure of Success Criteria 2.1.1, 2.4.7, and 3.2.1 due to using script to remove focus when focus is received",description:"Content that normally receives focus when the content is accessed by keyboard may have this focus removed by scripting.",results:{I1:"No test targets found.",P1:"Element kept focus.",F1:"Element didn't keep focus."}},"QW-WCAG-T25":{name:"Using the scope attribute to associate header cells and data cells in data tables",description:"The objective of this technique is to associate header cells with data cells in complex tables using the scope attribute.",results:{I1:"No test targets found.",P1:"The element's scope attribute matches the following values: col, row, colgroup, rowgroup.",F1:"The element doesn't contain a scope attribute.",F2:"The element's scope attribute is empty.",F3:"The element's scope attribute doesn't match any of the following values: col, row, colgroup, rowgroup."}},"QW-WCAG-T26":{name:"Failure of Success Criterion 4.1.2 due to using script to make div or span a user interface control in HTML without providing a role for the control",description:"This failure demonstrates how using generic HTML elements to create user interface controls can make the controls inaccessible to assistive technology.",results:{I1:"No test targets found.",P1:"The element is a user interface control with an event handler.",F1:"The element is a forced user interface control without the proper role attribute."}},"QW-WCAG-T27":{name:"Failure of Success Criterion 1.4.8 due to using text that is justified (aligned to both the left and the right margins)",description:"This failure describes situations where blocks of text that are justified (aligned to both the left and the right margins) occurs in HTML, using the 'align' attribute.",results:{I1:"No test targets found.",P1:"This content is not justified.",F1:"This content shouldn't be justified."}},"QW-WCAG-T28":{name:"Using `percent, em, names` for font sizes",description:"This technique checks that all font-size attribute uses percent, em or names.",results:{I1:"No test targets found.",P1:"This test target has a font-size css property using an relative unit value with the important flag.",F1:"This test target has a font-size css property using an absolute unit value with the important flag."}},"QW-WCAG-T29":{name:"Specifying alignment either to the left or right in CSS",description:"This technique describes how to align blocks of text either left or right by setting the CSS text-align property.",results:{I1:"No test targets found.",P1:"This test target has a text-align css property equal to justify.",F1:"This test target has a text-align css property not equal to justify."}},"QW-WCAG-T30":{name:"Failure of Success Criterion 2.2.2 due to using text-decoration:blink without a mechanism to stop it in less than five seconds",description:"CSS defines the blink value for the text-decoration property. When used, it causes any text in elements with this property to blink at a predetermined rate. This cannot be interrupted by the user, nor can it be disabled as a user agent preference. The blinking continues as long as the page is displayed. Therefore, content that uses text-decoration:blink fails the Success Criterion because blinking can continue for more than three seconds.",results:{I1:"No test targets found.",F1:"This test target has a `text-decoration` property with the value `blink."}},"QW-WCAG-T31":{name:"Failure of Success Criterion 1.4.3, 1.4.6 and 1.4.8 due to specifying foreground colors without specifying background colors or vice versa",description:"Users with vision loss or cognitive, language and learning challenges often prefer specific foreground and background color combinations. In some cases, individuals with low vision will find it much easier to see a Web page that has white text on a black background, and they may have set their user agent to present this contrast. Many user agents make it possible for users to choose a preference about the foreground or background colors they would like to see without overriding all author-specified styles. This makes it possible for users to view pages where colors have not been specified by the author in their preferred color combination.",results:{I1:"No test targets found.",P1:"The test target has a author defined color and background css properties.",F1:"The test target has a author defined color css property but not a background css property.",F2:"The test target has a author defined background property but not a color css property."}},"QW-WCAG-T32":{name:"Using ol, ul and dl for lists or groups of links",description:"The objective of this technique is to create lists of related items using list elements appropriate for their purposes.",results:{I1:"No test targets found.",W1:"Check that content that has the visual appearance of a list (with or without bullets) is marked as an unordered list.",W2:"Check that content that has the visual appearance of a numbered list is marked as an ordered list.",W3:"Check that content is marked as a definition list when terms and their definitions are presented in the form of a list.",F1:"A list item is not contained in a correct list element."}},"QW-WCAG-T33":{name:"Using description lists - dd,dt",description:"Ensures <dt> and <dd> elements are contained by a <dl>",results:{I1:"No test targets found.",P1:"The test target is contained in a correct description list element.",F1:"The test target is not contained in a correct description list element."}},"QW-WCAG-T34":{name:"Using description lists - dl",description:"Ensures <dl> elements are structured correctly. <dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",results:{I1:"No test targets found.",P1:"The description list element is structured correctly",F1:"The description list element contains an incorrect element type",F2:"The description list element is not ordered correctly"}},"QW-WCAG-T35":{name:"`id` attribute value is unique",description:"This technique checks that all id attribute values on a single page are unique.",results:{I1:"No test targets found.",P1:"The test target has a unique `id` attribute.",F1:"Several elements have the same `id` attribute."}}},"best-practices":{"QW-BP1":{name:"Using h1-h6 to identify headings",description:"It is recommended to use HTML and XHTML heading markup to provide semantic code for headings in the content",results:{I1:"No test targets found.",W1:"Check that heading markup is used when content is a heading.",F1:"This page doesn't use headings."}},"QW-BP2":{name:"Concise images alt text",description:"Image alt text attribute with more than 100 characters",results:{I1:"No test targets found.",P1:"The img alt text attribute has less than 100 characters.",F1:"The img alt text attribute has more than 100 characters."}},"QW-BP4":{name:"Grouped links not within a nav element",description:"Set of 10 or more links not grouped within a list (nav)",results:{I1:"No test targets found.",F1:"It was found a group of 10 or more links not grouped within a nav element."}},"QW-BP5":{name:"Using table elements inside other table elements",description:"It is not recommended to use table elements inside other table elements",results:{I1:"No test targets found.",P1:"There are not table elements inside other table elements.",F1:"There are table elements inside other table elements"}},"QW-BP6":{name:"title element is not too long (100 characters)",description:"The webpage title element shouldn't have more than 100 characters",results:{I1:"No test targets found.",P1:"The page title has less than 100 characters.",F1:"The page title has 100 or more characters."}},"QW-BP7":{name:"Title element contains ASCII-art",description:"Title element contains ASCII-art",results:{I1:"No test targets found.",P1:"The title element doesn't contain ASCII art.",F1:"The title element contains ASCII art."}},"QW-BP8":{name:"Headings with images should have an accessible name",description:"Headings with at least one image should have an accessible name",results:{I1:"No test targets found.",P1:"This heading with at least one image has an accessible name.",F1:"This heading with at least one image does not have an accessible name."}},"QW-BP9":{name:"Table element without header cells has a caption",description:"A table without th elements should have a caption element to describe it.",results:{I1:"No test targets found.",P1:"Table doesn't have header cells but has a caption.",F1:"Table doesn't have header cells or caption."}},"QW-BP10":{name:"HTML elements are used to control visual presentation of content",description:"No HTML elements are used to control the visual presentation of content",results:{I1:"No test targets found.",P1:"The webpage doesn't use elements to control the visual content presentation.",F1:"The webpage uses the element {name} to control the visual content presentation."}},"QW-BP11":{name:"Using br to make a list",description:"Using 3 consecutive br elements",results:{I1:"No test targets found.",P1:"There are less than 3 consecutive br.",F1:"`br` elements are being be used as a list."}},"QW-BP12":{name:"Using scope col and row",description:"Using scope col in the first row and scope row in the first element of each row",results:{I1:"No test targets found.",P1:"The scope attribute is correctly used.",F1:"The scope attribute is incorrectly used."}},"QW-BP13":{name:"Using consecutive links with the same href and one contains an image",description:"Using consecutive links with the same href in which one of the links contains an image",results:{I1:"No test targets found.",P1:"There are no consecutive links with the same href in which one of the links contained an image.",F1:"There are consecutive links with the same href in which one of the links contained an image."}},"QW-BP15":{name:"At least one width attribute of an HTML element is expressed in absolute values",description:"At least one width attribute of an HTML element is expressed in absolute values",results:{I1:"No test targets found.",P1:"The test target `width` attribute uses relative units.",F1:"The test target `width` attribute uses absolute units."}},"QW-BP17":{name:"Adding a link at the beginning of a block of repeated content to go to the end of the block",description:"The objective of this technique is to provide a mechanism to bypass a block of material by skipping to the end of the block.",results:{I1:"No test targets found.",W1:"This link skips a content block.",F1:"This page does not have links."}},"QW-BP18":{name:"Using percentage values in CSS for container sizes",description:"The objective of this technique is to enable users to increase the size of text without having to scroll horizontally to read that text. To use this technique, an author specifies the width of text containers using percent values.",results:{I1:"No test targets found.",P1:"This test target has a `width` css property using percentage value with the important flag.",F1:"This test target has a `width` css property using `px` value with the important flag.",F2:"This test target has a `width` css property not using percentage value with the important flag."}},"QW-BP19":{name:"Landmark banner is top level",description:"Ensures the banner landmark is at top level",results:{I1:"No test targets found.",P1:"The banner landmark is at top level.",F1:"The banner landmark is not at top level."}},"QW-BP20":{name:"Landmark no duplicate banner",description:"Ensures the document has at most one banner landmark",results:{I1:"No test targets found.",P1:"There is one banner landmark",F1:"There are multiple banner landmarks"}},"QW-BP21":{name:"Landmark no duplicate contentinfo",description:"Ensures the document has at most one contentinfo landmark",results:{I1:"No test targets found.",P1:"There is one contentinfo landmark",F1:"There are multiple banner landmarks"}},"QW-BP22":{name:"Landmark has one main",description:"Ensures the document has a main landmark",results:{I1:"No test targets found.",P1:"There is one main landmark.",F1:"There are multiple main landmarks."}},"QW-BP23":{name:"Listitems are used semantically",description:"Ensures <li> elements are used semantically",results:{I1:"No test targets found.",P1:"Listitem is used semantically",F1:"Listitem is not used semantically not used semantically"}},"QW-BP24":{name:"Lists are used correctly",description:"Ensures that lists are structured correctly. <ul> and <ol> must only directly contain <li>, <script> or <template> elements",results:{I1:"No test targets found.",P1:"List is used correctly",F1:"List is not used correctly"}},"QW-BP25":{name:"Landmark complementary is top level",description:"Ensures the complementary landmark or aside is at top level",results:{I1:"No test targets found.",P1:"The complementary landmark is at top level.",F1:"The complementary landmark is not at top level."}},"QW-BP26":{name:"Landmark complementary is top level",description:"Ensures the contentinfo landmark is at top level",results:{I1:"No test targets found.",P1:"The complementary landmark is at top level.",F1:"The complementary landmark is not at top level."}},"QW-BP27":{name:"Landmark main is top level",description:"Ensures the main landmark is at top level",results:{I1:"No test targets found.",P1:"The main landmark is at top level.",F1:"The main landmark is not at top level."}},"QW-BP28":{name:"H1 element is used and unique",description:"Ensures there is only one H1",results:{P1:"The H1 element is used and unique",F1:"The H1 element is not present or used more than one time"}},"QW-BP29":{name:"HTML lang and xml:lang match",description:"The best practice checks that for the html element, there is no mismatch between the primary language in non-empty lang and xml:lang attributes, if both are used.",results:{I1:"No test targets found.",P1:"The `lang` and `xml:lang` attributes have the same value.",F1:"The `lang` and `xml:lang` attributes don't have the same value."}}}}},156:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.fi=void 0,t.fi={"act-rules":{"QW-ACT-R1":{name:"HTML-sivulla on sivuotsikko",description:"Tämä sääntö tarkastaa, että HTML-sivulla on 'title'-elementti.",results:{I1:"Kohteita ei löytynyt.",P1:"`Title`-elementti löytyy eikä se ole tyhjä.",F1:"`Title`-elementtiä ei löydy.",F2:"`Title`-elementti on tyhjä.",F3:"Löytynyt `title`-elementti ei ole sivun otsikkona."}},"QW-ACT-R2":{name:"`Html` -elementissä on `lang`-attribuutti",description:"Tämä sääntö tarkastaa, että `html`-elementillä on `lang`- tai `xml:lang`-attribuutti, joka ei ole tyhjä.",results:{I1:"Kohteita ei löytynyt.",P1:"`Lang`-attribuutti löytyi ja sille on asetettu arvo.",F1:"`Lang`-attribuuttia ei löydy tai se on tyhjä."}},"QW-ACT-R3":{name:"HTML-elementin `lang` ja `xml:lang` vastaavat toisiaan",description:"Tämä sääntö tarkastaa, että jos `html`-elementti sisältää sekä `lang`- että `xml:lang`-attribuutit, jotka eivät ole tyhjiä, niiden arvot vastaavat toisiaan.",results:{I1:"Kohteita ei löytynyt.",P1:"`Lang`- ja `xml:lang`-attribuuteilla on sama arvo.",F1:"`Lang`- ja `xml:lang`-attribuuttien arvot eivät vastaa toisiaan."}},"QW-ACT-R4":{name:"`Meta`-elementin uudelleenlatauksessa ei viivettä",description:"Tämä sääntö tarkastaa, että `meta`-elementtiä ei ole käytetty viivästettyyn uudelleenohjaukseen tai uudelleenlataukseen.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen uudelleen lataaminen tai uudelleenohjaus tehdään välittömästi.",P2:"Kohteen uudelleen lataaminen tai uudelleenohjaus tapahtuu yli 20 tunnin kuluttua.",F1:"Kohde uudelleenladataan {seconds} sekunnin jälkeen.",F2:"Kohde uudelleenohjataan {seconds} sekunnin jälkeen."}},"QW-ACT-R5":{name:"`Html`-elementin `lang`-attribuutin kelpoisuus",description:"Tämä sääntö tarkastaa, että `lang` tai `xml:lang` -attribuutilla on hyväksytty kielikoodi.",results:{I1:"Kohteita ei löytynyt.",P1:"`Lang`-attribuutti sisältää hyväksytyn kielikoodin.",F1:"`Lang`-attribuutti ei sisällä hyväksyttyä kielikoodia."}},"QW-ACT-R6":{name:"Kuvaa esittävällä painikkeella on saavutettava nimi",description:"Tämä sääntö tarkastaa, että jokaisella kuvaa esittävällä painikkeella on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä."}},"QW-ACT-R7":{name:"Sivun asentoa ei ole rajoitettu CSS:n `transform`-säännöllä",description:"Tämä sääntö tarkastaa, että sivun sisältöä ei ole rajoitettu vaaka- eikä pystyasentoon CSS:n `transform`-säännöllä.",results:{I1:"Kohteita ei löytynyt.",P1:"Sivulla olevan CSS:n `transform`-säännön `rotateZ`-funktiota käytetään `orientation`-ehdon kanssa tavalla, joka ei rajoita elementtiä pysty- tai vaakasuoraan esitystapaan.",F1:"Sivulla olevan CSS:n `transform`-säännön `rotate`-funktiota käytetään `orientation`-ehdon kanssa tavalla, joka rajoittaa elementin vaakasuoraan esitystapaan."}},"QW-ACT-R9":{name:"Linkeillä, joilla on samat saavutettavat nimet, on myös sama merkitys",description:"Tämä sääntö tarkastaa, että linkit, joilla on samat saavutettavat nimet, johtavat samaan tai vastaavaan sisältöön.",results:{I1:"Kohteita ei löytynyt.",P1:"Linkit, joilla on sama saavutettava nimi, johtavat samaan sisältöön.",F1:"Linkit, joilla on sama saavutettava nimi, johtavat eri sisältöihin. Varmista, että sisällöt vastaavat toisiaan."}},"QW-ACT-R10":{name:"`Iframe`-elementeillä, joilla on samat saavutettavat nimet, on myös sama tarkoitus",description:"Tämä sääntö tarkastaa, että `iframe`-elementit, joilla on sama saavutettava nimi, käyttävät upotuksessa samaa tai vastaavaa sisältöä.",results:{I1:"Kohteita ei löytynyt.",P1:"`Iframe`-elementeillä, joilla on sama saavutettava nimi, on sama sisältö.",F1:"`Iframe`-elementeillä, joilla on sama saavutettava nimi, on eri sisältö."}},"QW-ACT-R11":{name:"Painikkeella on saavutettava nimi",description:"Tämä sääntö tarkastaa, että jokaisella painike-elementillä on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R12":{name:"Linkillä on saavutettava nimi",description:"Tämä sääntö tarkastaa, että jokaisella linkillä on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R13":{name:"Elementillä, jolle on määritelty `aria-hidden`-attribuutti, ei ole kohdistettavaa sisältöä",description:"Tämä sääntö tarkastaa, että `aria-hidden` -attribuutin omaavat elementit eivät sisällä kohdistettavia alielementtejä.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen alielementit eivät ole kohdistettavia.",P2:"Kohde ei ole kohdistettava.",F1:"Kohteella on kohdistettavia alielementtejä.",F2:"Kohde on kohdistettava."}},"QW-ACT-R14":{name:"`Meta viewport` ei estä zoomausta",description:"Tämä sääntö tarkastaa, että `meta`-elementti säilyttää selaimen zoom-toiminnon.",results:{I1:"Kohteita ei löytynyt.",P1:"`Meta`-elementti, jolla on `name=viewport`-attribuutti, ei määritä `maximum-scale`- tai `user-scalable`-arvoja.",P2:"`Meta`-elementti, jolla on `name=viewport`-attribuutti mahdollistaa selaimen zoom-toiminnon käytön.",F1:"`Meta`-elementti, jolla on `name=viewport`-attribuutti, poistaa selaimelta mahdollisuuden zoomata käyttäen määrityksiä `user-scalable=no` tai `maximum-scale < 2`."}},"QW-ACT-R15":{name:"Ääni- tai videosisältö ei sisällä ääntä, joka käynnistyy automaattisesti",description:"Tämä sääntö tarkastaa, että äänisisällön automaattitoisto ei kestä yli kolmea (3) sekuntia, tai äänisisällölle on olemassa mekanismi, jonka avulla käyttäjä voi sen pysäyttää tai hiljentää.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voitu todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R16":{name:"Lomake-elementillä on saavutettava nimi",description:"Lomake-elementillä on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R17":{name:"Kuvalla on saavutettava nimi",description:"Tämä sääntö tarkastaa, että kaikilla kuvilla, joita ei ole merkitty koristeellisiksi, on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohde on koristeellinen.",P2:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä."}},"QW-ACT-R18":{name:"`Id`-attribuutin arvo on yksilöllinen",description:"Tämä sääntö tarkastaa, että jokaisen samalla sivulla esiintyvällä `id`-attribuutilla on yksilöllinen arvo.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen `id`-attribuutin arvo on yksilöllinen.",F1:"Usealla elementillä on sama `id`-attribuutin arvo."}},"QW-ACT-R19":{name:"`Iframe`-elementillä on saavutettava nimi",description:"Tämä sääntö tarkastaa, että jokaisella `iframe`-elementillä on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R20":{name:"`Role`-attribuutilla on sallittu arvo",description:"Tämä sääntö tarkastaa, että jokaisella `role`-attribuutilla on sallittu arvo.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on sallittu arvo `role`-attribuutissa.",F1:"Kohteen `role`-attribuutin arvo on virheellinen."}},"QW-ACT-R21":{name:"`Svg`-elementillä, jolla on eksplisiittinen rooli, on saavutettava nimi",description:"Tämä sääntö tarkastaa, että jokaisella `svg`-muotoisella kuvalla, joka on eksplisiittisesti sisällytetty saavutettavuuden sisältömalliin, on saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R22":{name:"`Body`-elementin alielementin `lang`-attribuutin arvo on sallittu.",description:"Tämä sääntö tarkastaa, että sivun `body`-elementin sisällä olevan elementin `lang`-attribuutti sisältää hyväksytyn kielikoodin.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen `lang`-attribuutti sisältää hyväksytyn kielikoodin.",F1:"Kohteen `lang`-attribuutin kielikoodi on virheellinen."}},"QW-ACT-R23":{name:"Videon näkyvälle sisällölle on saavutettava vaihtoehto",description:"Tämä sääntö tarkastaa, että ääntä sisältävissä videoissa visuaaliselle sisällölle on tarjolla vaihtoehto myös ääni- tai tekstimuodossa.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voida todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R24":{name:"`Autocomplete`-attribuutilla on sallittu arvo",description:"Tämä sääntö tarkastaa, että HTML:n `autocomplete` -attribuutilla on sallittu arvo.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen `autocomplete`-attribuutilla on sallittu arvo.",F1:"Kohteen `autocomplete`-attribuutin arvo on virheellinen."}},"QW-ACT-R25":{name:"`ARIA-tilan tai -ominaisuuden käyttö on sallittua.",description:"Tämä sääntö tarkastaa, että WAI-ARIA-tiloja ja -ominaisuuksia on käytetty vain sallituissa elementeissä.",results:{I1:"Kohteita ei löytynyt.",P1:"`{attr}`-ominaisuus on tuettu tai peritty roolista `{role}`.",F1:"`{attr}`-ominaisuutta ei ole peritty eikä tuettu roolille `{role}`."}},"QW-ACT-R26":{name:"Videon äänisisällölle on saavutettava vaihtoehto",description:"Tämä sääntö tarkastaa, että videon äänisisällöille on olemassa vaihtoehtoinen esitystapa.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voida todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R27":{name:"ARIA-attribuutti löytyy WAI-ARIA -dokumentaatiosta",description:"Tämä sääntö tarkastaa, että jokainen käytetty `aria-*`-attribuutti on määritelty WAI-ARIA 1.1 -dokumentaatiossa.",results:{I1:"Kohteita ei löytynyt.",P1:"Kaikki elementissä esiintyvät `aria`-alkuiset attribuutit sisältyvään WAI-ARIA 1.1 -määrityksiin.",F1:"Yksi tai useampi `aria`-alkuinen attribuutti ei sisälly WAI-ARIA 1.1 -määrityksiin."}},"QW-ACT-R28":{name:"Elementillä, jolle on määritelty `role`-attribuutti, on annettu myös vaaditut tilat ja ominaisuudet",description:"Tämä sääntö tarkastaa, että elementeille, joille on määritelty `role`-attribuutti, on myös annettu kaikki kyseisen `role`-attribuutin yhteydessä vaadittavat tilat ja ominaisuudet.",results:{I1:"Kohteita ei löytynyt.",P1:"Kaikki kohde-elementin vaaditut attribuutit on annettu.",P2:"Kohde-elementin `role`-attribuuttiin ei liity pakollisia tila- tai ominaisuusmäärityksiä.",F1:"Kohde-elementiltä puuttuu vaadittuja tila- tai ominaisuusmäärityksiä."}},"QW-ACT-R29":{name:"Äänielementin sisältö on saatavissa myös tekstinä",description:"Tämä sääntö tarkastaa, onko pelkkää ääntä sisältävää sisällölle tarjolla myös tekstimuotoinen vaihtoehto.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voida todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R30":{name:"Elementin näkyvä nimi on osa sen saavutettavaa nimeä",description:"Tämä sääntö tarkastaa, että interaktiivisten elementtien kohdalla visuaalisesti näkyvissä nimi on osa sen saavutettavaa nimeä.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen näkyvä teksti vastaa kokonaan tai on osa sen saavutettavaa nimeä.",F1:"Kohteella ei ole saavutettavaa nimeä.",F2:"Kohteen näkyvä teksti ei vastaa sen saavutettavaa nimeä eikä ole sen osa."}},"QW-ACT-R31":{name:"Äänettömän videon näkyvälle sisällölle on saavutettava vaihtoehto",description:"Tämä sääntö tarkastaa, että tietosisältö videossa, jossa ei ole äänisisältöä, on saatavilla myös saavutettavassa vaihtoehtoisessa muodossa.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voida todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R32":{name:"Videon näkyvälle sisällölle on saavutettava vaihtoehto",description:"Tämä sääntö tarkastaa, että ääntä sisältävät videot sisältävät myös kuvailutulkkauksen.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voida todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R33":{name:"ARIA:n vaatima rooli kontekstissa",description:"Tämä sääntö tarkastaa, että elementti, jolla on eksplisiittinen semanttinen rooli, sijaitsee tämän roolin edellyttämässä yhteydessä.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen emoelementillä on kontekstin vaatima rooli.",F1:"Kohteen emoelementillä ei ole kontekstin vaatimaa roolia."}},"QW-ACT-R34":{name:"ARIA-tilalla tai -ominaisuudella on sallittu arvo",description:"Tämä sääntö tarkastaa, että jokaisella annetulla ARIA-tilalla ja -ominaisuudella on sallittu arvo.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen `{attr}`-attribuutilla on sallittu arvo.",F1:"Kohteen `{attr}`-attribuutin arvo on virheellinen."}},"QW-ACT-R35":{name:"Otsikolla on saavutettava nimi",description:"Tämä sääntö pätee mihin tahansa semanttiselta merkitykseltään otsikoksi määriteltyyn HTML-elementtiin, joka sisältyy saavutettavuuden sisältömalliin.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi, joka ei ole tyhjä.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä ('')."}},"QW-ACT-R36":{name:"Solun `headers`-attribuutti viittaa soluun samassa taulukkoelementissä.",description:"Tämä sääntö tarkastaa, että solun `headers`-attribuutti viittaa samassa taulukossa olevaan soluun, jolla on sarakkeen tai rivin otsikon semanttinen merkitys.",results:{I1:"Kohteita ei löytynyt.",P1:"Kaikki `headers`-attribuutin arvot viittaavat samassa taulukossa oleviin sarakkeen ja rivin otsikkosoluihin.",F1:"`Headers`-attribuutin arvo `{attr}` viittaa elementin `id`-arvoon, jota ei esiinny samassa taulukossa.",F2:"Headers-attribuutin arvo `{attr}` viittaa samassa taulukossa olevaan elementtiin, joka ei ole sarakkeen tai rivin otsikko."}},"QW-ACT-R37":{name:"Teksti täyttää kontrastin vähimmäisvaatimukset",description:"Tämä sääntö tarkastaa, että jokaisen tekstissä esiintyvän kirjoitusmerkin suurin mahdollinen kontrasti taustaansa vasten täyttää vähimmäisvaatimukset kontrastille.",results:{I1:"Kohteita ei löytynyt.",P1:"Elementin kontrasti ylittää vähimmäisvaatimukset.",P2:"Elementin merkeillä ei esitetä tekstiä luonnollisella kielellä.",P3:"Elementin kontrasti taustan liukuvärin kanssa ylittää vähimmäisvaatimukset.",W1:"Elementillä on tekstin varjostus, joka vaatii manuaalista tarkistusta.",W2:"Elementin taustalla on kuva.",W3:"Elementillä taustalla on liukuväri, jota emme pysty todentamaan.",F1:"Elementin kontrasti ei täytä vähimmäisvaatimuksia.",F2:"Elementin kontrasti taustan liukuvärin kanssa ei täytä vähimmäisvaatimuksia."}},"QW-ACT-R38":{name:"ARIA:n vaatimat omistetut elementit",description:"Tämä sääntö tarkastaa, että elementillä, jolla on eksplisiittinen semanttinen rooli, on vähintään yksi roolin vaatima omistettu elementti.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohde omistaa vain elementtejä, joilla on vaadittu rooli.",F1:"Kohde omistaa elementtejä, joilla ei ole vaadittua roolia."}},"QW-ACT-R39":{name:"Kaikki taulukon otsikkosolut kohdistuvat sisältösoluihin",description:"Tämä sääntö tarkastaa, että taulukkoelementin jokainen otsikkosolu kohdistuu johonkin sisältösoluun.",results:{I1:"Kohteita ei löytynyt.",P1:"Sarakkeen otsikkoelementti kohdistuu ainakin yhteen soluun.",F1:"Sarakkeen otsikkoelementti ei kohdistu yhteenkään soluun."}},"QW-ACT-R40":{name:"CSS:n `overflow`-määritys ei leikkaa zoomattua tekstiä.",description:"Tämä sääntö tarkastaa, että tekstit eivät tarkoituksetta leikkaudu `overflow`-määrityksellä, kun sivua zoomataan 200 %:lla 1280 x 1024 -kokoisessa näkymässä.",results:{I1:"Kohteita ei löytynyt.",W1:"Tarkista, etteivät tekstit tai niitä kehystävät elementit leikkaudu `overflow`-määrityksellä."}},"QW-ACT-R41":{name:"Virheilmoitus selittää virheen lomakekentän syötteessä.",description:"Tämä sääntö tarkastaa, että kun käyttäjä on syöttänyt lomakkeen kenttään virheellisen arvon tai antanut sen virheellisessä muodossa, saatu virheilmoitus kertoo virheen syyn tai miten sen voi korjata.",results:{I1:"Kohteita ei löytynyt.",W1:"Tarkista, että saatu virheilmoitus kertoo virheen syyn tai, miten sen voi korjata."}},"QW-ACT-R42":{name:"`Object`-elementillä on saavutettava nimi, joka ei ole tyhjä.",description:"Tämä sääntö tarkastaa, että jokaisella `object`-elementillä on saavutettava nimi, joka ei ole tyhjä.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on saavutettava nimi, joka ei ole tyhjä.",F1:"Kohteelta ei löydy saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R43":{name:"Vieritettävä elementti on käytettävissä näppäimistöllä",description:"Tämä sääntö tarkastaa, että vieritettäviä elementtejä voi vierittää pelkän näppäimistön avulla.",results:{I1:"Kohteita ei löytynyt.",P1:"Tämä vieritettävä osio sisältyy järjestyksessä kohdistamisella navigoitaviin sisältöihin.",F1:"Tämä vertikaalisesti tai horisontaalisesti vieritettävä osioelementti ei sisälly järjestyksessä kohdistamisella navigoitaviin sisältöihin eikä sisällä myöskään sellaisia alielementtejä."}},"QW-ACT-R44":{name:"Samassa yhteydessä sijaitsevilla linkeillä, joilla on sama saavutettava nimi, on sama käyttötarkoitusta.",description:"Tämä sääntö tarkastaa, että samassa yhteydessä sijaitsevat linkit, joilla sama saavutettava nimi, palauttavat saman tai vastaavan sisällön.",results:{I1:"Kohteita ei löytynyt.",P1:"Linkit, joilla on sama saavutettava nimi, viittaavaan samaan sisältöön.",W1:"Linkit, joilla on sama saavutettava nimi, viittaavat eri sisältöihin. Varmista, että nämä sisällöt ovat yhteneviä."}},"QW-ACT-R48":{name:"Koristeelliset elementit eivät näy saavutettavuuspuussa",description:"Tämä sääntö tarkastaa, että koristeellisiksi merkittyjä elementtejä ei ole sisällytetty saavutettavuuden sisältömalliin tai niillä on ainoastaan visualisoiva rooli.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohde ei sisälly saavutettavuuden sisältömalliin.",F1:"Kohde sisältyy saavutettavuuden sisältömalliin."}},"QW-ACT-R49":{name:"Ääni- tai videosisältö, joka käynnistyy automaattisesti, ei sisällä ääntä, joka kestää yli kolme (3) sekuntia",description:"Ääni- tai videosisältö, joka käynnistyy automaattisesti, ei tuota yli kolme (3) sekuntia kestävää ääntä.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen toisto kestää kolme (3) sekuntia tai vähemmän.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että kohteella on näkyvät toiminnot sen hallitsemiseksi."}},"QW-ACT-R50":{name:"Ääni- tai videosisällöllä, joka käynnistyy automaattisesti, on ohjausvälineet.",description:"Ääni- tai videosisällölle, joka käynnistyy automaattisesti, täytyy olla tarjolla toiminnallisuudet sen hallitsemiseksi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on näkyvät ohjausvälineet.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että kohteella on näkyvät toiminnot sen hallitsemiseksi."}},"QW-ACT-R51":{name:"Videon näkyvä sisältö on tekstin mediavastine",description:"Tämä sääntö tarkastaa, että pelkkää kuvaa sisältävä videotallenne on sivulla olevan tekstin mediavastine.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että videotallenteen sisältö vastaa tekstiä."}},"QW-ACT-R52":{name:"Ääntä sisältämättömän videon videosisällölle on kuvailutulkkauksen tekstitysraita",description:"Tämä sääntö tarkastaa, että ääntä sisältämättömien videotallenteiden kuvailutulkkauksen tekstitysraidat kuvailevat näkyvän sisällön.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että näkyvälle sisällölle on tarjolla saavutettava vaihtoehto."}},"QW-ACT-R53":{name:"Vain kuvaa sisältävälle videolle on tarjolla transkripti",description:"Ääntä sisältämättömän videotallenteen kaikki näkyvä tieto tulee löytyä transkriptista.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että näkyvälle sisällölle on tarjolla saavutettava vaihtoehto."}},"QW-ACT-R54":{name:"Vain kuvaa sisältävälle videotallenteelle on tarjolla vaihtoehto äänitallenteena",description:"Ääntä sisältämättömälle videotallenteelle täytyy löytyä vaihtoehto äänitallenteen muodossa.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että näkyvälle sisällölle on tarjolla saavutettava vaihtoehto."}},"QW-ACT-R55":{name:"Videon näkyvälle sisällölle on tarjolla kuvailutulkkaus",description:"Tämä sääntö tarkastaa, että videotallenteen kaikki näkyvä sisältö löytyy myös videon ääniraidalta.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Kohde-elementillä on ääniraita, mutta sen voimakkuuden todentaminen ei onnistunut. Tarkista, että kohteella on ääniraita, ja jos on, että se tarjoaa videon näkyvälle sisällölle saavutettavan vaihtoehdon."}},"QW-ACT-R56":{name:"Video on tekstin mediavastine",description:"Tämä sääntö tarkastaa, että videotallenne on sivulla olevan tekstin mediavastine.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Tarkista, että videotallenteen sisältö vastaa tekstiä."}},"QW-ACT-R57":{name:"Videon näkyvälle sisällölle on kuvailutulkkauksen tekstitysraita",description:"Tämä sääntö tarkastaa, että videotallenteiden kuvailutulkkauksen tekstitysraidat kuvailevat näkyvän sisällön.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Kohde-elementillä on ääniraita, mutta sen voimakkuuden todentaminen ei onnistunut. Tarkista, että kohteella on ääniraita, ja jos on, että se tarjoaa videon visuaaliselle sisällölle saavutettavan vaihtoehdon."}},"QW-ACT-R58":{name:"Äänitallenteelle on transkripti",description:"Äänitallenteille pitää olla tekstimuotoinen vaihtoehto, joka sisältää kaiken ääni-informaation.",results:{I1:"Kohteita ei löytynyt.",W1:"Tarkista, että kohteen ääniraidalle löytyy tekstimuotoinen vaihtoehto."}},"QW-ACT-R59":{name:"Äänitallenne on tekstin mediavastine",description:"Tämä sääntö tarkastaa, että äänitallenne on sivulla olevan tekstin mediavastine.",results:{I1:"Kohteita ei löytynyt.",W1:"Tarkista, että äänitallenteen sisältö vastaa tekstiä."}},"QW-ACT-R60":{name:"Videon äänisisällölle on tekstitys",description:"Tämä sääntö tarkastaa, että videotallenteen äänisisällölle on tarjolla tekstitys.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Kohde-elementillä on ääniraita, mutta sen voimakkuuden todentaminen ei onnistunut. Tarkista, että kohteella on ääniraita, ja jos on, että äänisisällölle on sitä vastaava tekstitys."}},"QW-ACT-R61":{name:"Video elementin ääni- ja kuvasisällölle on olemassa transkripti",description:"Tämä sääntö tarkastaa, että tallennetulle videosisällölle on transkripti, joka kattaa sen kaiken ääni- ja kuvasisällön.",results:{I1:"Kohteita ei löytynyt.",W1:"Tiedon saanti kohde-elementistä ei onnistunut.",W2:"Kohde-elementillä on ääniraita, mutta sen voimakkuuden todentaminen ei onnistunut. Tarkista, että kohteella on ääniraita ja transkripti. Jos on, tarkista, että transkripti kuvaa kaiken videolla olevan ääni- ja kuvasisällön."}},"QW-ACT-R62":{name:"Järjestyksessä kohdistettaviin sisältöihin kuuluvalla elementillä on näkyvä kohdistus",description:"Tämä sääntö tarkastaa, että jokaisella järjestyksessä kohdistettavalla elementillä on jokin näkyvä kohdistuksen osoitus.",results:{I1:"Kohteita ei löytynyt.",W1:"Tarkista, että elementillä on jokin näkyvä kohdistuksen osoitus."}},"QW-ACT-R63":{name:"Dokumentilla on maamerkki ei-toistuvalle sisällölle",description:"Tämä sääntö tarkastaa, että jokaisella sivulla on elementti, jonka semanttinen merkitys on olla maamerkki ei-toistuvalle sisällölle.",results:{I1:"Kohteita ei löytynyt.",P1:"Sivulla ei ole toistuvaa sisältöä.",W1:"Tarkista, että sivulla ei joko ole ei-toistuvaa sisältöä toistuvan sisällön jälkeen tai esiintyy elementti, joka täyttää seuraavat ehdot: elementillä on maamerkin semanttinen merkitys, elementin tulostusjärjestyksessä ensimmäinen havaittava alielementti on toistuvaa sisältöä seuraavaa ei-toistuvaa sisältöä ja elementti sisältyy saavutettavuuden sisältömalliin."}},"QW-ACT-R64":{name:"Dokumentilla on otsikko ei-toistuvalle sisällölle",description:"Tämä sääntö tarkastaa, että ei-toistuvalle sisällölle on otsikko.",results:{I1:"Kohteita ei löytynyt.",P1:"Sivulla ei ole toistuvaa sisältöä.",W1:"Tarkista, että sivulla ei joko ole ei-toistuvaa sisältöä toistuvan sisällön jälkeen tai esiintyy elementti, joka täyttää seuraavat ehdot: elementti on ei-toistuvaa sisältöä, joka sijaitsee toistuvan sisällön jälkeen; elementillä on otsikon semanttinen merkitys; elementti on näkyvissä ja elementti sisältyy saavutettavuuden sisältömalliin."}},"QW-ACT-R65":{name:"Elementeillä, jotka sisältävät vain visualisoivia alielementtejä, ei ole kohdistettavia sisältöjä",description:"Tämä sääntö tarkastaa, että elementit, joiden rooli tekee niiden alielementeistä vain visualisoivia, eivät sisällä kohdistettavia elementtejä.",results:{I1:"Kohteita ei löytynyt.",P1:"Elementillä ei ole tulostushierarkiassa alielementtejä, jotka olisivat järjestyksessä kohdistettavia.",F1:"Elementillä on tulostushierarkiassa alielementtejä, jotka ovat järjestyksessä kohdistettavia."}},"QW-ACT-R66":{name:"Valikon osalla on ei-tyhjä saavutettava nimi",description:"Tämä sääntö tarkastaa, että jokaisella elementillä, jolla on `menuitem`-rooli, on ei-tyhjä saavutettava nimi.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteella on ei-tyhjä saavutettava nimi.",F1:"Kohteella ei ole saavutettavaa nimeä tai se on tyhjä."}},"QW-ACT-R67":{name:"Tyylimäärityksissä kirjainten välistystä ei ole määritetty `!important`-säännöllä",description:"Tämä sääntö tarkastaa, että tyylimäärityksissä ei ole estetty kirjainten välityksen muokkaamista `!important`-säännöllä, paitsi jos `letter-spacing`-määreen arvo on vähintään 0,12 kertaa kirjaisimen koko.",results:{I1:"Kohteita ei löytynyt.",P1:"`Letter-spacing`-ominaisuudella ei ole `!important`-määrettä.",P2:"`Letter-spacing`-arvo on vähintään 0,12 kertaa kirjaisimen koko.",P3:"Elementille määräytynyt `letter-spacing`-arvo ei ole sama kuin elementille kirjattu arvo.",F1:"CSS-säännöt estävät `letter-spacing`-arvoa täyttämästä minimivaatimusta."}},"QW-ACT-R68":{name:"Tyylimäärityksissä rivin korkeutta ei ole määritetty `!important`-säännöllä",description:"Tämä sääntö tarkastaa, että tyylimäärityksissä ei ole estetty rivin korkeuden muokkaamista `!important`-säännöllä, paitsi jos rivikorkeus on vähintään 1,5 kertaa kirjaisimen koko.",results:{I1:"Kohteita ei löytynyt.",P1:"`Line-height`-ominaisuudella ei ole `!important`-määrettä.",P2:"`Line-height`-arvo on vähintään 1,5 kertaa kirjaisimen koko.",P3:"Elementille määräytynyt `line-height`-arvo ei ole sama kuin elementille kirjattu arvo.",F1:"CSS-säännöt estävät `line-height`-arvoa täyttämästä minimivaatimusta."}},"QW-ACT-R69":{name:"Tyylimäärityksissä sanojen välistystä ei ole määritetty `!important`-säännöllä",description:"Tämä sääntö tarkastaa, että tyylimäärityksissä ei ole estetty sanojen välistyksen muokkaamista `!important`-säännöllä, paitsi jos `word-spacing`-arvo on vähintään 0,16 kertaa kirjaisimen koko.",results:{I1:"Kohteita ei löytynyt.",P1:"`Word-spacing`-ominaisuudella ei ole `!important`-määrettä.",P2:"`Word-spacing`-arvo on vähintään 0,16 kertaa kirjaisimen koko.",P3:"Elementille määräytynyt `word-spacing`-arvo ei ole sama kuin elementille kirjattu arvo.",F1:"CSS-säännöt estävät `word-spacing`-arvoa täyttämästä minimivaatimusta."}},"QW-ACT-R70":{name:"`Iframe`, jolla on negatiivinen `tabindex`-attribuutti, ei sisällä interaktiivisia elementtejä",description:"Tämä sääntö tarkastaa, että `iframe`-elementti, jonka `tabindex`-attribuutilla on negatiivinen arvo, ei sisällä interaktiivisia elementtejä.",results:{I1:"Kohteita ei löytynyt.",P1:"Sisällytetty konteksti ei sisällä elementtejä, jotka olisivat näkyviä ja järjestyksessä kohdistettavia.",F1:"Sisällytetty konteksti sisältää elementtejä, jotka ovat näkyviä ja järjestyksessä kohdistettavia."}},"QW-ACT-R71":{name:"`Meta`-elementillä ei ole päivitysviivettä (ei poikkeusta)",description:"Tämä sääntö tarkastaa, että `meta`-elementtiä ei ole käytetty viivästettyyn uudelleenohjaukseen tai uudelleenlataukseen.",results:{I1:"Kohteita ei löytynyt.",P1:"Kohteen uudelleen lataaminen tai uudelleenohjaus tehdään välittömästi.",F1:"Kohde uudelleenladataan {seconds} sekunnin jälkeen.",F2:"Kohde uudelleenohjataan {seconds} sekunnin jälkeen."}},"QW-ACT-R72":{name:"Ensimmäinen kohdistettava elementti on linkki ei-toistuvaan sisältöön",description:"Tämä sääntö tarkastaa, että ensimmäinen kohdistettava elementti on linkki ei-toistuvaan sisältöön sivulla.",results:{I1:"Kohteita ei löytynyt.",W1:"Tarkista, että ensimmäisellä kohdistettavalla elementillä on saavutettava nimi, jonka antaa ymmärtää, että sen avulla ohitetaan sisältöjä.",W2:"Tarkista, että ensimmäinen kohdistettava elementti hyppää sivun pääsisältöön ja että sen saavutettava nimi antaa niin myös ymmärtää.",F1:"Ensimmäinen kohdistettava elementti ei ole näppäimistöltä käytettävissä.",F2:"Ensimmäinen kohdistettava elementti ei sisälly saavutettavuuden sisältömalliin.",F3:"Ensimmäinen kohdistettava elementti ei ole tyypiltään linkki.",F4:"Ensimmäinen kohdistettava elementti ei hyppää sivun pääsisältöön.",F5:"Sivulla ei ole kohdistettavia elementtejä."}},"QW-ACT-R73":{name:"Toistuvan sisällön lohko on kutistettava",description:"Tämä sääntö tarkastaa, että toistuvien sisältöjen lohkot ovat kutistettavia.",results:{I1:"Kohteita ei löytynyt.",P1:"Sivulla ei ole toistuvia sisältöjä.",W1:"Tarkista jokaisen toistuvan sisällön lohkosta, joka sijaitsee elementissä, jota tulostusjärjestyksessä seuraa vähintään yksi toistuvan sisällön jälkeinen ei-toistuvan sisällön elementti, että seuraavat ehdot täyttyvät: on toiminnallisuus, jolla poistaa kaikkien tämän lohkon osioiden näkyvyys, ja on toiminnallisuus, jolla poistaa nämä osiot saavutettavuuden sisältömallista."}},"QW-ACT-R74":{name:"Dokumentilla on mekanismi kohdistuksen siirtämiseksi ei-toistuvaan sisältöön",description:"Tämä sääntö tarkastaa, että on olemassa mekanismi kohdistuksen siirtämiseksi ei-toistuvaan sisältöön sivulla.",results:{I1:"Kohteita ei löytynyt.",P1:"Tällä sivulla ei ole toistuvaa sisältöä.",W1:"Sivulta löytyy yksi tai useampi toiminnallisuus kohdistuksen siirtämiseksi. Tarkista, että jotain näistä käytetään ennen toistuvan sisällön lohkoa ja että kohdistus siirtyy kohtaan juuri ennen ei-toistuvan sisällön lohkoa.",W2:"Tarkista, että sivulta löytyy vähintään yksi toiminnallisuus kohdistuksen siirtämiseksi. Tarkista, että jotain näistä käytetään ennen toistuvan sisällön lohkoa ja että kohdistus siirtyy kohtaan juuri ennen ei-toistuvan sisällön lohkoa."}},"QW-ACT-R75":{name:"Ohita toistuvan sisällön lohkot",description:"Tämä sääntö tarkastaa, että jokaisella sivulla on mekanismi toistuvan sisällön lohkojen ohittamiseen.",results:{I1:"Kohteita ei löytynyt.",P1:"Ehto täyttyi johtuen säännöstä ",W1:"Ehdon täyttymistä ei voida todentaa johtuen säännöstä ",F1:"Ehto ei täyttynyt johtuen säännöstä "}},"QW-ACT-R76":{name:"Teksti täyttää parannetun kontrastin vaatimukset",description:"Tämä sääntö tarkastaa, että jokaisen tekstissä esiintyvän kirjoitusmerkin suurin mahdollinen kontrasti taustaansa vasten täyttää parannetun kontrastin vaatimukset.",results:{I1:"Kohteita ei löytynyt.",P1:"Elementin kontrasti ylittää vähimmäisvaatimukset.",P2:"Elementin merkeillä ei esitetä tekstiä luonnollisella kielellä.",P3:"Elementin kontrasti taustan liukuvärin kanssa ylittää vähimmäisvaatimukset.",W1:"Elementillä on tekstin varjostus, joka vaatii manuaalista tarkistusta.",W2:"Elementin taustalla on kuva.",W3:"Elementillä taustalla on liukuväri, jota emme pysty todentamaan.",F1:"Elementin kontrasti ei täytä vähimmäisvaatimuksia.",F2:"Elementin kontrasti taustan liukuvärin kanssa ei täytä vähimmäisvaatimuksia."}},"QW-ACT-R77":{name:"ARIA required ID references exist",description:"This rule checks that every ID reference required by WAI-ARIA exists.",results:{I1:"No test targets found.",P1:"Referenced element exists.",F1:"Referenced element does not exist."}}}}},409:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(258),t),a(n(156),t),a(n(173),t),a(n(497),t),a(n(564),t)},173:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.nb=void 0,t.nb={"act-rules":{"QW-ACT-R1":{name:"HTML-side har en tittel",description:"Denne regelen sjekker at en HTML-side har en tittel.",results:{I1:"Ingen testobjekt funnet.",P1:"`title`-element eksisterer og er ikke tomt ('').",F1:"`title`-element eksisterer ikke.",F2:"`title`-element er tomt ('').",F3:"`title`-element er ikke i samme kontekst."}},"QW-ACT-R2":{name:"HTML har en lang-attributt",description:"Denne regelen sjekker at html-element ikke har et tomt lang- eller xml:lang-attributt.",results:{I1:"Ingen testobjekt funnet.",P1:"`lang`-attributtet finnes og har en verdi.",F1:"`lang`-attributtet finnes ikke eller er tomt ('')."}},"QW-ACT-R3":{name:"HTML lang og xml:lang er like",description:"Regelen sjekker at det for html-element er brukt samme verdi for primærspråk i ikke-tomme lang- og xml:lang-attributt, der begge disse attributtene er brukt.",results:{I1:"Ingen testobjekt funnet.",P1:"Attributtene `lang` og `xml:lang` har samme verdi.",F1:"Attributtene `lang` og `xml:lang` har ikke samme verdi."}},"QW-ACT-R4":{name:"Meta-refresh ingen forsinkelse",description:"Denne regelen sjekker at meta-element ikke brukes til forsinket omdirigering eller oppdatering.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet oppdateres/omdirigeres umiddelbart.",P2:"Testobjektet oppdateres/omdirigeres etter mer enn 20 timer.",F1:"Testobjektet oppdateres etter {seconds} sekunder.",F2:"Testobjektet omdirigeres etter {seconds} sekunder."}},"QW-ACT-R5":{name:"HTML lang-attributtet har gyldig innhold",description:"Denne regelen sjekker at lang- eller xml:lang-attributtet har en gyldig språkundertag.",results:{I1:"Ingen testobjekt funnet.",P1:"`lang`-attributtet har en gyldig verdi.",F1:"`lang`-attributtet har ikke en gyldig verdi."}},"QW-ACT-R6":{name:"Knapper kodet som bilde har et tilgjengelig navn",description:"Denne testregelen sjekker at knapper kodet som bilde har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Knapp kodet som bilde har et tilgjengelig navn.",F1:"Knapp kodet som bilde har ikke et tilgjengelig navn."}},"QW-ACT-R7":{name:"Visningsretning på nettsiden er ikke begrenset ved bruk av CSS-transformeringsegenskap",description:"Denne regelen sjekker at innhold på siden, ikke er begrenset til bare liggende eller stående visningsretning ved bruk av CSS-transformeringsegenskaper.",results:{I1:"Ingen testobjekt funnet.",P1:"En side der CSS-egenskaper ikke begrenser visningsretningen til verken stående eller liggende visningsretning.",F1:"En side der CSS-egenskaper begrenser visningsretningen til bare liggende visningsretning."}},"QW-ACT-R9":{name:"Lenker med identisk tilgjengelig navn har samme formål",description:"Denne regelen sjekker at lenker med identisk tilgjengelig navn har samme eller tilsvarende lenkemål.",results:{I1:"Ingen testobjekt funnet.",P1:"`Lenker` med samme tilgjengelige navn har samme lenkemål.",F1:"`Lenker` med samme tilgjengelige navn har ulikt lenkemål. Verifiser at lenkemålet er tilsvarende."}},"QW-ACT-R10":{name:"`iframe`-element med identisk tilgjengelige navn har tilsvarende formål",description:"Denne regelen sjekker at `iframe`-element med identiske tilgjengelige navn har samme innhold.",results:{I1:"Ingen testobjekt funnet.",P1:"`iframes` med samme tilgjengelige navn har likt innhold.",F1:"`iframes` med samme tilgjengelige navn har forskjellig innhold."}},"QW-ACT-R11":{name:"Knapper har et tilgjengelig navn",description:"Denne regelen sjekker at alle knapper kodet som button har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Knapp har et tilgjengelig navn.",F1:"Knapp mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R12":{name:"Lenker har et tilgjengelig navn",description:"Denne regelen sjekker at alle lenker har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Lenke med tilgjengelig navn.",F1:"Lenke mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R13":{name:"Element med `aria-hidden` inneholder ikke element som kan få fokus",description:"Denne regelen sjekker at element kodet med aria-aria-hidden-attributtet ikke inneholder element som kan få fokus.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet inneholder ikke element som kan få fokus.",P2:"Testobjektet kan ikke få fokus.",F1:"Testobjektet inneholder element som kan få fokus.",F2:"Testobjektet kan få fokus."}},"QW-ACT-R14":{name:"Bruk av meta viewport hindrer ikke zoom",description:"Denne regelen sjekker at bruk av meta-element beholder brukeragentens evne til å zoome.",results:{I1:"Ingen testobjekt funnet.",P1:"`meta` element med `name='viewport'` attributt definerer ikke verdiene `maximum-scale` og `user-scalable`.",P2:"`meta` element med `name='viewport'` attributt begrenser ikke brukeragentens evne til å zoome",F1:"`meta` element med `name='viewport'` attributt begrenser brukeragentens evne til å zoome ved bruk av user-scalable=no eller maximum-scale < 2."}},"QW-ACT-R15":{name:"Lyd eller video har ikke lyd som spilles av automatisk",description:"Denne regelen sjekker at automatisk avspilling av lyd ikke varer i mer enn 3 sekunder, eller at det finnes en kontrollmekanisme for å stoppe eller dempe lyd.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk samsvar basert på testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på testregelen ",F1:"Testobjektet feilet basert på testregelen "}},"QW-ACT-R16":{name:"Skjemaelement har et tilgjengelig navn",description:"Denne regelen sjekker at alle skjemaelement har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Skjemaelementet har et tilgjengelig navn.",F1:"Skjemaelementet mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R17":{name:"Bilder har et tilgjengelig navn",description:"Denne regelen sjekker at alle bilder som ikke er markert som dekorative, har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Bilde er markert som dekorativt.",P2:"Bilde har et tilgjengelig navn.",F1:"Bilde som ikke er markert som dekorativt mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R18":{name:"`id`-attributt har en unik verdi",description:"Denne regelen sjekker at alle id-attributt på en enkelt nettside er unike.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjekt har unik verdi på `id`-attributt.",F1:"Flere testobjekt har samme verdi på `id`-attributtet."}},"QW-ACT-R19":{name:"iframe-element har tilgjengelig navn",description:"Denne regelen sjekker at alle iframe-element har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"iframe-element har et tilgjengelig navn.",F1:"iframe-element mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R20":{name:"role-attributt har en gyldig verdi",description:"Denne regelen sjekker at alle role-attributt har en gyldig verdi.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med gyldig `role`-attributt.",F1:"Element med ugyldig `role`-attributt."}},"QW-ACT-R21":{name:"svg-element med en eksplisitt rolle har et tilgjengelig navn",description:"Denne regelen sjekker at alle SVG-element som er eksplisitt inkludert i accessibility tree har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"svg-element som er inkludert i accessibility tree har et tilgjengelig navn.",F1:"svg-element som er inkludert i accessibility tree mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R22":{name:"lang-attributt har en gyldig språkkode",description:"Denne regelen sjekker at alle ikke-tomme lang-attributt for et element på nettsiden har en gyldig språkkode.",results:{I1:"Ingen testobjekt funnet.",P1:"Element har `lang`-attributt med gyldig språkkode.",F1:"Element har `lang`-attributt med ugyldig språkkode."}},"QW-ACT-R23":{name:"Visuelt innhold i video med lyd er synstolket eller har et tekstalternativ.",description:"Denne regelen sjekker at alle video-element med lyd har et alternativ for det visuelle innholdet i form av lyd eller tekst.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk samsvar basert på testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på testregelen ",F1:"Testobjektet feilet basert på testregelen "}},"QW-ACT-R24":{name:"autocomplete-attributt har en gyldig verdi",description:"Denne regelen sjekker at alle HTML autocomplete-attributt har en gyldig verdi.",results:{I1:"Ingen testobjekt funnet.",P1:"Element har `autocomplete`-attributt med gyldig verdi.",F1:"Element har `autocomplete`-attributt med ugyldig verdi."}},"QW-ACT-R25":{name:"ARIA tilstander og egenskaper er gyldige",description:"Denne regelen sjekker at WAI-ARIA tilstander og egenskaper er gyldige for elementet de er spesifisert på.",results:{I1:"Ingen testobjekt funnet.",P1:"`{attr}` egenskapen er gyldig for eller arvet av `role` {role}.",F1:"`{attr}` egenskapen er hverken arvet eller gyldig for `role` {role}."}},"QW-ACT-R26":{name:"Video med lyd har et tilgjengelig alternativ",description:"Denne regelen sjekker at video-element med lyd enten er tekstet eller har et tekstalternativ til lyden.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk resultatet samsvar basert på resultatet fra testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på resultatet fra testregelen ",F1:"Testobjektet fikk resultatet feilet basert på resultatet fra testregelen "}},"QW-ACT-R27":{name:"aria-* attributt er definert i WAI-ARIA",description:"Denne regelen sjekker at alle aria-* attributt som er brukt er definert i ARIA 1.1.",results:{I1:"Ingen testobjekt funnet.",P1:"Alle aria-* attributt brukt i element er definert i ARIA 1.1.",F1:"En eller flere aria-* attributt er ikke definert i ARIA 1.1."}},"QW-ACT-R28":{name:"Element med role-attributt har nødvendige tilstander og egenskaper",description:"Denne regelen sjekker at element som har en eksplisitt rolle også spesifiserer alle nødvendige tilstander og egenskaper.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med eksplisitt rolle har alle nødvendige tilstander og egenskaper.",P2:"Element med eksplisitt rolle, der den definerte rollen ikke har obligatorisk tilstander eller egenskaper.",F1:"Element med eksplisitt rolle mangler nødvendige tilstander eller egenskaper."}},"QW-ACT-R29":{name:"Lydklipp har et tekstalternativ",description:"Denne regelen sjekker at lydklipp har et tekstalternativ.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk samsvar basert på testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på testregelen ",F1:"Testobjektet feilet basert på testregelen "}},"QW-ACT-R30":{name:"Synlig ledetekst er del av tilgjengelig navn",description:"Denne regelen sjekker at alle interaktive element med synlig ledetekst også har denne som del av sitt tilgjengelige navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med visuell ledetekst har et tilgjengelig navn som er identisk med eller inneholder den visuelle ledeteksten.",F1:"Element med visuell ledetekst mangler et tilgjengelig navn.",F2:"Element med visuell ledetekst har et tilgjengelig navn som ikke inneholder den visuelle ledeteksten."}},"QW-ACT-R31":{name:"Video uten lyd har et tilgjengelig alternativ",description:"Denne regelen sjekker at video-element uten lyd har et tilgjengelig alternativ.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk samsvar basert på testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på testregelen ",F1:"Testobjektet feilet basert på testregelen "}},"QW-ACT-R32":{name:"Video med lyd er synstolket",description:"Denne regelen sjekker at video-element med lyd er synstolket.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk samsvar basert på testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på testregelen ",F1:"Testobjektet feilet basert på testregelen "}},"QW-ACT-R33":{name:"ARIA påkrevd kontekst-rolle",description:"Denne regelen sjekker at element med en eksplisitt semantisk rolle finnes inni sin påkrevde kontekst.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med en eksplisitt semantisk rolle har overordnet element der påkrevd `role` finnes.",F1:"Element med en eksplisitt semantisk rolle har overordnet element der påkrevd `role` mangler."}},"QW-ACT-R34":{name:"ARIA tilstander og egenskaper har gyldig verdi",description:"Denne regelen sjekker at alle ARIA tilstander og egenskaper har en gyldig verdi.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med `{attr}`-attributtet har en gyldig verdi.",F1:"Element med `{attr}`-attributtet har en ugyldig verdi."}},"QW-ACT-R35":{name:"Overskrifter har et tilgjengelig navn",description:"Denne regelen sjekker at alle HTML-element med semantisk rolle overskrift har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"HTML-element med semantisk rolle overskrift har et tilgjengelig navn.",F1:"HTML-element med semantisk rolle overskrift mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R36":{name:"Overskrifts-attributt i tabeller har gyldig referanse",description:"Denne regelen sjekker at overskrift-attributt på en celle i en tabell refererer til andre celler i samme tabell-element og at disse har en semantisk rolle som kolonne eller radoverskrift.",results:{I1:"Ingen testobjekt funnet.",P1:"Alle overskrifts-attributt refererer til en celle i samme tabell med semantisk rolle som kolonne- eller radoverskrift.",F1:"Overskrifts-attributtet `{attr}` refererer til en id som ikke finnes i samme tabell.",F2:"Overskrifts-attributtet `{attr}` refererer til et element i samme tabell som mangler semantisk rolle som kolonne- eller radoverskrift."}},"QW-ACT-R37":{name:"Kontrast mellom tekst og bakgrunn (minimum)",description:"Denne regelen sjekker at element med tekst oppfyller minstekravet til kontrast mellom tekst og bakgrunn.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med målt kontrast over minstekravet.",P2:"Element har ikke tekst på et menneskelig språk.",P3:"Element har en gradient med kontrast over minstekravet.",W1:"Element har tekst-skygge som må verifiseres manuelt.",W2:"Element har bilde som bakgrunn.",W3:"Element har en gradient som ikke kan verifiseres automatisk.",F1:"Element har målt kontrast under minstekravet.",F2:"Element har en gradient med målt kontrast under minstekravet."}},"QW-ACT-R38":{name:"ARIA påkrevde element finnes",description:"Denne regelen sjekker at element med en eksplisitt semantisk rolle eier minst ett av sine påkrevde element.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med en eksplisitt semantisk rolle eier bare element med gyldig rolle.",F1:"Element med en eksplisitt semantisk rolle eier element som ikke har gyldig rolle."}},"QW-ACT-R39":{name:"Alle overskriftceller i en tabell er tilknyttet dataceller",description:"Denne regelen sjekker at alle overskriftsceller i en tabell er koblet til minst en datacelle i samme table-element",results:{I1:"Ingen testobjekt funnet.",P1:"Overskriftcelle er koblet til minst en datacelle.",F1:"Overskriftcelle mangler kobling til en datacelle."}},"QW-ACT-R40":{name:"CSS-overflow fører ikke til tap av innhold ved zooming.",description:"Denne regelen sjekker at bruk av CSS-overflow på tekst-elementer ikke fører til tap av innhold når siden blir zoomet inn med 200% på en 1280 x 1024 piksel stor viewport.",results:{I1:"Ingen testobjekt funnet.",W1:"Sjekk at tekst-element og underliggende element ikke mister innhold som følger av overflow."}},"QW-ACT-R41":{name:"Feilmeldinger i skjema er beskrivende",description:"Denne regelen sjekker at det blir gitt beskrivende feilmeldinger i skjemaelement når en bruker oppgir en verdi som er ugyldig eller i feil format.",results:{I1:"Ingen testobjekt funnet.",W1:"Sjekk at feilmeldingen identifiser årsaken til feilen eller beskriver hvordan feilen kan rettes."}},"QW-ACT-R42":{name:"object-element har et tilgjengelig navn",description:"Denne regelen sjekker at alle `object`-element har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"object-element har et tilgjengelig navn.",F1:"object-element mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R43":{name:"Element som skroller kan betjenes med tastatur",description:"Denne regelen sjekker at element som skroller kan betjenes med tastatur.",results:{I1:"Ingen testobjekt funnet.",P1:"Element som skroller kan få fokus med tastatur.",F1:"Element som skroller inkludert underordna element får ikke fokus med tastatur."}},"QW-ACT-R44":{name:"Lenker med samme tilgjengelige navn går til samme eller tilsvarende lenkemål.",description:"Denne regelen sjekker at lenker med samme tilgjengelige navn går til samme eller tilsvarende lenkemål.",results:{I1:"Ingen testobjekt funnet.",P1:"Lenker med samme tilgjengelige navn har samme lenkemål.",W1:"Lenker med samme tilgjengelige navn har forskjellig lenkemål. Verifiser at lenkemålet er tilsvarende."}},"QW-ACT-R48":{name:"Element markert som dekorative er ikke er del av accessibility tree",description:"Denne regelen sjekker at element markert som dekorative, ikke er del av accessibility tree.",results:{I1:"Ingen testobjekt funnet.",P1:"Element markert som dekorativt er ikke del av accessibility tree.",F1:"Element markert som dekorativt er en del av accessibility tree."}},"QW-ACT-R49":{name:"Lyd eller video som spilles av automatisk har ikke lyd som varer mer enn 3 sekunder",description:"Denne regelen sjekker at lyd eller video som spilles av automatisk, ikke har lyd som varer mer enn 3 sekunder.",results:{I1:"Ingen testobjekt funnet.",P1:"Lyd/video som spilles av automatisk har en avspillingstid på 3 sekunder eller mindre.",W1:"Kan ikke samle inn data fra element med lyd eller video.",W2:"Sjekk om lyd/video som spilles av automatisk har en synlig kontrollmekanisme."}},"QW-ACT-R50":{name:"Lyd eller video som spilles av automatisk har en kontrollmekanisme.",description:"Denne regelen sjekker at lyd eller video som spilles av automatisk har en synlig kontrollmekanisme.",results:{I1:"Ingen testobjekt funnet.",P1:"Lyd/video som spilles av automatisk har en synlig kontrollmekanisme.",W1:"Kan ikke samle inn data fra element med lyd eller video.",W2:"Sjekk om lyd/video som spilles av automatisk har en synlig kontrollmekanisme."}},"QW-ACT-R51":{name:"Video uten lyd er et mediealternativ til tekst",description:"Denne regelen sjekker at forhåndsinnspilt video uten lyd er et mediealternativ for tekst på siden.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data om video-element.",W2:"Sjekk at innholdet i videoen gjengir informasjonen i teksten."}},"QW-ACT-R52":{name:"Video uten lyd har et beskrivende track-element",description:"Denne regelen sjekker at forhåndsinnspilt video-element uten lyd inneholder et track-element som gjengir innholdet i videoen.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Sjekk at innholdet i videoens track-element gjengir innholdet i videoen."}},"QW-ACT-R53":{name:"Video uten lyd har har tekstalternativ",description:"Denne regelen sjekker at forhåndsinnspilt video uten lyd har et tekstalternativ som gjengir innholdet i videoen.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Sjekk at videoen har et tekstalternativ som gjengir innholdet i videoen."}},"QW-ACT-R54":{name:"Video uten lyd har et alternativt lydspor",description:"Denne regelen sjekker at forhåndsinnspilt video uten lyd har et lyd-alternativ.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Sjekk at videoen har minst et lyd-alternativ som gjengir innholdet i videoen."}},"QW-ACT-R55":{name:"Forhåndsinnspilt video er synstolka",description:"Denne regelen sjekker at forhåndsinnspilt video er synstolka.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Videoen har et lydspor, men vi kan ikke verifisere lydstyrken. Sjekk at lydsporet inneholder lyd og at det gjengir det visuelle innholdet i videoen."}},"QW-ACT-R56":{name:"Video er et mediealternativ for tekst.",description:"Denne regelen sjekker at forhåndsinnspilt video er et mediealternativ for tekst på siden.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Sjekk at innholdet i videoen gjengir informasjonen i teksten."}},"QW-ACT-R57":{name:"Video med lyd har et beskrivende track-element",description:"Denne regelen sjekker at forhåndsinnspilt video med lyd har et track-element gjengir innholdet i videoen.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Videoen har et lydspor, men vi kan ikke verifisere lydstyrken. Sjekk at videoen har lyd og at innholdet i track-element gjengir det visuelle innholdet i videoen."}},"QW-ACT-R58":{name:"Lydklipp har tekstalternativ",description:"Denne regelen sjekker at forhåndsinnspilt lydklipp har et tekstalternativ som gjengir innholdet i lydklippet.",results:{I1:"Ingen testobjekt funnet.",W1:"Sjekk at tekstalternativet gjengir innholdet i lydklippet."}},"QW-ACT-R59":{name:"Lydklipp er et mediealternativ for tekst",description:"Denne regelen sjekker at lydklipp er et mediealternativ til tekst på siden.",results:{I1:"Ingen testobjekt funnet.",W1:"Sjekk at innholdet i lydklippet gjengir innholdet i teksten"}},"QW-ACT-R60":{name:"Video med lyd er teksta",description:"Denne regelen sjekker at forhåndsinnspilt video med lyd er teksta.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Videoen har et lydspor, men vi kan ikke verifisere lydstyrken. Sjekk at videoen har lyd og at det finnes teksting som formidler innholdet i videoens lydspor."}},"QW-ACT-R61":{name:"Video har et tekstalternativ",description:"Denne regelen sjekket at forhåndsinnspilt video med lyd har et tekstalternativ.",results:{I1:"Ingen testobjekt funnet.",W1:"Kan ikke samle inn data fra video-element.",W2:"Videoen har et lydspor, men vi kan ikke verifisere lydstyrken. Sjekk at videoen har lyd og at det finnes et tekstalternativ som gjengir innholdet i videoen."}},"QW-ACT-R62":{name:"Element som kan nås med tastatur har visuell fokusmarkering",description:"Denne regelen sjekker at alle element som kan nås med tastaturet har visuell fokusmarkering.",results:{I1:"Ingen testobjekt funnet.",W1:"Sjekk at element har visuell fokusmarkering"}},"QW-ACT-R63":{name:"Dokument har et landemerke med ikke-gjentatt innhold",description:"Denne regelen sjekker at hver side inneholder et element med semantisk rolle som landmerke og som starter med ikke-gjentatt innhold.",results:{I1:"Ingen testobjekt funnet.",P1:"Siden har ikke gjentatt innhold.",W1:"Sjekk at det ikke finnes gjentatt innhold som etterfølges av ikke-gjentatt innhold. Dersom ja sjekk om det eksisterer et element der følgende betingelser er oppfylt: - element har en semantisk rolle som arver fra landemerke; og - det første synlige innholdet (in tree order in the flat tree) som er en inkluderende etterkommer av element er ikke-gjentatt innhold etter gjentatt innhold; og - element er inkludert i accessibility tree."}},"QW-ACT-R64":{name:"Dokument har overskrift for ikke-gjentatt innhold",description:"Denne regelen sjekker at ikke-gjentatt innhold på nettsider inneholder en overskrift.",results:{I1:"Ingen testobjekt funnet.",P1:"Siden har ikke gjentatt innhold.",W1:"Sjekk at det ikke finnes gjentatt innhold som etterfølges av ikke-gjentatt innhold. Dersom ja, sjekk om det eksisterer et element der følgende betingelser er oppfylt: - element er ikke-gjentatt innhold etter gjentatt innhold. - element har en semantisk rolle som overskrift. - element er visuelt synlig - element er inkludert i accessibility tree."}},"QW-ACT-R65":{name:"Element ment for presentasjon får ikke fokus",description:"Denne regelen sjekker at element med en rolle som gjør at alle underordna element er ment for presentasjon ikke inneholder element som kan få fokus.",results:{I1:"Ingen testobjekt funnet.",P1:"Element har ingen underordna element som kan få fokus.",F1:"Element har underordna element som kan få fokus."}},"QW-ACT-R66":{name:"Element med rolle som menuitem har et tilgjengelig navn",description:"Denne regelen sjekker at element med en rolle som menuitem har et tilgjengelig navn.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med rolle som menuitem har et tilgjengelig navn.",F1:"Element med rolle som menuitem mangler et tilgjengelig navn eller det er tomt ('')."}},"QW-ACT-R67":{name:"Bokstavavstand i style-attributt bruker ikke !important",description:"Denne regelen sjekker at style-attributtet angir en bokstavavstand (letter-spacing) på minst minst 0,12 ganger skriftstørrelsen eller at det ikke er brukt !important for å hindre justering av bokstavavstanden.",results:{I1:"Ingen testobjekt funnet.",P1:"Element der letter-spacing i style-attributtet ikke er satt til !important.",P2:"Element der letter-spacing i style-attributtet er satt til 0.12 ganger skriftstørrelsen eller mer.",P3:"Element der letter-spacing er satt i stilarket.",F1:"Element der letter-spacing i style-attributtet er satt slik at det hindrer at bokstavavstanden kan bli høyere enn 0.12 ganger skriftstørrelsen."}},"QW-ACT-R68":{name:"Linjehøyde i style-attributt bruker ikke !important",description:"Denne regelen sjekker om style-attributtet enten angir en linjehøyde (line-height) på minst 1.5 ganger skriftsstørelse eller at at det ikke er brukt !important for å hindre justering av linjehøyden.",results:{I1:"Ingen testobjekt funnet.",P1:"Element der line-height i style-attributtet ikke er satt til !important.",P2:"Element der line-height er satt til 1.5 ganger skriftstørrelsen eller mer.",P3:"Element der line-height er satt i stilarket.",F1:"Element der line-height i style-attributtet er satt slik at det hindrer at linjehøyden kan bli høyere enn 1.5 ganger skriftstørrelsen."}},"QW-ACT-R69":{name:"Ordavstand i style-attributt bruker ikke !important",description:"Denne regelen sjekker om style-attributtet angir en ordavstand (word-spacing) for å hindre justering av ordavstand ved å bruke !important, med mindre verdien er minst 0.16 ganger skriftstørrelsen.",results:{I1:"Ingen testobjekt funnet.",P1:"Element der word-spacing i style-attributtet ikke er satt til !important.",P2:"Element der word-spacing i style-attributtet er satt til 0.16 ganger skriftstørrelsen eller mer.",P3:"Element der word-spacing er satt i stilarket.",F1:"Element der word-spacing i style-attributtet er satt slik at det hindrer at ordavstanden kan bli høyere enn 0.16 ganger skriftstørrelsen."}},"QW-ACT-R70":{name:"iframe-element med negativ tabindex har ingen interaktive elementer.",description:"Denne regelen sjekker om `iframe`-element med en negativ `tabindex`-attributtverdi inneholder interaktive elementer.",results:{I1:"Ingen testobjekt funnet.",P1:"iframe-element med negativ tabindex inneholder ikke elementer som er synlige eller kan få fokus.",F1:"iframe-element med negativ tabindex inneholder elementer som er synlige eller kan få fokus."}},"QW-ACT-R71":{name:"`meta`-element har ingen oppdateringsforsinkelse (ingen unntak)",description:"Denne regelen sjekker om meta-element blir brukt for forsinket omdirigering eller oppdatering av en nettside.",results:{I1:"Ingen testobjekt funnet.",P1:"Nettsiden oppdaterer/omdirigerer umiddelbart.",F1:"Nettsiden oppdaterer seg etter {seconds} sekunder.",F2:"Nettsiden omdirigerer etter {seconds} sekunder."}},"QW-ACT-R72":{name:"Første fokuserbare element på nettsiden er en lenke til ikke-gjentatt innhold.",description:"Denne regelen sjekker om første fokuserbare element på nettsiden er en lenke til ikke-gjentatt innhold.",results:{I1:"Ingen testobjekt funnet.",W1:"Sjekk at første fokuserbare element har et tilgjengelig navn som formidler at det hopper over innhold.",W2:"Sjekk at første fokuserbare element lenker til sidens hovedinnhold og at det tilgjengelige navnet formidler dette.",F1:"Første fokuserbare element kan ikke aktiveres med tastaturet.",F2:"Første fokuserbare element er ikke i accessibility tree.",F3:"Første fokuserbare element har ikke rolle som lenke.",F4:"Første fokuserbare element lenker ikke til hovedinnholdet.",F5:"Siden har ingen element som kan få fokus."}},"QW-ACT-R73":{name:"Blokker med gjentatt innhold kan foldes sammen",description:"Denne regelen sjekker at blokker med gjentatt innhold kan foldes sammen.",results:{I1:"Ingen testobjekt funnet.",P1:"Siden har ikke gjentatt innhold.",W1:"For hver blokk med gjentatt innhold som er plassert (in the flat tree) før minst én node med ikke-gjentatt innhold etter gjentatt innhold, sjekk at det finnes en mekanisme for å gjøre alle noder i denne blokken usynlige både visuelt og i accessibility tree."}},"QW-ACT-R74":{name:"Siden har en mekanisme for å flytte fokus til ikke-gjentatt innhold",description:"Denne regelen sjekker om det finnes en mekanisme for å flytte fokus til ikke-gjentatt innhold på siden.",results:{I1:"Ingen testobjekt funnet.",P1:"Siden har ikke gjentatt innhold.",W1:"Siden har en eller flere mekanismer for å flytte fokus. Sjekk om noen av disse mekanismene blir brukt før en blokk med gjentatt innhold, og om fokus blir flyttet til rett før en blokk med ikke-gjentatt innhold."}},"QW-ACT-R75":{name:"Hopp over blokker med gjenntatt innhold",description:"Denne regelen sjekker at hver side har en mekanisme for å hoppe over blokker med gjentatt innhold.",results:{I1:"Ingen testobjekt funnet.",P1:"Testobjektet fikk samsvar basert på testregelen ",W1:"Testobjektet kunne ikke verifiseres basert på testregelen ",F1:"Testobjektet feilet basert på testregelen "}},"QW-ACT-R76":{name:"Kontrast mellom tekst og bakgrunn (forbedret)",description:"Denne regelen sjekker at element med tekst oppfyller kravet til forbedret kontrast.",results:{I1:"Ingen testobjekt funnet.",P1:"Element med målt kontrast over minstekravet (forbedret).",P2:"Element har ikke tekst på et menneskelig språk.",P3:"Element har en gradient med kontrast over minstekravet (forbedret).",W1:"Element har tekst-skygge som må verifiseres manuelt.",W2:"Element har bilde som bakgrunn.",W3:"Element har en gradient som ikke kan verifiseres automatisk.",F1:"Element har målt kontrast under minstekravet (forbedret).",F2:"Element har en gradient med målt kontrast under minstekravet (forbedret)."}},"QW-ACT-R77":{name:"ARIA required ID references exist",description:"This rule checks that every ID reference required by WAI-ARIA exists.",results:{I1:"No test targets found.",P1:"Referenced element exists.",F1:"Referenced element does not exist."}}}}},497:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.nn=void 0,t.nn={"act-rules":{"QW-ACT-R1":{name:"HTML-side har ein tittel",description:"Denne regelen sjekkar at ei HTML-side har ein tittel.",results:{I1:"Testobjekt ikkje funne.",P1:"`title`-element eksisterer og er ikkje tomt ('').",F1:"`title`-element eksisterer ikkje.",F2:"`title`-element er tomt ('').",F3:"`title`-element er ikkje i same kontekst."}},"QW-ACT-R2":{name:"HTML har eit lang-attributt",description:"Denne regelen sjekkar at html-element ikkje har eit tomt lang- eller xml:lang-attributt.",results:{I1:"Testobjekt ikkje funne.",P1:"`lang`-attributtet finst og har ein verdi.",F1:"`lang`-attributtet finst ikkje eller er tomt ('')."}},"QW-ACT-R3":{name:"HTML lang og xml:lang er like",description:"Regelen sjekkar at det for html-element er brukt same verdi for primærspråk i ikkje-tomme lang- og xml:lang-attributt, der begge desse attributta er brukt.",results:{I1:"Testobjekt ikkje funne.",P1:"Attributta `lang` og `xml:lang` har same verdi.",F1:"Attributta `lang` og `xml:lang` har ikkje same verdi."}},"QW-ACT-R4":{name:"Meta-refresh er ikkje forsinka",description:"Denne regelen sjekkar at meta-element ikkje blir brukt til forsinka omdirigering eller oppdatering.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet blir oppdatert/omdirigert med ein gong.",P2:"Testobjektet blir oppdatert/omdirigert etter meir enn 20 timar.",F1:"Testobjektet blir oppdatert etter {seconds} sekund.",F2:"Testobjektet blir omdirigert etter {seconds} sekund."}},"QW-ACT-R5":{name:"HTML lang-attributtet har gyldig innhald",description:"Denne regelen sjekkar at lang- eller xml:lang-attributtet har ein gyldig språkundertag.",results:{I1:"Testobjekt ikkje funne.",P1:"`lang`-attributtet har ein gyldig verdi.",F1:"`lang`-attributtet har ikkje ein gyldig verdi."}},"QW-ACT-R6":{name:"Knappar koda som bilde har eit tilgjengeleg namn",description:"Denne testregelen sjekkar at knappar koda som bilde har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Knapp koda som bilde har eit tilgjengeleg namn.",F1:"Knapp koda som bilde har ikkje eit tilgjengeleg namn."}},"QW-ACT-R7":{name:"Visningsretning på nettsida er ikkje avgrensa med bruk av CSS-transformeringseigenskap",description:"Denne regelen sjekkar at innhald på sida, ikkje er avgrensa til berre liggande eller ståande visningsretning med bruk av CSS-transformeringseigenskapar.",results:{I1:"Testobjekt ikkje funne.",P1:"Ei side der CSS-eigenskapar ikkje avgrensar visningsretninga til anten ståande eller liggande visningsretning.",F1:"Ei side der CSS-eigenskapar avgrensar visningsretninga til berre liggande visningsretning."}},"QW-ACT-R9":{name:"Lenker med identisk tilgjengeleg namn har same formål",description:"Denne regelen sjekkar at lenker med identisk tilgjengeleg namn har same eller tilsvarande lenkemål.",results:{I1:"Testobjekt ikkje funne.",P1:"`Lenker` med same tilgjengeleg namn har same lenkemål.",F1:"`Lenker` med same tilgjengeleg namn har ulikt lenkemål. Verifiser at lenkemålet er tilsvarande."}},"QW-ACT-R10":{name:"`iframe`-element med identisk tilgjengeleg namn har tilsvarande formål",description:"Denne regelen sjekkar at `iframe`-element med identisk tilgjengeleg namn har same innhald.",results:{I1:"Testobjekt ikkje funne.",P1:"`iframes` med same tilgjengeleg namn har likt innhald.",F1:"`iframes` med same tilgjengeleg namn har forskjellig innhald."}},"QW-ACT-R11":{name:"Knappar har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle knappar koda som button har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Knapp har eit tilgjengeleg namn.",F1:"Knapp manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R12":{name:"Lenker har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle lenker har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Lenke med tilgjengeleg namn.",F1:"Lenke manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R13":{name:"Element med `aria-hidden` inneheld ikkje element som kan få fokus",description:"Denne regelen sjekkar at element koda med aria-aria-hidden-attributtet ikkje inneheld element som kan få fokus.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet inneheld ikkje element som kan få fokus.",P2:"Testobjektet kan ikkje få fokus.",F1:"Testobjektet inneheld element som kan få fokus.",F2:"Testobjektet kan få fokus."}},"QW-ACT-R14":{name:"Bruk av meta viewport hindrar ikkje zoom",description:"Denne regelen sjekkar at bruk av meta-element beheld brukeragenten si evne til å zoome.",results:{I1:"Testobjekt ikkje funne.",P1:"`meta` element med `name='viewport'` attributt definerer ikkje verdiane `maximum-scale` og `user-scalable`.",P2:"`meta` element med `name='viewport'` attributt avgrenser ikkje brukeragenten si evne til å zoome",F1:"`meta` element med `name='viewport'` attributt avgrenser brukeragenten si evne til å zoome med bruk av user-scalable=no eller maximum-scale < 2."}},"QW-ACT-R15":{name:"Lyd eller video har ikkje lyd som blir spelt av automatisk",description:"Denne regelen sjekkar at automatisk avspeling av lyd ikkje varer i meir enn 3 sekund, eller at det finst en kontrollmekanisme for å stoppa eller dempa lyd.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet fekk samsvar basert på testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på testregelen ",F1:"Testobjektet feila basert på testregelen "}},"QW-ACT-R16":{name:"Skjemaelement har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle skjemaelement har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Skjemaelementet har eit tilgjengeleg namn.",F1:"Skjemaelementet manglar et tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R17":{name:"Bilde har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle bilde som ikkje er markert som dekorative, har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Bilde er markert som dekorativt.",P2:"Bilde har et tilgjengeleg namn.",F1:"Bilde som ikkje er markert som dekorativt manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R18":{name:"`id`-attributt har ein unik verdi",description:"Denne regelen sjekkar at alle id-attributt på ei enkelt nettside er unike.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjekt har unik verdi på `id`-attributt.",F1:"Flere testobjekt har same verdi på `id`-attributt."}},"QW-ACT-R19":{name:"iframe-element har tilgjengeleg namn",description:"Denne regelen sjekkar at alle iframe-element har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"iframe-element har eit tilgjengeleg namn.",F1:"iframe-element manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R20":{name:"role-attributt har ein gyldig verdi",description:"Denne regelen sjekkar at alle role-attributt har ein gyldig verdi.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med gyldig `role`-attributt.",F1:"Element med ugyldig `role`-attributt."}},"QW-ACT-R21":{name:"svg-element med en eksplisitt rolle har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle SVG-element som er eksplisitt inkludert i accessibility tree har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"svg-element som er inkludert i accessibility tree har eit tilgjengeleg namn.",F1:"svg-element som er inkludert i accessibility tree manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R22":{name:"lang-attributt har ein gyldig språkkode",description:"Denne regelen sjekkar at alle lang-attributt, som ikkje er tome, for eit element på nettsida har ein gyldig språkkode.",results:{I1:"Testobjekt ikkje funne.",P1:"Element har `lang`-attributt med gyldig språkkode.",F1:"Element har `lang`-attributt med ugyldig språkkode."}},"QW-ACT-R23":{name:"Visuelt innhald i video med lyd er synstolka eller har eit tekstalternativ",description:"Denne regelen sjekkar at alle video-element med lyd har eit alternativ for det visuelle innhaldet i form av lyd eller tekst.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet fekk samsvar basert på testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på testregelen ",F1:"Testobjektet feila basert på testregelen "}},"QW-ACT-R24":{name:"autocomplete-attributt har ein gyldig verdi",description:"Denne regelen sjekkar at alle HTML autocomplete-attributt har ein gyldig verdi.",results:{I1:"Testobjekt ikkje funne.",P1:"Element har `autocomplete`-attributt med gyldig verdi.",F1:"Element har `autocomplete`-attributt med ugyldig verdi."}},"QW-ACT-R25":{name:"ARIA tilstandar og eigenskapar er gyldige",description:"Denne regelen sjekkar at WAI-ARIA tilstandar og eigenskapar er gyldige for elementet dei er spesifisert på.",results:{I1:"Testobjekt ikkje funne.",P1:"`{attr}` eigenskapen er gyldig for eller arva av `role` {role}.",F1:"`{attr}` eigenskapen er verken arva av eller gyldig for `role` {role}."}},"QW-ACT-R26":{name:"Video med lyd har eit tilgjengeleg alternativ",description:"Denne regelen sjekkar at video-element med lyd anten er teksta eller har eit tekstalternativ til lyden.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet fekk resultatet samsvar basert på resultatet frå testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på resultatet frå testregelen ",F1:"Testobjektet fekk resultatet feila basert på resultatet frå testregelen "}},"QW-ACT-R27":{name:"aria-* attributt er definert i WAI-ARIA",description:"Denne regelen sjekkar at alle aria-* attributt som er brukt er definert i ARIA 1.1.",results:{I1:"Testobjekt ikkje funne.",P1:"Alle aria-* attributt brukt i element er definert i ARIA 1.1.",F1:"En eller flere aria-* attributt er ikkje definert i ARIA 1.1."}},"QW-ACT-R28":{name:"Element med role-attributt har nødvendige tilstandar og eigenskapar",description:"Denne regelen sjekkar at element som har ei eksplisitt rolle òg spesifiserer alle nødvendige tilstandar og eigenskapar.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med eksplisitt rolle har alle nødvendige tilstandar og eigenskapar.",P2:"Element med eksplisitt rolle, der den definerte rolla ikkje har obligatorisk tilstand eller eigenskap.",F1:"Element med eksplisitt rolle manglar nødvendige tilstandar eller eigenskapar."}},"QW-ACT-R29":{name:"Lydklipp har eit tekstalternativ",description:"Denne regelen sjekkar at lydklipp har eit tekstalternativ.",results:{I1:"Testobjekt ikkje funnet.",P1:"Testobjektet fekk samsvar basert på testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på testregelen ",F1:"Testobjektet feila basert på testregelen "}},"QW-ACT-R30":{name:"Synleg ledetekst er del av tilgjengeleg namn",description:"Denne regelen sjekkar at alle interaktive element, med synleg ledetekst, òg har denne som del av sitt tilgjengelege namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med visuell ledetekst har eit tilgjengeleg namn som er identisk med eller inneheld den visuelle ledeteksten.",F1:"Element med visuell ledetekst manglar eit tilgjengeleg namn.",F2:"Element med visuell ledetekst har eit tilgjengeleg namn som ikkje er inneheld den visuelle ledeteksten."}},"QW-ACT-R31":{name:"Video utan lyd har eit tilgjengeleg alternativ",description:"Denne regelen sjekkar at video-element utan lyd har eit tilgjengeleg alternativ.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet fekk samsvar basert på testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på testregelen ",F1:"Testobjektet feila basert på testregelen "}},"QW-ACT-R32":{name:"Video med lyd er synstolka",description:"Denne regelen sjekkar at video-element med lyd er synstolka.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet fekk samsvar basert på testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på testregelen ",F1:"Testobjektet feila basert på testregelen "}},"QW-ACT-R33":{name:"ARIA påkravd kontekst-rolle",description:"Denne regelen sjekkar at element med ei eksplisitt semantisk rolle finst i sin påkrevde kontekst.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med en eksplisitt semantisk rolle har overordna element der påkravd `role` finst.",F1:"Element med en eksplisitt semantisk rolle har overordna element der påkravd `role` manglar."}},"QW-ACT-R34":{name:"ARIA tilstandar og eigenskapar har gyldig verdi",description:"Denne regelen sjekkar at alle ARIA tilstandar og eigenskapar har ein gyldig verdi.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med `{attr}`-attributtet har en gyldig verdi.",F1:"Element med `{attr}`-attributtet har en ugyldig verdi."}},"QW-ACT-R35":{name:"Overskrifter har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle HTML-element med semantisk rolle overskrift har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"HTML-element med semantisk rolle overskrift har eit tilgjengeleg namn.",F1:"HTML-element med semantisk rolle overskrift manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R36":{name:"Overskrifts-attributt i tabellar har gyldig referanse",description:"Denne regelen sjekkar at overskrift-attributt på ei celle i ein tabell refererer til andre celler i same tabell-element, og at desse har ei semantisk rolle som kolonne eller radoverskrift.",results:{I1:"Testobjekt ikkje funne.",P1:"Alle overskrifts-attributt refererer til ei celle i same tabell med semantisk rolle som kolonne- eller radoverskrift.",F1:"Overskrifts-attributtet `{attr}` refererer til ein id som ikkje finst i same tabell.",F2:"Overskrifts-attributtet `{attr}` refererer til eit element i same tabell som manglar semantisk rolle som kolonne- eller radoverskrift."}},"QW-ACT-R37":{name:"Kontrast mellom tekst og bakgrunn (minimum)",description:"Denne regelen sjekkar at element med tekst oppfyller minstekravet til kontrast mellom tekst og bakgrunn.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med målt kontrast over minstekravet.",P2:"Element har ikkje tekst på eit menneskeleg språk.",P3:"Element har ein gradient med kontrast over minstekravet.",W1:"Element har tekst-skygge som må bli verifisert manuelt.",W2:"Element har bilde som bakgrunn.",W3:"Element har ein gradient som ikkje kan bli verifisert automatisk.",F1:"Element har målt kontrast under minstekravet.",F2:"Element har ein gradient med målt kontrast under minstekravet."}},"QW-ACT-R38":{name:"ARIA påkrevde element finst",description:"Denne regelen sjekkar at element med en eksplisitt semantisk rolle eig minst eitt av sine påkravde element.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med en eksplisitt semantisk rolle eig berre element med gyldig rolle.",F1:"Element med en eksplisitt semantisk rolle eig element som ikkje har gyldig rolle."}},"QW-ACT-R39":{name:"Alle overskriftceller i ein tabell er knytt til dataceller",description:"Denne regelen sjekkar at alle overskriftsceller i ein tabell er kobla til minst ei datacelle i same table-element",results:{I1:"Testobjekt ikkje funne.",P1:"Overskriftcelle er kobla til minst ei datacelle.",F1:"Overskriftcelle manglar kobling til ei datacelle."}},"QW-ACT-R40":{name:"CSS-overflow fører ikkje til tap av innhald ved zooming",description:"Denne regelen sjekkar at bruk av CSS-overflow på tekst-element ikkje fører til tap av innhald når sida blir zooma inn med 200% på ein 1280 x 1024 piksel stor viewport.",results:{I1:"Testobjekt ikkje funne.",W1:"Sjekk at tekst-element og underliggande element ikkje mistar innhald som følge av overflow."}},"QW-ACT-R41":{name:"Feilmeldingar i skjema er beskrivande",description:"Denne regelen sjekkar at det blir gitt beskrivande feilmeldingar i skjemaelement når ein brukar skriv ein verdi som er ugyldig eller i feil format.",results:{I1:"Testobjekt ikkje funne.",W1:"Sjekk at feilmeldinga identifiser årsaka til feilen eller beskriv korleis feilen kan bli retta."}},"QW-ACT-R42":{name:"object-element har eit tilgjengeleg namn",description:"Denne regelen sjekkar at alle `object`-element har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"object-element har eit tilgjengeleg namn.",F1:"object-element manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R43":{name:"Element som skrollar kan betenast med tastatur",description:"Denne regelen sjekkar at element som skrollar kan betenast med tastatur.",results:{I1:"Testobjekt ikkje funne.",P1:"Element som skrollar kan få fokus med tastatur.",F1:"Element som skrollar inkludert underordna element får ikkje fokus med tastatur."}},"QW-ACT-R44":{name:"Lenker med same tilgjengelege namn går til same eller tilsvarande lenkemål",description:"Denne regelen sjekkar at lenker med same tilgjengelege namn går til same eller tilsvarande lenkemål.",results:{I1:"Testobjekt ikkje funne.",P1:"Lenker med same tilgjengelege namn har same lenkemål.",W1:"Lenker med same tilgjengelege namn har forskjellig lenkemål. Verifiser at lenkemålet er tilsvarande."}},"QW-ACT-R48":{name:"Element markert som dekorative er ikkje del av accessibility tree",description:"Denne regelen sjekkar at element markert som dekorative, ikkje er del av accessibility tree.",results:{I1:"Testobjekt ikkje funne.",P1:"Element markert som dekorativt, er ikkje del av accessibility tree.",F1:"Element markert som dekorativt, er del av accessibility tree."}},"QW-ACT-R49":{name:"Lyd eller video som blir spelt av automatisk, har ikkje lyd som varer meir enn 3 sekund",description:"Denne regelen sjekkar at lyd eller video som blir spelt av automatisk, ikkje har lyd som varer meir enn 3 sekund.",results:{I1:"Testobjekt ikkje funne.",P1:"Lyd/video som blir spelt av automatisk har ei avspelingstid på 3 sekund eller mindre.",W1:"Kan ikkje samle inn data frå element med lyd eller video.",W2:"Sjekk om lyd/video som blir spelt av automatisk har ein synleg kontrollmekanisme."}},"QW-ACT-R50":{name:"Lyd eller video som blir spelt av automatisk, har ein kontrollmekanisme",description:"Denne regelen sjekkar at lyd eller video som blir spelt av automatisk, har ein synleg kontrollmekanisme.",results:{I1:"Testobjekt ikkje funne.",P1:"Lyd/video som blir spelt av automatisk, har ein synleg kontrollmekanisme.",W1:"Kan ikkje samle inn data frå element med lyd eller video.",W2:"Sjekk om lyd/video som blir spelt av automatisk, har ein synleg kontrollmekanisme."}},"QW-ACT-R51":{name:"Video utan lyd er eit mediealternativ til tekst",description:"Denne regelen sjekkar at førehandsinnspelt video utan lyd er eit mediealternativ for tekst på sida.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data om video-element.",W2:"Sjekk at innhaldet i videoen gjengir informasjonen i teksten."}},"QW-ACT-R52":{name:"Video utan lyd har eit beskrivande track-element",description:"Denne regelen sjekkar at førehandsinnspelt video-element utan lyd inneheld eit track-element som gjengir innhaldet i videoen.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Sjekk at innhaldet i videoen sitt track-element gjengir innhaldet i videoen."}},"QW-ACT-R53":{name:"Video utan lyd har tekstalternativ",description:"Denne regelen sjekkar at førehandsinnspelt video utan lyd har eit tekstalternativ som gjengir innhaldet i videoen.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Sjekk at videoen har eit tekstalternativ som gjengir innhaldet i videoen."}},"QW-ACT-R54":{name:"Video utan lyd har eit alternativt lydspor",description:"Denne regelen sjekkar at førehandsinnspelt video utan lyd har eit lyd-alternativ.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Sjekk at videoen har minst eit lyd-alternativ som gjengir innhaldet i videoen."}},"QW-ACT-R55":{name:"Førehandsinnspelt video er synstolka",description:"Denne regelen sjekkar at førehandsinnspelt video er synstolka.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Videoen har eit lydspor, men vi kan ikkje verifisere lydstyrken. Sjekk at lydsporet inneheld lyd og at det gjengir det visuelle innhaldet i videoen."}},"QW-ACT-R56":{name:"Video er eit mediealternativ for tekst",description:"Denne regelen sjekkar at førehandsinnspelt video er eit mediealternativ for tekst på sida.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Sjekk at innhaldet i videoen gjengir informasjonen i teksten."}},"QW-ACT-R57":{name:"Video med lyd har eit beskrivande track-element",description:"Denne regelen sjekkar at førehandsinnspelt video med lyd har eit track-element gjengir innhaldet i videoen.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Videoen har eit lydspor, men vi kan ikkje verifisere lydstyrken. Sjekk at videoen har lyd og at innhaldet i track-element gjengir det visuelle innhaldet i videoen."}},"QW-ACT-R58":{name:"Lydklipp har tekstalternativ",description:"Denne regelen sjekkar at førehandsinnspelt lydklipp har eit tekstalternativ som gjengir innhaldet i lydklippet.",results:{I1:"Testobjekt ikkje funne.",W1:"Sjekk at tekstalternativet gjengir innhaldet i lydklippet."}},"QW-ACT-R59":{name:"Lydklipp er eit mediealternativ for tekst",description:"Denne regelen sjekkar at lydklipp er eit mediealternativ til tekst på sida.",results:{I1:"Testobjekt ikkje funne.",W1:"Sjekk at innhaldet i lydklippet gjengir innhaldet i teksten."}},"QW-ACT-R60":{name:"Video med lyd er teksta",description:"Denne regelen sjekkar at førehandsinnspelt video med lyd er teksta.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Videoen har eit lydspor, men vi kan ikkje verifisere lydstyrken. Sjekk at videoen har lyd og at det finst teksting som formidlar innhaldet i videoen sitt lydspor."}},"QW-ACT-R61":{name:"Video har eit tekstalternativ",description:"Denne regelen sjekkar at førehandsinnspelt video med lyd har eit tekstalternativ.",results:{I1:"Testobjekt ikkje funne.",W1:"Kan ikkje samla inn data frå video-element.",W2:"Videoen har eit lydspor, men vi kan ikkje verifisere lydstyrken. Sjekk at videoen har lyd og at det finst eit tekstalternativ som gjengir innhaldet i videoen."}},"QW-ACT-R62":{name:"Element som kan nåast med tastatur har visuell fokusmarkering",description:"Denne regelen sjekkar at alle element som kan nåast med tastaturet har visuell fokusmarkering.",results:{I1:"Testobjekt ikkje funne.",W1:"Sjekk at element har visuell fokusmarkering."}},"QW-ACT-R63":{name:"Dokument har eit landemerke med ikkje-gjenteke innhald",description:"Denne regelen sjekkar at kvar side inneheld eit element med semantisk rolle som landmerke og som startar med ikkje-gjenteke innhald.",results:{I1:"Testobjekt ikkje funne.",P1:"Sida har ikkje gjenteke innhald.",W1:"Sjekk at det ikkje finst gjenteke innhald som blir følgt av ikkje-gjenteke innhald. Dersom ja sjekk om det eksisterer eit element der følgande føresetnader er oppfylt: - element har ei semantisk rolle som arver frå landemerket; og - det første synlege innhaldet (in tree order in the flat tree) som er ein inkludert etterkomar av element er ikkje-gjenteke innhald etter gjenteke innhald; og - element er inkludert i accessibility tree."}},"QW-ACT-R64":{name:"Dokument har overskrift for ikkje-gjenteke innhald",description:"Denne regelen sjekkar at ikkje-gjenteke innhald på nettsider inneheld ei overskrift.",results:{I1:"Testobjekt ikkje funne.",P1:"Sida har ikkje gjenteke innhald.",W1:"Sjekk at det ikkje finst gjenteke innhald som blir følgt av ikkje-gjenteke innhald. Dersom ja sjekk om det eksisterer eit element der følgende føresetnader er oppfylt: - element har ei semantisk rolle som overskrift. - element er visuelt synleg - element er inkludert i accessibility tree."}},"QW-ACT-R65":{name:"Element meint for presentasjon får ikkje fokus",description:"Denne regelen sjekkar at element med ei rolle som gjer at alle underordna element er meint for presentasjon ikkje inneheld element som kan få fokus.",results:{I1:"Testobjekt ikkje funne.",P1:"Element har ingen underordna element som kan få fokus.",F1:"Element har underordna element som kan få fokus."}},"QW-ACT-R66":{name:"Element med rolle som menuitem har eit tilgjengeleg namn",description:"Denne regelen sjekkar at element med rolle som menuitem har eit tilgjengeleg namn.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med rolle som menuitem har eit tilgjengeleg namn.",F1:"Element med rolle som menuitem manglar eit tilgjengeleg namn eller det er tomt ('')."}},"QW-ACT-R67":{name:"Bokstavavstand i style-attributt brukar ikkje !important",description:"Denne regelen sjekkar at style-attributtet gir ei bokstavavstand(letter-spacing) på minst 0,12 gonger skriftstørrelsen eller at det ikkje er brukt !important for å hindra justering av bokstavavstand.",results:{I1:"Testobjekt ikkje funne.",P1:"Element der letter-spacing i style-attributtet ikkje er sett til !important.",P2:"Element der letter-spacing i style-attributtet er sett til 0.12 ganger skriftstørrelsen eller meir.",P3:"Element der letter-spacing er sett i stilarket.",F1:"Element der letter-spacing i style-attributtet er sett slik at det hindrar at bokstavavstand kan bli høgare enn 0.12 gonger skriftstørrelsen."}},"QW-ACT-R68":{name:"Linjehøgde i style-attributt brukar ikkje !important",description:"Denne regelen sjekkar om style-attributtet anten gir ei linjehøgde (line-height) på minst 1.5 ganger skriftsstørelse eller at at det ikkje er brukt !important for å hindra justering av linjehøgda.",results:{I1:"Testobjekt ikkje funne.",P1:"Element der line-height i style-attributtet ikkje er sett til !important.",P2:"Element der line-height er sett til 1.5 gonger skriftstørrelsen eller meir.",P3:"Element der line-height er sett i stilarket.",F1:"Element der line-height i style-attributtet er satt slik at det hindrar at linjehøgda kan blir høgare enn 1.5 gonger skriftstørrelsen."}},"QW-ACT-R69":{name:"Ordavstand i style-attributt brukar ikkje !important",description:"Denne regelen sjekkar om style-attributtet gir ei ordavstand (word-spacing) for å hindra justering av ordavstand ved å bruke !important, med mindre verdien er minst 0.16 gonger skriftstørrelsen.",results:{I1:"Testobjekt ikkje funne.",P1:"Element der word-spacing i style-attributtet ikkje er sett til !important.",P2:"Element der word-spacing i style-attributtet er sett til 0.16 gonger skriftstørrelsen eller meir.",P3:"Element der word-spacing er sett i stilarket.",F1:"Element der word-spacing i style-attributtet er sett slik at det hindrar at ordavstanden kan bli høgare enn 0.16 gonger skriftstørrelsen."}},"QW-ACT-R70":{name:"iframe-element med negativ tabindex har ingen interaktive element",description:"Denne regelen sjekkar om `iframe`-element med ein negativ `tabindex`-attributtverdi inneheld interaktive element.",results:{I1:"Testobjekt ikkje funne.",P1:"iframe-element med negativ tabindex inneheld ikkje element som er synlege eller kan få fokus.",F1:"iframe-element med negativ tabindex inneheld element som er synlege eller kan få fokus."}},"QW-ACT-R71":{name:"`meta`-element har ingen oppdateringsforsinkelse (ingen unntak)",description:"Denne regelen sjekkar om meta-element blir brukt for forsinka omdirigering eller oppdatering av ei nettside.",results:{I1:"Testobjekt ikkje funne.",P1:"Nettsida oppdaterer/omdirigerer umiddelbart.",F1:"Nettsida oppdaterer seg etter {seconds} sekund.",F2:"Nettsida omdirigerer etter {seconds} sekund."}},"QW-ACT-R72":{name:"Første fokuserbare element på nettsida er ei lenke til ikkje-gjenteke innhald",description:"Denne regelen sjekkar om første fokuserbare element på nettsia er ei lenke til ikkje-gjenteke innhald.",results:{I1:"Testobjekt ikkje funne.",W1:"Sjekk at første fokuserbare element har eit tilgjengeleg namn som formidlar at det hoppar over innhald.",W2:"Sjekk at første fokuserbare element lenker til hovudinnhaldet på sida og at det tilgjengelege namnet formidlar dette.",F1:"Første fokuserbare element kan ikkje bli aktivert med tastaturet.",F2:"Første fokuserbare element er ikkje i accessibility tree.",F3:"Første fokuserbare element har ikkje rolle som lenke.",F4:"Første fokuserbare element lenker ikkje til hovudinnhaldet.",F5:"Sida har ingen element som kan få fokus."}},"QW-ACT-R73":{name:"Blokker med gjenteke innhald kan bli folda saman",description:"Denne regelen sjekkar at blokker med gjenteke innhald kan bli folda saman.",results:{I1:"Testobjekt ikkje funne.",P1:"Sida har ikkje gjenteke innhald.",W1:"For kvar blokk med gjenteke innhald som er plassert (in the flat tree) før minst éin node med ikkje-gjenteke innhald etter gjenteke innhald, sjekk at det finst ein mekanisme for å gjera alle noder i denne blokka usynlege både visuelt og i accessibility tree."}},"QW-ACT-R74":{name:"Sida har ein mekanisme for å flytta fokus til ikkje-gjenteke innhald",description:"Denne regelen sjekkar om det finst ein mekanisme for å flytta fokus til ikkje-gjenteke innhald på sida.",results:{I1:"Testobjekt ikkje funne.",P1:"Sida har ikkje gjenteke innhald.",W1:"Sida har ein eller fleire mekanismar for å flytta fokus. Sjekk om nokon av mekanismane blir brukt før ei blokk med gjenteke innhald, og om fokus blir flytta til rett før ei blokk med ikkje-gjenteke innhald."}},"QW-ACT-R75":{name:"Hopp over blokker med gjenteke innhald",description:"Denne regelen sjekkar at kvar side har ein mekanisme for å hoppa over blokker med gjenteke innhald.",results:{I1:"Testobjekt ikkje funne.",P1:"Testobjektet fekk samsvar basert på testregelen ",W1:"Testobjektet kunne ikkje bli verifisert basert på testregelen ",F1:"Testobjektet feila basert på testregelen "}},"QW-ACT-R76":{name:"Kontrast mellom tekst og bakgrunn (forbedra)",description:"Denne regelen sjekkar at element med tekst oppfyller kravet til forbedra kontrast.",results:{I1:"Testobjekt ikkje funne.",P1:"Element med målt kontrast over minstekravet (forbedra).",P2:"Element har ikkje tekst på et menneskeleg språk.",P3:"Element har ein gradient med kontrast over minstekravet (forbedra).",W1:"Element har tekst-skygge som må bli verifisert manuelt.",W2:"Element har bilde som bakgrunn.",W3:"Element har ein gradient som ikkje kan bli verifisert automatisk.",F1:"Element har målt kontrast under minstekravet (forbedra).",F2:"Element har ein gradient med målt kontrast under minstekravet (forbedra)."}},"QW-ACT-R77":{name:"ARIA-påkravde ID-referansar finst",description:"Denne regelen sjekkar at kvar ID-referanse som blir kravd av WAI-ARIA, finst.",results:{I1:"Testobjekt ikkje funne.",P1:"Det refererte elementet finst.",F1:"Det refererte elementet eksisterer ikkje."}}}}},564:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.sv=void 0,t.sv={"act-rules":{"QW-ACT-R1":{name:"På HTML-sidan finns en rubrik",description:"Denna regel kontrollerar att HTML-sidan har ett `title`-element.",results:{I1:"Inga objekt hittades.",P1:"`Title`-elementet hittas och är inte tomt.",F1:"`Title`-elementet hittas inte.",F2:"`Title`-elementet är tomt.",F3:"`Title`-elementet som hittats är inte sidans rubrik."}},"QW-ACT-R2":{name:"`Html`-elementet innehåller attributet `lang`",description:"TDenna regel kontrollerar att elementet `html` har ett `lang`- eller `xml:lang`-attribut som inte är tomt.",results:{I1:"Inga objekt hittades.",P1:"`Lang`-attributet hittades och ett värde har fastställts för det.",F1:"`Lang`-attributet hittats inte eller är tomt."}},"QW-ACT-R3":{name:"HTML-elementets `lang` och `xml:lang` motsvarar varandra",description:"Denna regel kontrollerar om elementet `html` innehåller både `lang` och `xml:lang`-attribut och de inte är tomma, att deras värden motsvarar varandra.",results:{I1:"Inga objekt hittades.",P1:"Attributen `lang` och `xml:lang’ har samma värde.",F1:"Attributen `lang’ och `xml:lang’ motsvarar inte varandra."}},"QW-ACT-R4":{name:"Ingen fördröjning vid omladdning av elementet `meta`",description:"Denna regel kontrollerar att elementet `meta’ inte har använts för fördröjd omdirigering eller omladdning.",results:{I1:"Inga objekt hittades.",P1:"Objektet laddas om eller omdirigeras omedelbart.",P2:"Objektet laddas om eller omdirigeras efter mer än 20 timmar.",F1:"Objektet laddas om efter {seconds} sekunder.",F2:"Objektet omdirigeras efter {seconds} sekunder."}},"QW-ACT-R5":{name:"Dugligheten för `html`-elementets `lang`-attribut",description:"Denna regel kontrollerar att attributet `lang` eller `xml:lang` har en godkänd språkkod.",results:{I1:"Inga objekt hittades.",P1:"`Lang`-attributet innehåller en godkänd språkkod.",F1:"`Lang`-attributet innehåller ingen godkänd språkkod."}},"QW-ACT-R6":{name:"Knappar i form av bilder har ett tillgängligt namn",description:"Denna regel kontrollerar att varje knapp som är i form av en bild har ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn."}},"QW-ACT-R7":{name:"Positioneringen på sidan är inte begränsad med CSS:s `transform`-regel",description:"Denna regel kontrollerar att sidans innehåll inte är begränsat till horisontellt eller vertikalt läge med CSS:s `transform`-regel.",results:{I1:"Inga objekt hittades.",P1:"Funktionen `rotateZ` i CSS:s `transform`-regel på sidan används tillsammans med `orientation`-villkoret på ett sätt som inte begränsar elementet vertikalt eller horisontellt till visningssättet.",F1:"Funktionen `rotate` i CSS:s `transform`-regel på sidan används tillsammans med `orientation`-villkoret på ett sätt som begränsar elementet vertikalt eller horisontellt till visningssättet."}},"QW-ACT-R9":{name:"Länkar med samma tillgängliga namn har också samma betydelse",description:"Denna regel kontrollerar att länkar med samma tillgängliga namn leder till samma eller motsvarande innehåll.",results:{I1:"Inga objekt hittades.",P1:"Länkar med samma tillgängliga namn leder till samma innehåll.",F1:"Länkar med samma tillgängliga namn leder till olika innehåll. Kontrollera att innehållen motsvarar varandra."}},"QW-ACT-R10":{name:"`Iframe`-element med samma tillgängliga namn har också samma syfte",description:"Denna regel kontrollerar att `iframe`-element med samma tillgängliga namn används samma eller motsvarande innehåll vid inbäddning.",results:{I1:"Inga objekt hittades.",P1:"`Iframe`-element med samma tillgängliga namn har samma innehåll.",F1:"`Iframe`-element med samma tillgängliga namn har olika innehåll."}},"QW-ACT-R11":{name:"Knappen har ett tillgängligt namn",description:"Denna regel kontrollerar att varje knapp-element har ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R12":{name:"Länken har ett tillgängligt namn",description:"Denna regel kontrollerar att varje länk har ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R13":{name:"Element för vilka attributet `aria-hidden` har definierats har inget fokuserat innehåll",description:"Denna regel kontrollerar att element med attributet `aria-hidden` inte innehåller underelement som kan ställas i fokus.",results:{I1:"Inga objekt hittades.",P1:"Objektets underelement kan inte ställas i fokus.",P2:"Objektet kan inte fokuseras.",F1:"Objektet har underelement som ställas i fokus.",F2:"Objektet kan ställas i fokus."}},"QW-ACT-R14":{name:"`Meta viewport’ förhindrar inte zoomning",description:"Denna regel kontrollerar att `meta`-elementet bibehåller webbläsarens zoomfunktion.",results:{I1:"Inga objekt hittades.",P1:"`Meta`-element med `name=viewport`-attribut definierar inte värdena `maximum-scale` eller `user-scalable`.",P2:"Ett `meta`-element med attribut `name=viewport` gör det möjligt att använda webbläsarens zoomfunktion.",F1:"Ett `meta`-element med attribut `name=viewport` tar bort möjligheten att zooma i webbläsaren med hjälp av definitionerna `user-scalable=no` eller `maximum-scale< 2`."}},"QW-ACT-R15":{name:"Ljud- eller videoinnehåll innehåller inte ljud som spelas upp automatiskt",description:"Denna regel kontrollerar att den automatiska uppspelningen av ljudinnehållet inte varar längre än tre (3) sekunder, eller att det finns en mekanism för att stoppa eller dämpa ljudinnehållet.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R16":{name:"Blankettelementet har ett tillgängligt namn",description:"Blankettelementet har ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R17":{name:"Bilden har ett tillgängligt namn",description:"Denna regel kontrollerar att alla bilder som inte är märkta som dekorativa måste ha ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Målet är dekorativt.",P2:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn."}},"QW-ACT-R18":{name:"`Id`-attributets värde är unikt",description:"Denna regel kontrollerar att varje `id`-attribut på samma sida har ett unikt värde.",results:{I1:"Inga objekt hittades.",P1:"Värdet för objektets `id`-attributet är unikt",F1:"Flera element har samma värde för `id`-attributet."}},"QW-ACT-R19":{name:"`Iframe`-elementet har ett tillgängligt namn",description:"Denna regel kontrollerar att varje `iframe`-elementet har ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R20":{name:"`Role`-attributet har ett tillåtet värde",description:"Denna regel kontrollerar att varje `role`-attribut har ett tillåtet värde.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillåtet värde i `role`-attributet.",F1:"Värdet för objektets `role`-attribut är felaktigt."}},"QW-ACT-R21":{name:"`Svg `-element med en explicit roll ska ha ett tillgängligt namn",description:"Denna regel kontrollerar att varje bild i formatet `svg’, som explicit har inkluderats i innehållsmodellen för tillgänglighet, har ett tillgängligt namn.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn.",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R22":{name:"Värde för `lang`-attributet för element inom `body` element är tillåtet.",description:"Denna regel kontrollerar att attributet `lang` för element inom sidans `body` innehåller en godkänd språkkod.",results:{I1:"Inga objekt hittades.",P1:"Objektets `lang`-attribut innehåller en godkänd språkkod.",F1:"Språkkoden för objektets `lang`-attribut är felaktig."}},"QW-ACT-R23":{name:"Det synliga innehållet i videon måste ges ett tillgängligt alternativ",description:"Denna regel kontrollerar att det i videor som innehåller ljud finns ett alternativ till visuellt innehåll även i ljud- eller textform.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R24":{name:"`Autocomplete`-attributet har ett tillåtet värde",description:"Denna regel kontrollerar att HTML:s attribut `autocomplete` har ett tillåtet värde.",results:{I1:"Inga objekt hittades.",P1:"Objektets `autocomplete`-attribut har ett tillåtet värde",F1:"Värdet för objektets `autocomplete`-attribut är felaktigt."}},"QW-ACT-R25":{name:"Det är tillåtet att använda ARIA-läget eller -egenskapen.",description:"Denna regel kontrollerar att WAI-ARIA-lägen och -egenskaper har använts endast i tillåtna element.",results:{I1:"Inga objekt hittades.",P1:"`{attr}`-egenskapen stöds eller hämtas från rollen `{role}`.",F1:"`{attr}`-egenskapen har varken hämtats från eller stöds för rollen `{role}`."}},"QW-ACT-R26":{name:"Videons ljudinnehåll har ett tillgängligt alternativ",description:"Denna regel kontrollerar att det finns ett alternativt sätt att återge videons ljudinnehåll.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R27":{name:"Attributet ARIA finns i WAI-ARIA-dokumentationen",description:"Denna regel kontrollerar att varje aria-*`-attribut som används har definierats i WAI-ARIA 1.1-dokumentationen.",results:{I1:"Inga objekt hittades.",P1:"Alla attribut som förekommer i elementet och börjar med `aria` ingår i WAI-ARIA 1.1-definitionerna.",F1:"Ett eller flera attribut som börjar med `aria` ingår inte i WAI-ARIA 1.1-definitionerna."}},"QW-ACT-R28":{name:"Ett element för vilket ett `role`-attribut har definierats har också de statusar och egenskaper som krävs",description:"Denna regel kontrollerar att element för vilka ett `role`-attribut har definierats också har tilldelats alla statusar och egenskaper som krävs i samband med `role`-attributet i fråga.",results:{I1:"Inga objekt hittades.",P1:"Alla obligatoriska attribut för objektelementet har angetts.",P2:"Objektelementets `role`-attribut innehåller inga obligatoriska status- eller egenskapsdefinitioner.",F1:"Objektets element saknar de status- eller egenskapsdefinitioner som krävs."}},"QW-ACT-R29":{name:"Ljudelementets innehåll kan också fås som text",description:"Denna regel kontrollerar om det finns ett textalternativ till innehåll som endast består av ljud.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R30":{name:"Elementets synliga namn är en del av dess tillgängliga namn",description:"Denna regel kontrollerar att det är det visuellt synliga namnet som är en del av det tillgängliga namnet för interaktiva element.",results:{I1:"Inga objekt hittades.",P1:"Objektets synliga text motsvarar helt och hållet eller är en del av dess tillgängliga namn.",F1:"Objektet har inte ett tillgängligt namn.",F2:"Objektets synliga text motsvarar inte det tillgängliga namnet och är inte en del av det."}},"QW-ACT-R31":{name:"Det synliga innehållet i en ljudlös video måste ges ett tillgängligt alternativ",description:"Denna regel kontrollerar att datainnehållet i en video som saknar ljudinnehåll också finns tillgängligt i alternativ form.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R32":{name:"Det synliga innehållet i videon måste ges ett tillgängligt alternativ",description:"Denna regel kontrollerar att videor som innehåller ljud även innehåller syntolkning.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R33":{name:"ARIA:s obligatoriska roll i kontexten",description:"Denna regel kontrollerar att ett element som har en explicit semantisk roll finns i den kontext som denna roll förutsätter.",results:{I1:"Inga objekt hittades.",P1:"Objektets moderelement har den roll som kontexten kräver.",F1:"Objektets moderelement har inte den roll som kontexten kräver."}},"QW-ACT-R34":{name:"ARIA-statusen eller -egenskap har ett tillåtet värde",description:"Denna regel kontrollerar att varje angiven ARIA-status och -egenskap har ett tillåtet värde.",results:{I1:"Inga objekt hittades.",P1:"Objektets `{attr}`-attribut har ett tillåtet värde",F1:"Värdet för objektets `{attr}`-attribut är felaktigt."}},"QW-ACT-R35":{name:"Rubriken har ett tillgängligt namn",description:"Denna regel gäller alla HTML-element som till sin semantiska betydelse definieras som rubriker och som ingår i innehållsmodellen för tillgänglighet.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn som inte är tomt.",F1:"Objektet har inte ett tillgängligt namn eller är tomt (``)."}},"QW-ACT-R36":{name:"Cellens `headers`-attribut avser en cell i samma tabellelement.",description:"Denna regel kontrollerar att cellens `headers`-attribut avser en cell i samma tabell som är av semantisk betydelse för kolumnens eller radens rubrik.",results:{I1:"Inga objekt hittades.",P1:"Alla värden i attributet `headers` hänvisar till rubrikceller i kolumnen och raden i samma tabell.",F1:"`Headers`-attributets värde `{attr}` hänvisar till elementets `id`-värde som inte förekommer i samma tabell.",F2:"`Headers`-attributets värde `{attr}` hänvisar till ett element i samma tabell som inte är kolumnens eller radens rubrik."}},"QW-ACT-R37":{name:"Texten uppfyller minimikraven för kontrast",description:"Denna regel kontrollerar att den största möjliga kontrasten mot bakgrunden för varje tecken i texten uppfyller minimikraven för kontrast.",results:{I1:"Inga objekt hittades.",P1:"Elementets kontrast överskrider minimikraven.",P2:"Med elementets tecken presenteras inte text på ett naturligt språk.",P3:"Elementets kontrast mot bakgrundens gradientfärg överskrider minimikraven.",W1:"Elementets text har skuggning som kräver manuell granskning.",W2:"Bakom elementet finns en bild.",W3:"Elementet har en gradientfärg som vi inte kan verifiera.",F1:"Elementets kontrast uppfyller inte minimikraven.",F2:"Elementets kontrast mot bakgrundens gradientfärg uppfyller inte minimikraven."}},"QW-ACT-R38":{name:"Dedikerade element som krävs av ARIA",description:"Denna regel kontrollerar att ett element som har en explicit semantisk roll har minst ett dedikerat element som rollen kräver.",results:{I1:"Inga objekt hittades.",P1:"Objektet tillägnar endast element som har den roll som krävs.",F1:"Objektet tillägnar element som inte har den roll som krävs."}},"QW-ACT-R39":{name:"Alla rubrikceller i tabellen riktar sig till innehållsceller",description:"Denna regel kontrollerar att varje rubrikcell i tabellelementet riktar sig till någon innehållscell.",results:{I1:"Inga objekt hittades.",P1:"Kolumnens rubrikelement riktar sig till åtminstone en cell.",F1:"Kolumnens rubrikelement riktar sig inte till någon cell."}},"QW-ACT-R40":{name:"CSS:s `overflow`-definition kommer inte att beskära den zoomade texten.",description:"Denna regel kontrollerar att texterna inte oavsiktligt beskärs med `overflow`-definitionen när sidan zoomas med 200 % i en vy på 1280 x 1024.",results:{I1:"Inga objekt hittades.",W1:"Kontrollera att texterna eller de element som ramar in dem inte beskärs med `overflow`-definitionen."}},"QW-ACT-R41":{name:"Felmeddelandet förklarar felet i blankettfältets inmatning.",description:"Denna regel kontrollerar att när användaren har matat in ett felaktigt värde i fältet på blanketten eller gett det i felaktig form anger felmeddelandet orsaken till felet eller hur det kan korrigeras.",results:{I1:"Inga objekt hittades.",W1:"Kontrollera att felmeddelandet anger orsaken till felet eller hur det kan korrigeras."}},"QW-ACT-R42":{name:"`Object`-elementet har ett tillgängligt namn som inte är tomt.",description:"Denna regel kontrollerar att varje `object`-element har ett tillgängligt namn som inte är tomt.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn som inte är tomt.",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R43":{name:"Skrollbart element är åtkomligt med ett tangentbord",description:"Denna regel kontrollerar att man kan skrolla skrollbara element enbart med hjälp av tangentbordet.",results:{I1:"Inga objekt hittades.",P1:"Denna skrollbara del ingår i navigerbart innehåll som fokuseras in i ordningsföljd.",F1:"Detta vertikalt eller horisontellt skrollbara delelement ingår inte i det navigerbara innehållet som fokuseras i ordningsföljd och innehåller inte heller sådana underelement."}},"QW-ACT-R44":{name:"Länkar i samma sammanhang och som har samma tillgängliga namn har samma användningsändamål.",description:"Denna regel kontrollerar att länkar i samma sammanhang och med samma tillgängliga namn returnerar samma eller motsvarande innehåll.",results:{I1:"Inga objekt hittades.",P1:"Länkar med samma tillgängliga namn hänvisar till samma innehåll.",W1:"Länkar med samma tillgängliga namn hänvisar till olika innehåll. Se till att innehållet stämmer överens."}},"QW-ACT-R48":{name:"Dekorativa element syns inte i tillgänglighetsträdet",description:"Denna regel kontrollerar att element som betecknats som dekorativa inte ingår i innehållsmodellen för tillgänglighet eller att de endast har en visualiserande roll.",results:{I1:"Inga objekt hittades.",P1:"Objektet ingår inte i innehållsmodellen för tillgänglighet.",F1:"Objektet ingår i innehållsmodellen för tillgänglighet."}},"QW-ACT-R49":{name:"Ljud- eller videoinnehåll som spelas upp automatiskt innehåller inget ljud som varar över tre (3) sekunder",description:"Ljud- eller videoinnehåll som spelas upp automatiskt producerar inte ljud som varar mer än tre (3) sekunder.",results:{I1:"Inga objekt hittades.",P1:"Objektets uppspelning tar tre (3) sekunder eller mindre.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att objektet har synliga funktioner för att hantera det."}},"QW-ACT-R50":{name:"Ljud- eller videoinnehåll som spelas upp automatiskt har styrverktyg.",description:"För ljud- eller videoinnehåll som spelas upp automatiskt måste det finnas funktioner för att hantera det.",results:{I1:"Inga objekt hittades.",P1:"Objektet har synliga styrverktyg.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att objektet har synliga funktioner för att hantera det."}},"QW-ACT-R51":{name:"Videons synliga innehåll är mediemotsvarighet till texten",description:"Denna regel kontrollerar att en videoinspelning som endast innehåller bild är mediemotsvarighet till texten på sidan.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att innehållet i videoinspelningen motsvarar texten."}},"QW-ACT-R52":{name:"Det finns textningsspår för syntolkning av videoinnehållet i en video som inte innehåller ljud",description:"Denna regel kontrollerar att textningsspåren för syntolkning av videoinspelningar som inte innehåller ljud beskriver det synliga innehållet.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att det finns ett tillgängligt alternativ till det synliga innehållet."}},"QW-ACT-R53":{name:"Video med endast visuellt innehåll har transkription.",description:"All synlig information i en videoinspelningen som inte innehåller ljud ska ha en transkription.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att det finns ett tillgängligt alternativ till det synliga innehållet."}},"QW-ACT-R54":{name:"Videoinspelningar med visuellt innehåll kan ges alternativt som ljudupptagningar.",description:"För videoinspelningar som inte innehåller ljud måste det finnas ett alternativ i form av en ljudupptagning.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att det finns ett tillgängligt alternativ till det synliga innehållet."}},"QW-ACT-R55":{name:"För synligt innehåll i videon ges syntolkning",description:"Denna regel kontrollerar att allt synligt innehåll i videoinspelningen också finns på videons ljudspår.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Målelementet har ljudspår, men det gick inte att verifiera dess styrka. Kontrollera att objektet har ett ljudspår och i förekommande fall att det finns ett tillgängligt alternativ till det synliga innehållet i videon."}},"QW-ACT-R56":{name:"Videon är mediemotsvarigheten till texten",description:"Denna regel kontrollerar att en videoinspelning är mediemotsvarighet till texten på sidan.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Kontrollera att innehållet i videoinspelningen motsvarar texten."}},"QW-ACT-R57":{name:"Textspår för syntolkning av videons synliga innehåll",description:"Denna regel kontrollerar att textningsspåren för syntolkning av videoinspelningar beskriver det synliga innehållet.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Målelementet har ljudspår, men det gick inte att verifiera dess styrka. Kontrollera att objektet har ett ljudspår och i förekommande fall att det finns ett tillgängligt alternativ till det visuella innehållet i videon."}},"QW-ACT-R58":{name:"Ljudupptagningen har en transkription",description:"Ljudupptagningar ska ha ett textalternativ som innehåller all ljudinformation.",results:{I1:"Inga objekt hittades.",W1:"Kontrollera att det finns ett textalternativ till objektets ljudspår."}},"QW-ACT-R59":{name:"Ljudupptagningen är mediemotsvarigheten till texten",description:"Denna regel kontrollerar att en ljudupptagning är mediemotsvarighet till texten på sidan.",results:{I1:"Inga objekt hittades.",W1:"Kontrollera att innehållet i ljudupptagningen motsvarar texten."}},"QW-ACT-R60":{name:"Videons ljudinnehåll har textning",description:"TDenna regel kontrollerar att det finns textning för videoinspelningens ljudinnehåll.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Målelementet har ljudspår, men det gick inte att verifiera dess styrka. Kontrollera att objektet har ett ljudspår och om det finns en motsvarande textning för ljudinnehållet."}},"QW-ACT-R61":{name:"Det finns en transkription för videoelementets ljud- och bildinnehåll.",description:"Denna regel kontrollerar att det inspelade videoinnehållet har en transkription som täcker allt ljud- och bildinnehåll.",results:{I1:"Inga objekt hittades.",W1:"Det gick inte att få information om målelementet.",W2:"Målelementet har ljudspår, men det gick inte att verifiera dess styrka. Kontrollera att objektet har ljudspår och transkription. I förekommande fall, kontrollera att transkriptionen beskriver allt ljud- och bildinnehåll på videon."}},"QW-ACT-R62":{name:"Ett element som hör till innehåll som fokuseras ordningsföljd har ett synligt fokus",description:"Denna regel kontrollerar att varje element som fokuseras ordningsföljd har någon synlig indikation på fokuset.",results:{I1:"Inga objekt hittades.",W1:"Kontrollera att elementet har någon synlig indikation på fokuset."}},"QW-ACT-R63":{name:"Dokumentet har ett landmärke för innehåll som inte upprepas",description:"Denna regel kontrollerar att varje sida har ett element vars semantiska betydelse är att vara ett landmärke för innehåll som inte upprepas.",results:{I1:"Inga objekt hittades.",P1:"Sidan innehåller inget innehåll som upprepas.",W1:"Kontrollera att det antingen inte finns innehåll som inte upprepas på sidan efter upprepat innehåll eller att det förekommer ett element som uppfyller följande villkor: elementet har semantisk betydelse som landmärke, det första underelementet som observeras i elementets utskriftsordning är innehåll som inte upprepas efter upprepat innehåll och elementet ingår i innehållsmodellen för tillgänglighet."}},"QW-ACT-R64":{name:"Dokumentet har en rubrik för innehåll som inte upprepas",description:"Denna regel kontrollerar att det finns en rubrik för innehåll som inte upprepas.",results:{I1:"Inga objekt hittades.",P1:"Sidan innehåller inget innehåll som upprepas.",W1:"Kontrollera att det antingen inte finns innehåll som inte upprepas på sidan efter upprepat innehåll eller att det förekommer ett element som uppfyller följande villkor: elementet är innehåll som inte upprepas efter upprepat innehåll; elementet har semantisk betydelse som rubrik; elementet syns och elementet ingår i innehållsmodellen för tillgänglighet."}},"QW-ACT-R65":{name:"Element som endast innehåller visualiserande underelement har inget fokuserat innehåll",description:"Denna regel kontrollerar att element vars roll gör deras underelement endast visualiserande inte innehåller fokuserade element.",results:{I1:"Inga objekt hittades.",P1:"I utskriftshierarkin har elementet inga underelement som fokuseras i ordningsföljd.",F1:"I utskriftshierarkin har elementet underelement som fokuseras i ordningsföljd."}},"QW-ACT-R66":{name:"I menyn finns ett tillgängligt namn som inte är tomt",description:"Denna regel kontrollerar att varje element som har en `menuitem`-roll har ett tillgängligt namn som inte är tomt.",results:{I1:"Inga objekt hittades.",P1:"Objektet har ett tillgängligt namn som inte är tomt",F1:"Objektet har inte ett tillgängligt namn eller är tomt."}},"QW-ACT-R67":{name:"I stildefinitionerna har mellanrummet mellan bokstäverna inte definierats med `!important`-regeln",description:"Denna regel kontrollerar att stildefinitionerna inte har hindrat bearbetning av bokstävernas mellanrum med `!important`-regeln, utom när värdet på definitionen `letter-spacing` är minst 0,12 gånger bokstavens storlek.",results:{I1:"Inga objekt hittades.",P1:"`Letter-spacing`-egenskapen har ingen `!important`-definition.",P2:"`Letter-spacing`-värdet är minst 0,12 gånger bokstavens storlek.",P3:"Det `letter-spacing`-värde som fastställts för elementet är inte detsamma som det värde som antecknats för elementet.",F1:"CSS-reglerna hindrar `letter-spacing`-värdet från att uppfylla minimikravet."}},"QW-ACT-R68":{name:"I stildefinitionerna har radhöjden inte definierats med `!important`-regeln",description:"Denna regel kontrollerar att stildefinitionerna inte har hindrat bearbetning av radhöjden med `!important`-regeln, utom när radhöjden är minst 1,5 gånger bokstavens storlek.",results:{I1:"Inga objekt hittades.",P1:"`Line-height`-egenskapen har ingen `!important`-definition.",P2:"`Line-height`-värdet är minst 1,5 gånger bokstavens storlek..",P3:"Det `line-height`-värde som fastställts för elementet är inte detsamma som det värde som antecknats för elementet.",F1:"CSS-reglerna hindrar `line-height`-värdet från att uppfylla minimikravet."}},"QW-ACT-R69":{name:"I stildefinitionerna har mellanrummet mellan ord inte definierats med `!important`-regeln",description:"Denna regel kontrollerar att stildefinitionerna inte har hindrat bearbetning av ordens mellanrum med `!important`-regeln, utom när värdet på definitionen `word-spacing` är minst 0,16 gånger bokstavens storlek.",results:{I1:"Inga objekt hittades.",P1:"`Word-spacing`-egenskapen har ingen `!important`-definition.",P2:"`Word-spacing`-värdet är minst 0,16 gånger bokstavens storlek.",P3:"Det `word-spacing`-värde som fastställts för elementet är inte detsamma som det värde som antecknats för elementet.",F1:"CSS-reglerna hindrar `word-spacing`-värdet från att uppfylla minimikravet."}},"QW-ACT-R70":{name:"`Iframe` med negativt `tabindex`-attribut innehåller inga interaktiva element",description:"Denna regel kontrollerar att ett `iframe`-element vars `tabindex`-attribut har ett negativt värde inte innehåller interaktiva element.",results:{I1:"Inga objekt hittades.",RC1:"Den inkluderade kontexten innehåller inga element som är synliga och fokuseras i ordningsföljd.",RC2:"Den inkluderade kontexten innehåller element som är synliga och fokuseras i ordningsföljd."}},"QW-ACT-R71":{name:"`Meta`-elementet har ingen uppdateringsfördröjning (inget undantag)",description:"Denna regel kontrollerar att elementet `meta’ inte har använts för fördröjd omdirigering eller omladdning.",results:{I1:"Inga objekt hittades.",P1:"Objektet laddas om eller omdirigeras omedelbart.",F1:"Objektet laddas om efter {seconds} sekunder.",F2:"Objektet omdirigeras efter {seconds} sekunder."}},"QW-ACT-R72":{name:"Det första fokuserade elementet är en länk till innehåll som inte upprepas",description:"Denna regel kontrollerar att det första fokuserade elementet är en länk till innehåll som inte upprepas på sidan.",results:{I1:"Inga objekt hittades.",W1:"Kontrollera att det första fokuserade elementet har ett tillgängligt namn som låter förstå att man hoppar över innehåll med den.",W2:"Kontrollera att det första fokuserade elementet hoppar till sidans huvudinnehåll och att dess tillgängliga namn också låter förstå detta.",F1:"Det första fokuserade elementet är inte åtkomligt med tangentbord.",F2:"Det första fokuserade elementet ingår inte i innehållsmodellen för tillgänglighet.",F3:"Det första fokuserade elementet är inte en länk.",F4:"Det första fokuserade elementet hoppar inte till sidans huvudinnehåll.",F5:"På sidan finns inga fokuserade element."}},"QW-ACT-R73":{name:"Blocket med upprepat innehåll måste krympas",description:"Denna regel kontrollerar att block med upprepat innehåll kan krympas.",results:{I1:"Inga objekt hittades.",P1:"Sidan innehåller inget innehåll som upprepas.",W1:"Kontrollera i varje block med upprepat innehåll som finns i ett element som i utskriftsordningen åtföljs av minst ett element med innehåll som upprepas efter upprepat innehåll att följande villkor uppfylls: det finns en funktion för att dölja alla delar av detta block och det finns en funktion för att ta bort dessa delar från innehållsmodellen för tillgänglighet."}},"QW-ACT-R74":{name:"Dokumentet har en mekanism för att flytta fokus till innehåll som inte upprepas",description:"Denna regel kontrollerar att det finns en mekanism för att flytta fokus till innehåll som inte upprepas på sidan.",results:{I1:"Inga objekt hittades.",P1:"Sidan innehåller inget innehåll som upprepas.",W1:"På sidan finns en eller flera funktioner för att flytta fokus. Kontrollera att någon av dessa används före blocket med upprepat innehåll och att fokuset placeras strax före blocket med innehåll som inte upprepas.",W2:"Kontrollera att det finns minst en funktion på sidan för att flytta fokus. Kontrollera att någon av dessa används före blocket med upprepat innehåll och att fokuset placeras strax före blocket med innehåll som inte upprepas."}},"QW-ACT-R75":{name:"Hoppa över block med upprepat innehåll",description:"Denna regel kontrollerar att det på varje sida finns en mekanism för att hoppa över block med upprepat innehåll.",results:{I1:"Inga objekt hittades.",P1:"Villkoret uppfylls på grund av regeln ",W1:"Uppfyllandet av villkoret kunde inte verifieras på grund av regeln ",F1:"Villkoret uppfylls inte på grund av regeln "}},"QW-ACT-R76":{name:"Texten uppfyller kraven på utökad kontrast",description:"Denna regel kontrollerar att den största möjliga kontrasten mot bakgrunden för varje tecken i texten uppfyller kraven på utökad kontrast.",results:{I1:"Inga objekt hittades.",P1:"Elementets kontrast överskrider minimikraven.",P2:"Med elementets tecken presenteras inte text på ett naturligt språk.",P3:"Elementets kontrast mot bakgrundens gradientfärg överskrider minimikraven.",W1:"Elementets text har skuggning som kräver manuell granskning.",W2:"Bakom elementet finns en bild.",W3:"Elementet har en gradientfärg som vi inte kan verifiera.",F1:"Elementets kontrast uppfyller inte minimikraven.",F2:"Elementets kontrast mot bakgrundens gradientfärg uppfyller inte minimikraven."}},"QW-ACT-R77":{name:"ARIA required ID references exist",description:"This rule checks that every ID reference required by WAI-ARIA exists.",results:{I1:"No test targets found.",P1:"Referenced element exists.",F1:"Referenced element does not exist."}}}}},847:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Translator=void 0,t.Translator=class{locale;constructor(e){this.locale=e}get(e){let t;const n=Array.isArray(e)?e:e.split(".");let i=this.locale.translate;return n.forEach((e=>i=i?.[e])),t=i,"string"!=typeof t&&(i=this.locale.fallback,n.forEach((e=>i=i?.[e])),t=i),"string"==typeof t?t:void 0}}},300:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})}},t={},n=function n(i){var a=t[i];if(void 0!==a)return a.exports;var s=t[i]={exports:{}};return e[i].call(s.exports,s,s.exports,n),s.exports}(973);for(var i in n)this[i]=n[i];n.__esModule&&Object.defineProperty(this,"__esModule",{value:!0})})()},4715:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QWElement=void 0;class QWElement{constructor(e,t){this.selector="",this.element=e,this.elementsCSSRules=t;const n=e.getAttribute("qw-selector");n&&(this.selector=n)}addCSSRulesPropertyToElement(e){var t;e&&(null===(t=this.elementsCSSRules)||void 0===t?void 0:t.has(e))&&e.setAttribute("qw-css-rules","true")}hasCSSRules(){return"true"===this.element.getAttribute("qw-css-rules")}getCSSRules(){var e;return null===(e=this.elementsCSSRules)||void 0===e?void 0:e.get(this.element)}hasCSSProperty(e,t,n){var i,a;if(null===(i=this.elementsCSSRules)||void 0===i?void 0:i.has(this.element)){const i=null===(a=this.elementsCSSRules)||void 0===a?void 0:a.get(this.element);if(i){if(t&&n)return void 0!==i.media[n][t][e];if(t)return void 0!==i[t][e];if(n)return void 0!==i.media[n][e]}return!i||void 0!==i[e]}return!1}getCSSProperty(e,t,n){var i,a;if(null===(i=this.elementsCSSRules)||void 0===i?void 0:i.has(this.element)){const i=null===(a=this.elementsCSSRules)||void 0===a?void 0:a.get(this.element);if(i)return t&&n?i.media[n][t][e]:t?i[t][e]:n?i.media[n][e]:i[e]}}getCSSMediaRules(){var e,t;if(null===(e=this.elementsCSSRules)||void 0===e?void 0:e.has(this.element)){const e=null===(t=this.elementsCSSRules)||void 0===t?void 0:t.get(this.element);if(e)return e.media}}getCSSPseudoSelectorRules(e){var t,n;if(null===(t=this.elementsCSSRules)||void 0===t?void 0:t.has(this.element)){const t=null===(n=this.elementsCSSRules)||void 0===n?void 0:n.get(this.element);if(t)return t[e]}}elementHasAttribute(e){return this.element.getAttributeNames().includes(e)}elementHasAttributes(){return this.element.getAttributeNames().length>0}elementHasChild(e){const t=this.element.children;for(let n=0;n<t.length;n++){const i=t.item(n);if(i&&i.tagName.toLowerCase()===e.toLowerCase())return!0}return!1}elementHasChildren(){return this.element.children.length>0}elementHasParent(e){const t=this.element.parentElement;return!!t&&t.tagName.toLowerCase()===e.toLowerCase()}hasTextNode(){let e=!1;return this.element.childNodes.forEach((t=>{var n;3===t.nodeType&&""!==(null===(n=t.textContent)||void 0===n?void 0:n.trim())&&(e=!0)})),e}getElementAttribute(e){return this.element.getAttribute(e)}getElementAttributes(){var e;const t={};for(const n of null!==(e=this.element.getAttributeNames())&&void 0!==e?e:[]){const e=this.element.getAttribute(n);e&&(t[n]=e)}return t}getElementAttributesName(){return this.element.getAttributeNames()}getElementChildren(){const e=new Array,t=this.element.children;for(let n=0;n<t.length;n++){const i=t.item(n);i&&(this.addCSSRulesPropertyToElement(i),e.push(new QWElement(i,this.elementsCSSRules)))}return e}getElementChildTextContent(e){var t;const n=this.element.children;for(let i=0;i<n.length;i++){const a=n.item(i);if(a&&a.tagName.toLowerCase()===e.toLowerCase())return null!==(t=a.textContent)&&void 0!==t?t:void 0}}getElementHtmlCode(e,t){const n=this.element.getAttribute("qw-css-rules"),i=this.element.getAttribute("qw-selector"),a=this.element.getAttribute("_documentSelector");let s;if(this.element.removeAttribute("qw-css-rules"),this.element.removeAttribute("qw-selector"),this.element.removeAttribute("_documentSelector"),t){const e=this.element.children,t=new Array;for(let n=0;n<e.length;n++){const i=e.item(n);if(i){const e=i.getAttribute("qw-css-rules"),n=i.getAttribute("qw-selector"),a=i.getAttribute("_documentSelector");t.push({cssRulesValue:e,selectorValue:n,documentSelectorValue:a}),i.removeAttribute("qw-css-rules"),i.removeAttribute("qw-selector"),i.removeAttribute("_documentSelector")}}s=this.element.outerHTML;for(let n=0;n<e.length;n++){const i=e.item(n);if(i){const e=t[n];e.cssRulesValue&&i.setAttribute("qw-css-rules",e.cssRulesValue),e.selectorValue&&i.setAttribute("qw-selector",e.selectorValue),e.documentSelectorValue&&i.setAttribute("_documentSelector",e.documentSelectorValue)}}}else if(e){const e=this.element.cloneNode(!1),t=this.getElementText();e.innerHTML=void 0!==t?t:"",s=e.outerHTML}else{const e=this.element.cloneNode(!1);e.innerHTML="",s=e.outerHTML}return n&&this.element.setAttribute("qw-css-rules",n),i&&this.element.setAttribute("qw-selector",i),a&&this.element.setAttribute("_documentSelector",a),s}getElement(e){const t=this.element.querySelector(e);return this.addCSSRulesPropertyToElement(t),this.convertElementToQWElement(t)}convertElementToQWElement(e){return e?(this.addCSSRulesPropertyToElement(e),new QWElement(e,this.elementsCSSRules)):null}convertElementsToQWElement(e){const t=new Array;return null==e||e.forEach((e=>{this.addCSSRulesPropertyToElement(e),t.push(new QWElement(e,this.elementsCSSRules))})),t}getElements(e){return this.convertElementsToQWElement(this.element.querySelectorAll(e))}getElementNextSibling(){return this.convertElementToQWElement(this.element.nextElementSibling)}getAllPreviousSiblings(){const e=new Array;let t=this.element.previousSibling;for(;null!==t;){if(1===t.nodeType){const n=this.convertElementToQWElement(t);n&&e.unshift(n)}else 3===t.nodeType&&t.textContent&&e.unshift(t.textContent);t=t.previousSibling}return e}getAllNextSiblings(){const e=new Array;let t=this.element.nextSibling;for(;null!==t;){if(1===t.nodeType){const n=this.convertElementToQWElement(t);n&&e.push(n)}else 3===t.nodeType&&t.textContent&&e.push(t.textContent);t=t.nextSibling}return e}getPreviousSibling(){const e=this.element.previousSibling;if(e){if(1===e.nodeType)return this.convertElementToQWElement(e);if(3===e.nodeType)return e.textContent;{let t=e.previousSibling,n=null;for(;null!==t;){if(1===t.nodeType){n=this.convertElementToQWElement(t);break}3===t.nodeType&&(n=t.textContent),t=t.previousSibling}return n}}return null}getNextSibling(){const e=this.element.nextSibling;if(e){if(1===e.nodeType)return this.convertElementToQWElement(e);if(3===e.nodeType)return e.textContent;{let t=e.nextSibling,n=null;for(;null!==t;){if(1===t.nodeType){n=this.convertElementToQWElement(t);break}3===t.nodeType&&(n=t.textContent),t=t.nextSibling}return n}}return null}getElementParent(){return this.convertElementToQWElement(this.element.parentElement)}getParentAllContexts(){let e=this.element.parentElement;if(!e){const t=this.element.getAttribute("_documentSelector");t&&(e=document.querySelector(t))}return this.convertElementToQWElement(this.element.parentElement)}getElementPreviousSibling(){return this.convertElementToQWElement(this.element.previousElementSibling)}getElementProperty(e){const t=this.element[e];return null===t?"":t.toString()}getElementSelector(){if(""===this.selector){if("html"===this.element.tagName.toLowerCase())return"html";if("head"===this.element.tagName.toLowerCase())return"html > head";if("body"===this.element.tagName.toLowerCase())return"html > body";let e="";const t=new Array;let n=this.element.parentElement;for(;n;)t.unshift(this.getSelfLocationInParent(n)),n=n.parentElement;t.length>0?(e+=t.join(" > "),e+=" > "+this.getSelfLocationInParent(this.element)):e+=this.getSelfLocationInParent(this.element);const i=this.element.getAttribute("_documentSelector");return i&&(e=i+e),this.selector=e,e}return this.selector}getSelfLocationInParent(e){let t="";if("body"===e.tagName.toLowerCase()||"head"===e.tagName.toLowerCase())return e.tagName.toLowerCase();let n=0,i=e.previousElementSibling;for(;i;)i.tagName.toLowerCase()===e.tagName.toLowerCase()&&n++,i=i.previousElementSibling;return t+=`${e.tagName.toLowerCase()}:nth-of-type(${n+1})`,t}getElementStyleProperty(e,t){return getComputedStyle(this.element,t).getPropertyValue(e)}getElementTagName(){return this.element.tagName.toLowerCase()}getElementText(){var e,t;return this.element.shadowRoot?null!==(e=this.element.shadowRoot.textContent)&&void 0!==e?e:"":null!==(t=this.element.textContent)&&void 0!==t?t:""}getElementOwnText(){let e;e=this.element.shadowRoot?this.element.shadowRoot.childNodes:this.element.childNodes;let t,n="";return e.forEach((e=>{t=e.textContent,3===e.nodeType&&t&&""!==t.trim()&&(n+=t.trim())})),n}getElementType(){return 1===this.element.nodeType?"tag":2===this.element.nodeType?"attribute":3===this.element.nodeType?"text":"comment"}getNumberOfSiblingsWithTheSameTag(){let e=1,t=this.element.nextElementSibling;for(;t;)"a"===t.tagName.toLowerCase()&&e++,t=t.nextElementSibling;return e}setElementAttribute(e,t){this.element.setAttribute(e,t)}concatANames(e){const t=this.element.childNodes;let n,i="",a=0,s=0;return t.forEach((t=>{n=t.textContent,3===t.nodeType&&n&&""!==n.trim()?(i=i+(0===s?"":" ")+n.trim(),s++):1===t.nodeType&&(i=i+(s>0&&e[a]?" ":"")+e[a],a++)})),i||(i=""),i}isOffScreen(){const e=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight),t=Math.max(document.body.scrollWidth,document.documentElement.scrollWidth,document.body.offsetWidth,document.documentElement.offsetWidth,document.body.clientWidth,document.documentElement.clientHeight),n=this.element.getBoundingClientRect(),i=n.left,a=n.right,s=n.bottom,r=n.top,l=this.noParentScrolled(s);return i>t||a<0||s<0&&l||r>e||0===a&&0===i}isElementHTMLElement(){return this.element instanceof HTMLElement}getContentFrame(){let e=null;if("iframe"===this.getElementTagName()){const t=this.element.contentWindow;t&&(e=t.document)}return e}elementHasTextNode(){let e=!1;if(null!==this.element.childNodes){this.element.childNodes.forEach((t=>{var n;3===t.nodeType&&""!==(null===(n=t.textContent)||void 0===n?void 0:n.trim())&&(e=!0)}))}return e}noParentScrolled(e){let t=this.element.parentElement;for(;t&&"html"!==t.nodeName.toLowerCase();){if(t.scrollTop&&(e+=t.scrollTop)>=0)return!1;t=t.parentElement}return!0}focusElement(){this.element.focus()}dispatchEvent(e){this.element.dispatchEvent(e)}click(){this.element.click()}getBoundingBox(){return this.element.getBoundingClientRect()}getShadowElement(e){const t=this.element.shadowRoot;let n=null;return t&&(n=t.querySelector(e)),this.convertElementToQWElement(n)}getShadowElements(e){const t=this.element.shadowRoot;let n=null;return t&&(n=t.querySelectorAll(e)),this.convertElementsToQWElement(n)}getSlotElements(){const e=this.element.assignedElements(),t=new Array;return null==e||e.forEach((e=>{this.addCSSRulesPropertyToElement(e),t.push(new QWElement(e,this.elementsCSSRules))})),t}getSlotNodes(){return this.element.assignedNodes()}isShadowRoot(){return!!this.element.shadowRoot}}t.QWElement=QWElement},3408:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(4715),t),a(n(2357),t)},2357:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3920:function(e,t){"use strict";var n=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,s){function r(e){try{o(i.next(e))}catch(e){s(e)}}function l(e){try{o(i.throw(e))}catch(e){s(e)}}function o(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,l)}o((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ElementExists=function(e,t,n){const i=n.value;n.value=function(){if(arguments[0])return i.apply(this,arguments)}},t.ElementIsHTMLElement=function(e,t,n){const i=n.value;n.value=function(){if(arguments[0].isElementHTMLElement())return i.apply(this,arguments)}},t.ElementHasAttributes=function(e,t,n){const i=n.value;n.value=function(){if(arguments[0].elementHasAttributes())return i.apply(this,arguments)}},t.ElementHasAttribute=function(e){return function(t,n,i){const a=i.value;i.value=function(){if(arguments[0].elementHasAttribute(e))return a.apply(this,arguments)}}},t.ElementHasNonEmptyAttribute=function(e){return function(t,n,i){const a=i.value;i.value=function(){const t=arguments[0].getElementAttribute(e);if(t&&t.trim())return a.apply(this,arguments)}}},t.ElementHasAttributeRole=function(e){return function(t,n,i){const a=i.value;i.value=function(){const t=window.AccessibilityUtils.getElementRole(arguments[0]);if(!t||t===e)return a.apply(this,arguments)}}},t.ElementHasAttributeValue=function(e,t){return function(n,i,a){const s=a.value;a.value=function(){const n=arguments[0].getElementAttribute(e);if(n&&n===t)return s.apply(this,arguments)}}},t.IfElementHasTagNameMustHaveAttributeRole=function(e,t){return function(n,i,a){const s=a.value;a.value=function(){if(arguments[0].getElementTagName()!==e)return s.apply(this,arguments);{const e=arguments[0].getElementAttribute("role");if(!e||e===t)return s.apply(this,arguments)}}}},t.ElementHasText=function(e,t,n){const i=n.value;n.value=function(){const e=arguments[0];if(""!==window.DomUtils.getTrimmedText(e))return i.apply(this,arguments)}},t.ElementHasTextNode=function(e,t,n){const i=n.value;n.value=function(){if(arguments[0].elementHasTextNode())return i.apply(this,arguments)}},t.ElementIsInAccessibilityTree=function(e,t,n){const i=n.value;n.value=function(){if(window.AccessibilityUtils.isElementInAT(arguments[0]))return i.apply(this,arguments)}},t.ElementHasNegativeTabIndex=function(e,t,n){const i=n.value;n.value=function(){const e=arguments[0].getElementAttribute("tabindex");if(e&&parseInt(e)<=-1)return i.apply(this,arguments)}},t.ElementIsNotHidden=function(e,t,n){const i=n.value;n.value=function(){if(!window.DomUtils.isElementHidden(arguments[0]))return i.apply(this,arguments)}},t.ElementSrcAttributeFilenameEqualsAccessibleName=function(e,t,n){const i=n.value;n.value=function(){const e=arguments[0].getElementAttribute("src"),t=arguments[0].getElementAttribute("srcset"),n=arguments[0].getElementParent();let a=new Array;if(e){const t=e.split("/");a=[t[t.length-1].trim().toLowerCase()]}if(t){const e=t.split(",");for(const t of e||[]){const e=t.split(" ")[0].split("/");a.push(e[e.length-1].trim().toLowerCase())}}if(n){if("picture"===n.getElementTagName()){const e=n.getElements("source");for(const t of e){const e=t.getElementAttribute("srcset");if(e){const t=e.split("/");a.push(t[t.length-1].trim().toLowerCase())}}}}const s=window.AccessibilityUtils.getAccessibleName(arguments[0]);if(s&&a&&a.includes(s.toLowerCase()))return i.apply(this,arguments)}},t.IsInMainContext=function(e,t,n){const i=n.value;n.value=function(){const e=arguments[0].getElementAttribute("_documentSelector");if(!e||!e.includes(">"))return i.apply(this,arguments)}},t.ElementIsVisible=function(e,t,n){const i=n.value;n.value=function(){if(window.DomUtils.isElementVisible(arguments[0]))return i.apply(this,arguments)}},t.ElementIsNot=function(e){return function(t,n,i){const a=i.value;i.value=function(){const t=arguments[0].getElementTagName();if(t&&!e.includes(t))return a.apply(this,arguments)}}},t.ElementHasOneOfTheFollowingRoles=function(e){return function(t,n,i){const a=i.value;i.value=function(){const t=window.AccessibilityUtils.getElementRole(arguments[0]);if(t&&e.includes(t))return a.apply(this,arguments)}}},t.ElementIsWidget=function(e,t,n){const i=n.value;n.value=function(){if(window.AccessibilityUtils.isElementWidget(arguments[0]))return i.apply(this,arguments)}},t.ElementIsNotWidget=function(e,t,n){const i=n.value;n.value=function(){if(!window.AccessibilityUtils.isElementWidget(arguments[0]))return i.apply(this,arguments)}},t.ElementAllowsNameFromContent=function(e,t,n){const i=n.value;n.value=function(){if(window.AccessibilityUtils.allowsNameFromContent(arguments[0]))return i.apply(this,arguments)}},t.ElementHasCSSRules=function(e,t,n){const i=n.value;n.value=function(){if(arguments[0].getCSSRules())return i.apply(this,arguments)}},t.IsLangSubTagValid=function(e){return function(t,n,i){const a=i.value;i.value=function(){const t=arguments[0].getElementAttribute(e);if(t&&function(e){const t=window.AccessibilityUtils.languages;return e.toLowerCase()in t}(t.split("-")[0]))return a.apply(this,arguments)}}},t.ElementIsImage=function(e,t,n){const i=n.value;n.value=function(){const e=arguments[0],t=window.AccessibilityUtils.getElementRole(e);if("img"===e.getElementTagName()||"img"===t)return i.apply(this,arguments)}},t.ElementIsNonText=function(e,t,n){const i=n.value;n.value=function(){const e=arguments[0];if(window.DomUtils.objectElementIsNonText(e))return i.apply(this,arguments)}},t.ElementIsSemanticLink=function(e,t,n){const a=n.value;n.value=function(){const e=arguments[0],t=window.AccessibilityUtils.getElementRole(e);if(t&&i.includes(t))return a.apply(this,arguments)}},t.ElementIsDataTable=function(e,t,n){const i=n.value;n.value=function(){if(window.AccessibilityUtils.isDataTable(arguments[0]))return i.apply(this,arguments)}},t.ElementHasAccessibleName=function(e,t,n){const i=n.value;n.value=function(){const e=window.AccessibilityUtils.getAccessibleName(arguments[0]);if(""!==(null==e?void 0:e.trim()))return i.apply(this,arguments)}},t.ElementHasChild=function(e){return function(t,i,a){const s=a.value;a.value=function(){var t=arguments;return n(this,void 0,void 0,(function*(){if(0!==t[0].getElements(e).length)return s.apply(this,t)}))}}},t.ElementHasVisibleChild=function(e){return function(t,i,a){const s=a.value;a.value=function(){var t=arguments;return n(this,void 0,void 0,(function*(){const n=t[0].getElements(e);if(0!==n.length){let e=!1;for(const t of null!=n?n:[])e||(e=window.DomUtils.isElementVisible(t));if(e)return s.apply(this,t)}}))}}},t.ElementDoesNotHaveChild=function(e){return function(t,i,a){const s=a.value;a.value=function(){var t=arguments;return n(this,void 0,void 0,(function*(){if(0===t[0].getElements(e).length)return s.apply(this,t)}))}}},t.ElementHasParent=function(e){return function(t,i,a){const s=a.value;a.value=function(){var t=arguments;return n(this,void 0,void 0,(function*(){if(t[0].elementHasParent(e))return s.apply(this,t)}))}}},t.ElementIsNotChildOf=function(e){return function(t,i,a){const s=a.value;a.value=function(){var t=arguments;return n(this,void 0,void 0,(function*(){if(!t[0].elementHasParent(e))return s.apply(this,t)}))}}},t.ElementIsNotInert=function(e,t,n){const i=n.value;n.value=function(){let e=!0;if(arguments[0].elementHasAttribute("inert")){if("false"!==arguments[0].getElementAttribute("inert")&&(e=!1),!e)return}let t=!0,n=arguments[0].getElementParent();for(;n;){const e=n.getElementAttribute("inert");e&&"true"===e&&(t=!1),n=n.getElementParent()}if(t&&!window.qwPage.pageHasOpenDialog())return i.apply(this,arguments)}},t.ElementIsVisibleOrInAccessibilityTree=function(e,t,n){const i=n.value;n.value=function(){if(window.qwPage.getElements("*").filter((e=>e.hasTextNode()&&(window.DomUtils.isElementVisible(e)||window.AccessibilityUtils.isElementInAT(e)))).length>0)return i.apply(this,arguments)}},t.IsHTMLDocument=function(e,t,n){const i=n.value;n.value=function(){let e=!1;const t=window.qwPage.getElement("html");if(t&&(e="true"===t.getElementAttribute("nonHTMLPage")),!e)return i.apply(this,arguments)}};const i=["link","doc-backlink","doc-biblioref","doc-glossref","doc-noteref"]},2765:e=>{"use strict";e.exports=JSON.parse('{"QW_BP1":{"name":"Using h1-h6 to identify headings","code":"QW-BP1","mapping":"H42","description":"It is recommended to use HTML and XHTML heading markup to provide semantic code for headings in the content","metadata":{"target":{"element":["h1","h2","h3","h4","h5","h6"]},"success-criteria":[{"name":"1.3.1","level":"A","principle":"Perceivable","url":"https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html"}],"related":["H69","G141","F2","F43"],"url":"https://www.w3.org/TR/WCAG20-TECHS/H42.html"}},"QW_BP2":{"name":"Concise images alt text","code":"QW-BP2","description":"Image alt text attribute with more than 100 characters","metadata":{"target":{"element":"img"}}},"QW_BP4":{"name":"Grouped links not within a nav element","code":"QW-BP4","description":"Set of 10 or more links not grouped within a list (nav)","metadata":{"target":{"element":"a"}}},"QW_BP5":{"name":"Using table elements inside other table elements","code":"QW-BP5","description":"It is not recommended to use table elements inside other table elements","metadata":{"target":{"element":"table","parent":"table"}}},"QW_BP6":{"name":"title element is not too long (100 characters)","code":"QW-BP6","description":"The webpage title element shouldn\'t have more than 100 characters","metadata":{"target":{"element":"title"}}},"QW_BP7":{"name":"Title element contains ASCII-art","code":"QW-BP7","description":"Title element contains ASCII-art","metadata":{"target":{"element":"title"}}},"QW_BP8":{"name":"Headings with images should have an accessible name","code":"QW-BP8","description":"Headings with at least one image should have an accessible name","metadata":{"target":{"element":["h1","h2","h3","h4","h5","h6","[role=\'heading\']"],"children":"img"},"related":["G130"]}},"QW_BP9":{"name":"Table element without header cells has a caption","code":"QW-BP9","description":"A table without th elements should have a caption element to describe it.","metadata":{"target":{"element":"table"}}},"QW_BP10":{"name":"HTML elements are used to control visual presentation of content","code":"QW-BP10","description":"No HTML elements are used to control the visual presentation of content","metadata":{"target":{"element":["b","blink","blockquote","basefont","center","cite","em","font","i","link","mark","strong","s","strike","u","vlink"]}}},"QW_BP11":{"name":"Using br to make a list","code":"QW-BP11","description":"Using 3 consecutive br elements","metadata":{"target":{"element":"br"}}},"QW_BP12":{"name":"Using scope col and row","code":"QW-BP12","description":"Using scope col in the first row and scope row in the first element of each row","metadata":{"target":{"element":["table","tr"]}}},"QW_BP13":{"name":"Using consecutive links with the same href and one contains an image","code":"QW-BP13","description":"Using consecutive links with the same href in which one of the links contains an image","metadata":{"target":{"element":"a"}}},"QW_BP15":{"name":"At least one width attribute of an HTML element is expressed in absolute values","code":"QW-BP15","description":"At least one width attribute of an HTML element is expressed in absolute values","metadata":{"target":{"element":"*","attributes":"width"}}},"QW_BP17":{"name":"Adding a link at the beginning of a block of repeated content to go to the end of the block","code":"QW-BP17","mapping":"G123","description":"The objective of this technique is to provide a mechanism to bypass a block of material by skipping to the end of the block.","metadata":{"target":{"element":"a","attributes":"href"},"success-criteria":[{"name":"2.4.1","level":"A","principle":"Operable","url":"https://www.w3.org/WAI/WCAG21/Understanding/bypass-blocks"}],"related":["G1","G124"],"url":"https://www.w3.org/WAI/WCAG21/Techniques/general/G123"}},"QW_BP18":{"name":"Using percentage values in CSS for container sizes","code":"QW-BP18","mapping":"C24","description":"The objective of this technique is to enable users to increase the size of text without having to scroll horizontally to read that text. To use this technique, an author specifies the width of text containers using percent values.","metadata":{"target":{"element":"span article section nav aside hgroup header footer address p hr blockquote div h1 h2 h3 h4 h5 h6 li ul ol dd dt dl figcaption","attributes":"width"},"success-criteria":[{"name":"1.4.8","level":"AAA","principle":"Perceivable","url":"https://www.w3.org/WAI/WCAG21/Understanding/visual-presentation"}],"related":["C20"],"url":"https://www.w3.org/WAI/WCAG21/Techniques/css/C24"}},"QW_BP19":{"name":"Landmark banner is top level","code":"QW-BP19","description":"Ensures the banner landmark is at top level","metadata":{"target":{"element":"header:not([role]), [role=banner]"}}},"QW_BP20":{"name":"Landmark no duplicate banner","code":"QW-BP20","description":"Ensures the document has at most one banner landmark","metadata":{"target":{"element":"body"}}},"QW_BP21":{"name":"Landmark no duplicate contentinfo","code":"QW-BP21","description":"Ensures the document has at most one contentinfo landmark","metadata":{"target":{"element":"body"}}},"QW_BP22":{"name":"Landmark has one main","code":"QW-BP22","description":"Ensures the document has a main landmark","metadata":{"target":{"element":"body"}}},"QW_BP23":{"name":"Listitems are used semantically","code":"QW-BP23","description":"Ensures <li> elements are used semantically","metadata":{"target":{"element":"li"}}},"QW_BP24":{"name":"Lists are used correctly","code":"QW-BP24","description":"Ensures that lists are structured correctly. <ul> and <ol> must only directly contain <li>, <script> or <template> elements","metadata":{"target":{"element":"ul,ol,menu"}}},"QW_BP25":{"name":"Landmark complementary is top level","code":"QW-BP25","description":"Ensures the complementary landmark or aside is at top level","metadata":{"target":{"element":"aside:not([role]), [role=complementary]"}}},"QW_BP26":{"name":"Landmark contentinfo is top level","code":"QW-BP26","description":"Ensures the contentinfo landmark is at top level","metadata":{"target":{"element":"footer:not([role]), [role=contentinfo]"}}},"QW_BP27":{"name":"Landmark main is top level","code":"QW-BP27","description":"Ensures the main landmark is at top level","metadata":{"target":{"element":"main:not([role]), [role=main]"}}},"QW_BP28":{"name":"H1 element is used and unique","code":"QW-BP28","description":"Ensures theres is only one H1","metadata":{"target":{"element":"h1"}}},"QW_BP29":{"name":"HTML page lang and xml:lang attributes have matching values","code":"QW-BP29","description":"This best practice checks that both lang and xml:lang attributes on the root element of a non-embedded HTML page, have the same primary language subtag.","metadata":{"target":{"element":"html"}}}}')}},t={};function n(i){var a=t[i];if(void 0!==a)return a.exports;var s=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(s.exports,s,s.exports,n),s.loaded=!0,s.exports}n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var i={};(()=>{"use strict";var e=i;Object.defineProperty(e,"__esModule",{value:!0}),e.BestPracticesRunner=e.BestPractices=void 0;var t=n(4614);Object.defineProperty(e,"BestPractices",{enumerable:!0,get:function(){return t.BestPracticesModule}});var a=n(7368);Object.defineProperty(e,"BestPracticesRunner",{enumerable:!0,get:function(){return a.BestPracticesRunner}})})();for(var a in i)this[a]=i[a];i.__esModule&&Object.defineProperty(this,"__esModule",{value:!0})})();
|