diff --git a/.lighthouseci/flags-3488a8ba-2ffb-49df-a44c-0f4ee10cbef1.json b/.lighthouseci/flags-3488a8ba-2ffb-49df-a44c-0f4ee10cbef1.json
new file mode 100644
index 000000000..84814f191
--- /dev/null
+++ b/.lighthouseci/flags-3488a8ba-2ffb-49df-a44c-0f4ee10cbef1.json
@@ -0,0 +1 @@
+{"chromeFlags":" --headless=new"}
\ No newline at end of file
diff --git a/.lighthouseci/lhr-1782063683063.html b/.lighthouseci/lhr-1782063683063.html
deleted file mode 100644
index 03aebc502..000000000
--- a/.lighthouseci/lhr-1782063683063.html
+++ /dev/null
@@ -1,2895 +0,0 @@
-
-
-
-
- ",
- "nodeLabel": "THE EXPERTS FOR\nCABLE NETWORK CONSTRUCTION\n\nWe realize complex supply lines for…"
- },
- "subItems": {
- "type": "subitems",
- "items": [
- {
- "failureReason": "Filter-related property may move pixels"
- }
- ]
- }
- }
- ]
- },
- "guidanceLevel": 2
- },
- "unsized-images": {
- "id": "unsized-images",
- "title": "Image elements have explicit `width` and `height`",
- "description": "Set an explicit width and height on image elements to reduce layout shifts and improve CLS. [Learn how to set image dimensions](https://web.dev/articles/optimize-cls#images_without_dimensions)",
- "score": 1,
- "scoreDisplayMode": "metricSavings",
- "metricSavings": {
- "CLS": 0
- },
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- },
- "guidanceLevel": 4
- },
- "valid-source-maps": {
- "id": "valid-source-maps",
- "title": "Page has valid source maps",
- "description": "Source maps translate minified code to the original source code. This helps developers debug in production. In addition, Lighthouse is able to provide further insights. Consider deploying source maps to take advantage of these benefits. [Learn more about source maps](https://developer.chrome.com/docs/devtools/javascript/source-maps/).",
- "score": 1,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "prioritize-lcp-image": {
- "id": "prioritize-lcp-image",
- "title": "Preload Largest Contentful Paint image",
- "description": "If the LCP element is dynamically added to the page, you should preload the image in order to improve LCP. [Learn more about preloading LCP elements](https://web.dev/articles/optimize-lcp#optimize_when_the_resource_is_discovered).",
- "score": 1,
- "scoreDisplayMode": "metricSavings",
- "numericValue": 0,
- "numericUnit": "millisecond",
- "displayValue": "",
- "metricSavings": {
- "LCP": 0
- },
- "details": {
- "type": "opportunity",
- "headings": [],
- "items": [],
- "overallSavingsMs": 0,
- "sortedBy": [
- "wastedMs"
- ],
- "debugData": {
- "type": "debugdata",
- "initiatorPath": [
- {
- "url": "https://e-tib.com/_next/image?url=%2Fassets%2Fphotos%2FDJI_0048.JPG&w=750&q=75",
- "initiatorType": "parser"
- },
- {
- "url": "https://e-tib.com/en",
- "initiatorType": "redirect"
- }
- ],
- "pathLength": 2
- }
- },
- "guidanceLevel": 4
- },
- "csp-xss": {
- "id": "csp-xss",
- "title": "Ensure CSP is effective against XSS attacks",
- "description": "A strong Content Security Policy (CSP) significantly reduces the risk of cross-site scripting (XSS) attacks. [Learn how to use a CSP to prevent XSS](https://developer.chrome.com/docs/lighthouse/best-practices/csp-xss/)",
- "score": 1,
- "scoreDisplayMode": "informative",
- "details": {
- "type": "table",
- "headings": [
- {
- "key": "description",
- "valueType": "text",
- "subItemsHeading": {
- "key": "description"
- },
- "label": "Description"
- },
- {
- "key": "directive",
- "valueType": "code",
- "subItemsHeading": {
- "key": "directive"
- },
- "label": "Directive"
- },
- {
- "key": "severity",
- "valueType": "text",
- "subItemsHeading": {
- "key": "severity"
- },
- "label": "Severity"
- }
- ],
- "items": [
- {
- "directive": "script-src",
- "description": "Host allowlists can frequently be bypassed. Consider using CSP nonces or hashes instead, along with `'strict-dynamic'` if necessary.",
- "severity": "High"
- },
- {
- "directive": "script-src",
- "description": "`'unsafe-inline'` allows the execution of unsafe in-page scripts and event handlers. Consider using CSP nonces or hashes to allow scripts individually.",
- "severity": "High"
- }
- ]
- }
- },
- "has-hsts": {
- "id": "has-hsts",
- "title": "Use a strong HSTS policy",
- "description": "Deployment of the HSTS header significantly reduces the risk of downgrading HTTP connections and eavesdropping attacks. A rollout in stages, starting with a low max-age is recommended. [Learn more about using a strong HSTS policy.](https://developer.chrome.com/docs/lighthouse/best-practices/has-hsts)",
- "score": null,
- "scoreDisplayMode": "notApplicable",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "origin-isolation": {
- "id": "origin-isolation",
- "title": "Ensure proper origin isolation with COOP",
- "description": "The Cross-Origin-Opener-Policy (COOP) can be used to isolate the top-level window from other documents such as pop-ups. [Learn more about deploying the COOP header.](https://web.dev/articles/why-coop-coep#coop)",
- "score": 1,
- "scoreDisplayMode": "informative",
- "details": {
- "type": "table",
- "headings": [
- {
- "key": "description",
- "valueType": "text",
- "subItemsHeading": {
- "key": "description"
- },
- "label": "Description"
- },
- {
- "key": "directive",
- "valueType": "code",
- "subItemsHeading": {
- "key": "directive"
- },
- "label": "Directive"
- },
- {
- "key": "severity",
- "valueType": "text",
- "subItemsHeading": {
- "key": "severity"
- },
- "label": "Severity"
- }
- ],
- "items": [
- {
- "description": "No COOP header found",
- "severity": "High"
- }
- ]
- }
- },
- "clickjacking-mitigation": {
- "id": "clickjacking-mitigation",
- "title": "Mitigate clickjacking with XFO or CSP",
- "description": "The `X-Frame-Options` (XFO) header or the `frame-ancestors` directive in the `Content-Security-Policy` (CSP) header control where a page can be embedded. These can mitigate clickjacking attacks by blocking some or all sites from embedding the page. [Learn more about mitigating clickjacking](https://developer.chrome.com/docs/lighthouse/best-practices/clickjacking-mitigation).",
- "score": null,
- "scoreDisplayMode": "notApplicable",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "script-treemap-data": {
- "id": "script-treemap-data",
- "title": "Script Treemap Data",
- "description": "Used for treemap app",
- "score": 1,
- "scoreDisplayMode": "informative",
- "details": {
- "type": "treemap-data",
- "nodes": [
- {
- "name": "https://e-tib.com/_next/static/chunks/a6652e72ab226e0c.js",
- "resourceBytes": 8058,
- "encodedBytes": 2377,
- "unusedBytes": 1661
- },
- {
- "name": "https://e-tib.com/en",
- "resourceBytes": 62310,
- "encodedBytes": 12575,
- "children": [
- {
- "name": "(inline) (self.__next_f=…",
- "resourceBytes": 43,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 4345,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 3311,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 3636,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 74,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 4615,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 790,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 1762,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 3441,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 9051,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 34,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 1713,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 1865,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 4339,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 3077,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 4550,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 4838,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 571,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 3402,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 3795,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 297,
- "unusedBytes": 0
- },
- {
- "name": "(inline) self.__next_f.p…",
- "resourceBytes": 2761,
- "unusedBytes": 0
- }
- ]
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/48d338e34071797f.js",
- "resourceBytes": 61545,
- "encodedBytes": 20242,
- "unusedBytes": 17821
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/c095a65a4d1136a9.js",
- "resourceBytes": 30391,
- "encodedBytes": 8987,
- "unusedBytes": 10356
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/93736546a7cd8cd8.js",
- "resourceBytes": 6946,
- "encodedBytes": 2296,
- "unusedBytes": 4924
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/6d2513c9fde6e024.js",
- "resourceBytes": 64298,
- "encodedBytes": 21510,
- "unusedBytes": 21833
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/bdc59609c1fc990b.js",
- "resourceBytes": 104915,
- "encodedBytes": 29516,
- "unusedBytes": 45065
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/ffd4a99bce712659.js",
- "resourceBytes": 16416,
- "encodedBytes": 5187,
- "unusedBytes": 10223
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/870a2c2978ab4440.js",
- "resourceBytes": 24786,
- "encodedBytes": 6134,
- "unusedBytes": 16583
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/7bc980684698d6e7.js",
- "resourceBytes": 6504,
- "encodedBytes": 2600,
- "unusedBytes": 3954
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/0e383e1a85817ffa.js",
- "resourceBytes": 38202,
- "encodedBytes": 10233,
- "unusedBytes": 7255
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/b550ef5d0ebc89bc.js",
- "resourceBytes": 26502,
- "encodedBytes": 8430,
- "unusedBytes": 633
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/550b9c586d257e86.js",
- "resourceBytes": 224367,
- "encodedBytes": 70248,
- "unusedBytes": 69770
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/82d2a39eb2d02e51.js",
- "resourceBytes": 40538,
- "encodedBytes": 12221,
- "unusedBytes": 26738
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/6313448b98d48b30.js",
- "resourceBytes": 67661,
- "encodedBytes": 23945,
- "unusedBytes": 11656
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/turbopack-a27542e57e5ad7ea.js",
- "resourceBytes": 10676,
- "encodedBytes": 4238,
- "unusedBytes": 3801
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/0ff158dd58fe47c8.js",
- "resourceBytes": 154834,
- "encodedBytes": 41792,
- "unusedBytes": 75764
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/fc590dfe5f69473a.js",
- "resourceBytes": 753,
- "encodedBytes": 762,
- "unusedBytes": 0
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/b101a085bbb05642.js",
- "resourceBytes": 82155,
- "encodedBytes": 23726,
- "unusedBytes": 55962
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/36e0784d0b650f4f.js",
- "resourceBytes": 23719,
- "encodedBytes": 8585,
- "unusedBytes": 16996
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/b2e34e91af8c5e01.js",
- "resourceBytes": 41020,
- "encodedBytes": 14024,
- "unusedBytes": 38799
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/6865b40b4df28947.js",
- "resourceBytes": 122063,
- "encodedBytes": 40385,
- "unusedBytes": 59310
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/8305f0ece1a43e8a.js",
- "resourceBytes": 34134,
- "encodedBytes": 7507,
- "unusedBytes": 21389
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/7b7628e32bda02e9.js",
- "resourceBytes": 16281,
- "encodedBytes": 5438,
- "unusedBytes": 15388
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/c006aaa8027f2292.js",
- "resourceBytes": 18233,
- "encodedBytes": 6336,
- "unusedBytes": 17021
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/44b291f6a5923d74.js",
- "resourceBytes": 25312,
- "encodedBytes": 8463,
- "unusedBytes": 18825
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/3ffd2a1cf95ceb60.js",
- "resourceBytes": 917,
- "encodedBytes": 926,
- "unusedBytes": 460
- },
- {
- "name": "https://e-tib.com/_next/static/chunks/6a69beae93a044ef.js",
- "resourceBytes": 474328,
- "encodedBytes": 147134,
- "unusedBytes": 394805
- }
- ]
- }
- },
- "accesskeys": {
- "id": "accesskeys",
- "title": "`[accesskey]` values are unique",
- "description": "Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. [Learn more about access keys](https://dequeuniversity.com/rules/axe/4.10/accesskeys).",
- "score": null,
- "scoreDisplayMode": "notApplicable"
- },
- "aria-allowed-attr": {
- "id": "aria-allowed-attr",
- "title": "`[aria-*]` attributes match their roles",
- "description": "Each ARIA `role` supports a specific subset of `aria-*` attributes. Mismatching these invalidates the `aria-*` attributes. [Learn how to match ARIA attributes to their roles](https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr).",
- "score": 1,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "aria-allowed-role": {
- "id": "aria-allowed-role",
- "title": "Uses ARIA roles only on compatible elements",
- "description": "Many HTML elements can only be assigned certain ARIA roles. Using ARIA roles where they are not allowed can interfere with the accessibility of the web page. [Learn more about ARIA roles](https://dequeuniversity.com/rules/axe/4.10/aria-allowed-role).",
- "score": 1,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "aria-command-name": {
- "id": "aria-command-name",
- "title": "`button`, `link`, and `menuitem` elements have accessible names",
- "description": "When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to make command elements more accessible](https://dequeuniversity.com/rules/axe/4.10/aria-command-name).",
- "score": null,
- "scoreDisplayMode": "notApplicable"
- },
- "aria-conditional-attr": {
- "id": "aria-conditional-attr",
- "title": "ARIA attributes are used as specified for the element's role",
- "description": "Some ARIA attributes are only allowed on an element under certain conditions. [Learn more about conditional ARIA attributes](https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr).",
- "score": 1,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "aria-deprecated-role": {
- "id": "aria-deprecated-role",
- "title": "Deprecated ARIA roles were not used",
- "description": "Deprecated ARIA roles may not be processed correctly by assistive technology. [Learn more about deprecated ARIA roles](https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role).",
- "score": 1,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "aria-dialog-name": {
- "id": "aria-dialog-name",
- "title": "Elements with `role=\"dialog\"` or `role=\"alertdialog\"` have accessible names.",
- "description": "ARIA dialog elements without accessible names may prevent screen readers users from discerning the purpose of these elements. [Learn how to make ARIA dialog elements more accessible](https://dequeuniversity.com/rules/axe/4.10/aria-dialog-name).",
- "score": null,
- "scoreDisplayMode": "notApplicable"
- },
- "aria-hidden-body": {
- "id": "aria-hidden-body",
- "title": "`[aria-hidden=\"true\"]` is not present on the document ``",
- "description": "Assistive technologies, like screen readers, work inconsistently when `aria-hidden=\"true\"` is set on the document ``. [Learn how `aria-hidden` affects the document body](https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body).",
- "score": 1,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "aria-hidden-focus": {
- "id": "aria-hidden-focus",
- "title": "`[aria-hidden=\"true\"]` elements do not contain focusable descendents",
- "description": "Focusable descendents within an `[aria-hidden=\"true\"]` element prevent those interactive elements from being available to users of assistive technologies like screen readers. [Learn how `aria-hidden` affects focusable elements](https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus).",
- "score": 1,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "aria-input-field-name": {
- "id": "aria-input-field-name",
- "title": "ARIA input fields have accessible names",
- "description": "When an input field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about input field labels](https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name).",
- "score": null,
- "scoreDisplayMode": "notApplicable"
- },
- "aria-meter-name": {
- "id": "aria-meter-name",
- "title": "ARIA `meter` elements have accessible names",
- "description": "When a meter element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to name `meter` elements](https://dequeuniversity.com/rules/axe/4.10/aria-meter-name).",
- "score": null,
- "scoreDisplayMode": "notApplicable"
- },
- "aria-progressbar-name": {
- "id": "aria-progressbar-name",
- "title": "ARIA `progressbar` elements have accessible names",
- "description": "When a `progressbar` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to label `progressbar` elements](https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name).",
- "score": null,
- "scoreDisplayMode": "notApplicable"
- },
- "aria-prohibited-attr": {
- "id": "aria-prohibited-attr",
- "title": "Elements use only permitted ARIA attributes",
- "description": "Using ARIA attributes in roles where they are prohibited can mean that important information is not communicated to users of assistive technologies. [Learn more about prohibited ARIA roles](https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr).",
- "score": 1,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "aria-required-attr": {
- "id": "aria-required-attr",
- "title": "`[role]`s have all required `[aria-*]` attributes",
- "description": "Some ARIA roles have required attributes that describe the state of the element to screen readers. [Learn more about roles and required attributes](https://dequeuniversity.com/rules/axe/4.10/aria-required-attr).",
- "score": 1,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "aria-required-children": {
- "id": "aria-required-children",
- "title": "Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children.",
- "description": "Some ARIA parent roles must contain specific child roles to perform their intended accessibility functions. [Learn more about roles and required children elements](https://dequeuniversity.com/rules/axe/4.10/aria-required-children).",
- "score": null,
- "scoreDisplayMode": "notApplicable"
- },
- "aria-required-parent": {
- "id": "aria-required-parent",
- "title": "`[role]`s are contained by their required parent element",
- "description": "Some ARIA child roles must be contained by specific parent roles to properly perform their intended accessibility functions. [Learn more about ARIA roles and required parent element](https://dequeuniversity.com/rules/axe/4.10/aria-required-parent).",
- "score": null,
- "scoreDisplayMode": "notApplicable"
- },
- "aria-roles": {
- "id": "aria-roles",
- "title": "`[role]` values are valid",
- "description": "ARIA roles must have valid values in order to perform their intended accessibility functions. [Learn more about valid ARIA roles](https://dequeuniversity.com/rules/axe/4.10/aria-roles).",
- "score": 1,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "aria-text": {
- "id": "aria-text",
- "title": "Elements with the `role=text` attribute do not have focusable descendents.",
- "description": "Adding `role=text` around a text node split by markup enables VoiceOver to treat it as one phrase, but the element's focusable descendents will not be announced. [Learn more about the `role=text` attribute](https://dequeuniversity.com/rules/axe/4.10/aria-text).",
- "score": null,
- "scoreDisplayMode": "notApplicable"
- },
- "aria-toggle-field-name": {
- "id": "aria-toggle-field-name",
- "title": "ARIA toggle fields have accessible names",
- "description": "When a toggle field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about toggle fields](https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name).",
- "score": null,
- "scoreDisplayMode": "notApplicable"
- },
- "aria-tooltip-name": {
- "id": "aria-tooltip-name",
- "title": "ARIA `tooltip` elements have accessible names",
- "description": "When a tooltip element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to name `tooltip` elements](https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name).",
- "score": null,
- "scoreDisplayMode": "notApplicable"
- },
- "aria-treeitem-name": {
- "id": "aria-treeitem-name",
- "title": "ARIA `treeitem` elements have accessible names",
- "description": "When a `treeitem` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about labeling `treeitem` elements](https://dequeuniversity.com/rules/axe/4.10/aria-treeitem-name).",
- "score": null,
- "scoreDisplayMode": "notApplicable"
- },
- "aria-valid-attr-value": {
- "id": "aria-valid-attr-value",
- "title": "`[aria-*]` attributes have valid values",
- "description": "Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid values. [Learn more about valid values for ARIA attributes](https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value).",
- "score": 1,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "aria-valid-attr": {
- "id": "aria-valid-attr",
- "title": "`[aria-*]` attributes are valid and not misspelled",
- "description": "Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid names. [Learn more about valid ARIA attributes](https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr).",
- "score": 1,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "button-name": {
- "id": "button-name",
- "title": "Buttons have an accessible name",
- "description": "When a button doesn't have an accessible name, screen readers announce it as \"button\", making it unusable for users who rely on screen readers. [Learn how to make buttons more accessible](https://dequeuniversity.com/rules/axe/4.10/button-name).",
- "score": 1,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [],
- "items": []
- }
- },
- "bypass": {
- "id": "bypass",
- "title": "The page contains a heading, skip link, or landmark region",
- "description": "Adding ways to bypass repetitive content lets keyboard users navigate the page more efficiently. [Learn more about bypass blocks](https://dequeuniversity.com/rules/axe/4.10/bypass).",
- "score": null,
- "scoreDisplayMode": "notApplicable"
- },
- "color-contrast": {
- "id": "color-contrast",
- "title": "Background and foreground colors do not have a sufficient contrast ratio.",
- "description": "Low-contrast text is difficult or impossible for many users to read. [Learn how to provide sufficient color contrast](https://dequeuniversity.com/rules/axe/4.10/color-contrast).",
- "score": 0,
- "scoreDisplayMode": "binary",
- "details": {
- "type": "table",
- "headings": [
- {
- "key": "node",
- "valueType": "node",
- "subItemsHeading": {
- "key": "relatedNode",
- "valueType": "node"
- },
- "label": "Failing Elements"
- }
- ],
- "items": [
- {
- "node": {
- "type": "node",
- "lhId": "1-0-SPAN",
- "path": "1,HTML,1,BODY,4,DIV,0,NAV,0,A,1,DIV,1,SPAN",
- "selector": "nav.flex > a.relative > div.relative > span.text-[9px]",
- "boundingRect": {
- "top": 779,
- "bottom": 794,
- "left": 38,
- "right": 65,
- "width": 27,
- "height": 15
- },
- "snippet": "
",
- "nodeLabel": "Home",
- "explanation": "Fix any of the following:\n Element has insufficient color contrast of 2.69 (foreground color: #0e7a5c, background color: #b0bbb8, font size: 6.8pt (9px), font weight: bold). Expected contrast ratio of 4.5:1"
- },
- "subItems": {
- "type": "subitems",
- "items": [
- {
- "relatedNode": {
- "type": "node",
- "lhId": "1-1-DIV",
- "path": "1,HTML,1,BODY,4,DIV,0,NAV,0,A,0,DIV",
- "selector": "div.md:hidden > nav.flex > a.relative > div.absolute",
- "boundingRect": {
- "top": 743,
- "bottom": 805,
- "left": 13,
- "right": 90,
- "width": 77,
- "height": 62
- },
- "snippet": "",
- "nodeLabel": "div.md:hidden > nav.flex > a.relative > div.absolute"
- }
- },
- {
- "relatedNode": {
- "type": "node",
- "lhId": "1-2-NAV",
- "path": "1,HTML,1,BODY,4,DIV,0,NAV",
- "selector": "body.relative > div.md:hidden > nav.flex",
- "boundingRect": {
- "top": 737,
- "bottom": 811,
- "left": 7,
- "right": 405,
- "width": 398,
- "height": 75
- },
- "snippet": "